diff --git a/plugins/AppCachePoison.py b/plugins/AppCachePoison.py index f7d6b54..6ec5077 100644 --- a/plugins/AppCachePoison.py +++ b/plugins/AppCachePoison.py @@ -14,6 +14,7 @@ class AppCachePlugin(Plugin): optname = "appoison" desc = "Performs App Cache Poisoning attacks" implements = ["handleResponse"] + version = "0.3" has_opts = False req_root = False diff --git a/plugins/BeefAutorun.py b/plugins/BeefAutorun.py index 713fc2a..2c25592 100644 --- a/plugins/BeefAutorun.py +++ b/plugins/BeefAutorun.py @@ -15,6 +15,7 @@ class BeefAutorun(Inject, Plugin): optname = "beefauto" desc = "Injects BeEF hooks & autoruns modules based on Browser and/or OS type" depends = ["Inject"] + version = "0.3" req_root = False has_opts = False diff --git a/plugins/BrowserProfiler.py b/plugins/BrowserProfiler.py index 29c8644..5372353 100644 --- a/plugins/BrowserProfiler.py +++ b/plugins/BrowserProfiler.py @@ -9,6 +9,7 @@ class BrowserProfiler(Inject, Plugin): desc = "Attempts to enumerate all browser plugins of connected clients" implements = ["handleResponse", "handleHeader", "connectionMade", "sendPostData"] depends = ["Inject"] + version = "0.2" has_opts = False req_root = False diff --git a/plugins/CacheKill.py b/plugins/CacheKill.py index cc72a77..6824ee5 100644 --- a/plugins/CacheKill.py +++ b/plugins/CacheKill.py @@ -7,6 +7,7 @@ class CacheKill(Plugin): desc = "Kills page caching by modifying headers" implements = ["handleHeader", "connectionMade"] bad_headers = ['if-none-match', 'if-modified-since'] + version = "0.1" has_opts = True req_root = False diff --git a/plugins/FilePwn.py b/plugins/FilePwn.py index 88d2fbc..630a314 100644 --- a/plugins/FilePwn.py +++ b/plugins/FilePwn.py @@ -53,12 +53,13 @@ from tempfile import mkstemp from configobj import ConfigObj class FilePwn(Plugin): - name = "FilePwn" - optname = "filepwn" - desc = "Backdoor executables being sent over http using bdfactory" + name = "FilePwn" + optname = "filepwn" + desc = "Backdoor executables being sent over http using bdfactory" implements = ["handleResponse"] - has_opts = False - req_root = False + version = "0.2" + has_opts = False + req_root = False def initialize(self, options): '''Called if plugin is enabled, passed the options namespace''' diff --git a/plugins/Inject.py b/plugins/Inject.py index ec5523e..23deaa2 100644 --- a/plugins/Inject.py +++ b/plugins/Inject.py @@ -15,6 +15,7 @@ class Inject(CacheKill, Plugin): has_opts = True req_root = False desc = "Inject arbitrary content into HTML content" + version = "0.2" depends = ["CacheKill"] def initialize(self, options): diff --git a/plugins/JavaPwn.py b/plugins/JavaPwn.py index 9d55bbe..cf1f88c 100644 --- a/plugins/JavaPwn.py +++ b/plugins/JavaPwn.py @@ -19,6 +19,7 @@ class JavaPwn(BrowserProfiler, Plugin): optname = "javapwn" desc = "Performs drive-by attacks on clients with out-of-date java browser plugins" depends = ["Browserprofiler"] + version = "0.3" has_opts = False def initialize(self, options): diff --git a/plugins/JsKeylogger.py b/plugins/JsKeylogger.py index 17ddde0..556a754 100644 --- a/plugins/JsKeylogger.py +++ b/plugins/JsKeylogger.py @@ -8,6 +8,7 @@ class jskeylogger(Inject, Plugin): desc = "Injects a javascript keylogger into clients webpages" implements = ["handleResponse", "handleHeader", "connectionMade", "sendPostData"] depends = ["Inject"] + version = "0.2" has_opts = False req_root = False diff --git a/plugins/Replace.py b/plugins/Replace.py index b217127..a55e2db 100644 --- a/plugins/Replace.py +++ b/plugins/Replace.py @@ -16,6 +16,7 @@ class Replace(CacheKill, Plugin): desc = "Replace arbitrary content in HTML content" implements = ["handleResponse", "handleHeader", "connectionMade"] depends = ["CacheKill"] + version = "0.1" has_opts = True req_root = False diff --git a/plugins/Responder.py b/plugins/Responder.py index f128b67..8156dc9 100644 --- a/plugins/Responder.py +++ b/plugins/Responder.py @@ -10,6 +10,7 @@ class Responder(Plugin): name = "Responder" optname = "responder" desc = "Poison LLMNR, NBT-NS and MDNS requests" + version = "0.2" has_opts = True req_root = True diff --git a/plugins/SMBAuth.py b/plugins/SMBAuth.py index 9835101..0e7a2d3 100644 --- a/plugins/SMBAuth.py +++ b/plugins/SMBAuth.py @@ -8,6 +8,7 @@ class SMBAuth(Inject, Plugin): optname = "smbauth" desc = "Evoke SMB challenge-response auth attempts" depends = ["Inject"] + version = "0.1" has_opts = True req_root = False diff --git a/plugins/SSLstrip+.py b/plugins/SSLstrip+.py index a13825b..e96adda 100644 --- a/plugins/SSLstrip+.py +++ b/plugins/SSLstrip+.py @@ -6,6 +6,7 @@ class HSTSbypass(Plugin): name = 'SSLstrip+' optname = 'hsts' desc = 'Enables SSLstrip+ for partial HSTS bypass' + version = "0.2" has_opts = False req_root = False diff --git a/plugins/SessionHijacker.py b/plugins/SessionHijacker.py index 9ebbca3..8431e80 100644 --- a/plugins/SessionHijacker.py +++ b/plugins/SessionHijacker.py @@ -13,12 +13,13 @@ import json import socket class SessionHijacker(Plugin): - name = "Session Hijacker" - optname = "hijack" - desc = "Performs session hijacking attacks against clients" + name = "Session Hijacker" + optname = "hijack" + desc = "Performs session hijacking attacks against clients" implements = ["cleanHeaders"] #["handleHeader"] - has_opts = True - req_root = False + version = "0.1" + has_opts = True + req_root = False def initialize(self, options): '''Called if plugin is enabled, passed the options namespace''' diff --git a/plugins/Sniffer.py b/plugins/Sniffer.py index ef7be89..d70b4ed 100644 --- a/plugins/Sniffer.py +++ b/plugins/Sniffer.py @@ -20,6 +20,7 @@ class Sniffer(Plugin): optname = "sniffer" desc = "Sniffs for various protocol login and auth attempts" implements = ["sendRequest"] + version = "0.1" has_opts = False req_root = True diff --git a/plugins/Spoof.py b/plugins/Spoof.py index b1d63e6..2707b62 100644 --- a/plugins/Spoof.py +++ b/plugins/Spoof.py @@ -21,6 +21,7 @@ class Spoof(Plugin): name = "Spoof" optname = "spoof" desc = 'Redirect/Modify traffic using ICMP, ARP or DHCP' + version = "0.4" has_opts = True req_root = True @@ -124,10 +125,10 @@ class Spoof(Plugin): self.arp.arp_inter = 1 if self.target: print "\n[*] Re-ARPing target" - self.arp.reArp_target(5) + self.arp.reARP_target(5) print "\n[*] Re-ARPing network" - self.arp.reArp_net(5) + self.arp.reARP_net(5) elif self.options.icmp: self.icmp.stop() @@ -350,13 +351,13 @@ class _ARP(): return pkt - def reArp_net(self, count): + def reARP_net(self, count): pkt = Ether(src=self.gatewaymac, dst='ff:ff:ff:ff:ff:ff')/\ ARP(psrc=self.gateway, hwsrc=self.gatewaymac, op=2) sendp(pkt, inter=self.arp_inter, count=count, iface=self.interface) - def reArp_target(self, count): + def reARP_target(self, count): pkt = Ether(src=self.gatewaymac, dst='ff:ff:ff:ff:ff:ff')/\ ARP(psrc=self.target, hwsrc=self.targetmac, op=2) @@ -405,7 +406,7 @@ class _DNS(): if not pkt.haslayer(DNSQR): payload.accept() else: - logging.info("Got DNS packet for %s %s" % (pkt[DNSQR].qname, pkt[DNSQR].qtype)) + logging.debug("Got DNS packet for %s %s" % (pkt[DNSQR].qname, pkt[DNSQR].qtype)) if self.dns: for k, v in self.dnscfg.items(): if k in pkt[DNSQR].qname: diff --git a/plugins/Upsidedownternet.py b/plugins/Upsidedownternet.py index e1b808b..150905a 100644 --- a/plugins/Upsidedownternet.py +++ b/plugins/Upsidedownternet.py @@ -5,12 +5,13 @@ from PIL import Image class Upsidedownternet(Plugin): - name = "Upsidedownternet" - optname = "upsidedownternet" - desc = 'Flips images 180 degrees' + name = "Upsidedownternet" + optname = "upsidedownternet" + desc = 'Flips images 180 degrees' implements = ["handleResponse", "handleHeader"] - has_opts = False - req_root = False + version = "0.1" + has_opts = False + req_root = False def initialize(self, options): from PIL import Image, ImageFile