mirror of
https://github.com/byt3bl33d3r/MITMf.git
synced 2025-07-06 21:12:16 -07:00
added version attr to all plugins
This commit is contained in:
parent
4c465b3806
commit
ad6c3d8ed3
16 changed files with 36 additions and 20 deletions
|
@ -14,6 +14,7 @@ class AppCachePlugin(Plugin):
|
||||||
optname = "appoison"
|
optname = "appoison"
|
||||||
desc = "Performs App Cache Poisoning attacks"
|
desc = "Performs App Cache Poisoning attacks"
|
||||||
implements = ["handleResponse"]
|
implements = ["handleResponse"]
|
||||||
|
version = "0.3"
|
||||||
has_opts = False
|
has_opts = False
|
||||||
req_root = False
|
req_root = False
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ class BeefAutorun(Inject, Plugin):
|
||||||
optname = "beefauto"
|
optname = "beefauto"
|
||||||
desc = "Injects BeEF hooks & autoruns modules based on Browser and/or OS type"
|
desc = "Injects BeEF hooks & autoruns modules based on Browser and/or OS type"
|
||||||
depends = ["Inject"]
|
depends = ["Inject"]
|
||||||
|
version = "0.3"
|
||||||
req_root = False
|
req_root = False
|
||||||
has_opts = False
|
has_opts = False
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ class BrowserProfiler(Inject, Plugin):
|
||||||
desc = "Attempts to enumerate all browser plugins of connected clients"
|
desc = "Attempts to enumerate all browser plugins of connected clients"
|
||||||
implements = ["handleResponse", "handleHeader", "connectionMade", "sendPostData"]
|
implements = ["handleResponse", "handleHeader", "connectionMade", "sendPostData"]
|
||||||
depends = ["Inject"]
|
depends = ["Inject"]
|
||||||
|
version = "0.2"
|
||||||
has_opts = False
|
has_opts = False
|
||||||
req_root = False
|
req_root = False
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ class CacheKill(Plugin):
|
||||||
desc = "Kills page caching by modifying headers"
|
desc = "Kills page caching by modifying headers"
|
||||||
implements = ["handleHeader", "connectionMade"]
|
implements = ["handleHeader", "connectionMade"]
|
||||||
bad_headers = ['if-none-match', 'if-modified-since']
|
bad_headers = ['if-none-match', 'if-modified-since']
|
||||||
|
version = "0.1"
|
||||||
has_opts = True
|
has_opts = True
|
||||||
req_root = False
|
req_root = False
|
||||||
|
|
||||||
|
|
|
@ -53,12 +53,13 @@ from tempfile import mkstemp
|
||||||
from configobj import ConfigObj
|
from configobj import ConfigObj
|
||||||
|
|
||||||
class FilePwn(Plugin):
|
class FilePwn(Plugin):
|
||||||
name = "FilePwn"
|
name = "FilePwn"
|
||||||
optname = "filepwn"
|
optname = "filepwn"
|
||||||
desc = "Backdoor executables being sent over http using bdfactory"
|
desc = "Backdoor executables being sent over http using bdfactory"
|
||||||
implements = ["handleResponse"]
|
implements = ["handleResponse"]
|
||||||
has_opts = False
|
version = "0.2"
|
||||||
req_root = False
|
has_opts = False
|
||||||
|
req_root = False
|
||||||
|
|
||||||
def initialize(self, options):
|
def initialize(self, options):
|
||||||
'''Called if plugin is enabled, passed the options namespace'''
|
'''Called if plugin is enabled, passed the options namespace'''
|
||||||
|
|
|
@ -15,6 +15,7 @@ class Inject(CacheKill, Plugin):
|
||||||
has_opts = True
|
has_opts = True
|
||||||
req_root = False
|
req_root = False
|
||||||
desc = "Inject arbitrary content into HTML content"
|
desc = "Inject arbitrary content into HTML content"
|
||||||
|
version = "0.2"
|
||||||
depends = ["CacheKill"]
|
depends = ["CacheKill"]
|
||||||
|
|
||||||
def initialize(self, options):
|
def initialize(self, options):
|
||||||
|
|
|
@ -19,6 +19,7 @@ class JavaPwn(BrowserProfiler, Plugin):
|
||||||
optname = "javapwn"
|
optname = "javapwn"
|
||||||
desc = "Performs drive-by attacks on clients with out-of-date java browser plugins"
|
desc = "Performs drive-by attacks on clients with out-of-date java browser plugins"
|
||||||
depends = ["Browserprofiler"]
|
depends = ["Browserprofiler"]
|
||||||
|
version = "0.3"
|
||||||
has_opts = False
|
has_opts = False
|
||||||
|
|
||||||
def initialize(self, options):
|
def initialize(self, options):
|
||||||
|
|
|
@ -8,6 +8,7 @@ class jskeylogger(Inject, Plugin):
|
||||||
desc = "Injects a javascript keylogger into clients webpages"
|
desc = "Injects a javascript keylogger into clients webpages"
|
||||||
implements = ["handleResponse", "handleHeader", "connectionMade", "sendPostData"]
|
implements = ["handleResponse", "handleHeader", "connectionMade", "sendPostData"]
|
||||||
depends = ["Inject"]
|
depends = ["Inject"]
|
||||||
|
version = "0.2"
|
||||||
has_opts = False
|
has_opts = False
|
||||||
req_root = False
|
req_root = False
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ class Replace(CacheKill, Plugin):
|
||||||
desc = "Replace arbitrary content in HTML content"
|
desc = "Replace arbitrary content in HTML content"
|
||||||
implements = ["handleResponse", "handleHeader", "connectionMade"]
|
implements = ["handleResponse", "handleHeader", "connectionMade"]
|
||||||
depends = ["CacheKill"]
|
depends = ["CacheKill"]
|
||||||
|
version = "0.1"
|
||||||
has_opts = True
|
has_opts = True
|
||||||
req_root = False
|
req_root = False
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ class Responder(Plugin):
|
||||||
name = "Responder"
|
name = "Responder"
|
||||||
optname = "responder"
|
optname = "responder"
|
||||||
desc = "Poison LLMNR, NBT-NS and MDNS requests"
|
desc = "Poison LLMNR, NBT-NS and MDNS requests"
|
||||||
|
version = "0.2"
|
||||||
has_opts = True
|
has_opts = True
|
||||||
req_root = True
|
req_root = True
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ class SMBAuth(Inject, Plugin):
|
||||||
optname = "smbauth"
|
optname = "smbauth"
|
||||||
desc = "Evoke SMB challenge-response auth attempts"
|
desc = "Evoke SMB challenge-response auth attempts"
|
||||||
depends = ["Inject"]
|
depends = ["Inject"]
|
||||||
|
version = "0.1"
|
||||||
has_opts = True
|
has_opts = True
|
||||||
req_root = False
|
req_root = False
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ class HSTSbypass(Plugin):
|
||||||
name = 'SSLstrip+'
|
name = 'SSLstrip+'
|
||||||
optname = 'hsts'
|
optname = 'hsts'
|
||||||
desc = 'Enables SSLstrip+ for partial HSTS bypass'
|
desc = 'Enables SSLstrip+ for partial HSTS bypass'
|
||||||
|
version = "0.2"
|
||||||
has_opts = False
|
has_opts = False
|
||||||
req_root = False
|
req_root = False
|
||||||
|
|
||||||
|
|
|
@ -13,12 +13,13 @@ import json
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
class SessionHijacker(Plugin):
|
class SessionHijacker(Plugin):
|
||||||
name = "Session Hijacker"
|
name = "Session Hijacker"
|
||||||
optname = "hijack"
|
optname = "hijack"
|
||||||
desc = "Performs session hijacking attacks against clients"
|
desc = "Performs session hijacking attacks against clients"
|
||||||
implements = ["cleanHeaders"] #["handleHeader"]
|
implements = ["cleanHeaders"] #["handleHeader"]
|
||||||
has_opts = True
|
version = "0.1"
|
||||||
req_root = False
|
has_opts = True
|
||||||
|
req_root = False
|
||||||
|
|
||||||
def initialize(self, options):
|
def initialize(self, options):
|
||||||
'''Called if plugin is enabled, passed the options namespace'''
|
'''Called if plugin is enabled, passed the options namespace'''
|
||||||
|
|
|
@ -20,6 +20,7 @@ class Sniffer(Plugin):
|
||||||
optname = "sniffer"
|
optname = "sniffer"
|
||||||
desc = "Sniffs for various protocol login and auth attempts"
|
desc = "Sniffs for various protocol login and auth attempts"
|
||||||
implements = ["sendRequest"]
|
implements = ["sendRequest"]
|
||||||
|
version = "0.1"
|
||||||
has_opts = False
|
has_opts = False
|
||||||
req_root = True
|
req_root = True
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ class Spoof(Plugin):
|
||||||
name = "Spoof"
|
name = "Spoof"
|
||||||
optname = "spoof"
|
optname = "spoof"
|
||||||
desc = 'Redirect/Modify traffic using ICMP, ARP or DHCP'
|
desc = 'Redirect/Modify traffic using ICMP, ARP or DHCP'
|
||||||
|
version = "0.4"
|
||||||
has_opts = True
|
has_opts = True
|
||||||
req_root = True
|
req_root = True
|
||||||
|
|
||||||
|
@ -124,10 +125,10 @@ class Spoof(Plugin):
|
||||||
self.arp.arp_inter = 1
|
self.arp.arp_inter = 1
|
||||||
if self.target:
|
if self.target:
|
||||||
print "\n[*] Re-ARPing target"
|
print "\n[*] Re-ARPing target"
|
||||||
self.arp.reArp_target(5)
|
self.arp.reARP_target(5)
|
||||||
|
|
||||||
print "\n[*] Re-ARPing network"
|
print "\n[*] Re-ARPing network"
|
||||||
self.arp.reArp_net(5)
|
self.arp.reARP_net(5)
|
||||||
|
|
||||||
elif self.options.icmp:
|
elif self.options.icmp:
|
||||||
self.icmp.stop()
|
self.icmp.stop()
|
||||||
|
@ -350,13 +351,13 @@ class _ARP():
|
||||||
|
|
||||||
return pkt
|
return pkt
|
||||||
|
|
||||||
def reArp_net(self, count):
|
def reARP_net(self, count):
|
||||||
pkt = Ether(src=self.gatewaymac, dst='ff:ff:ff:ff:ff:ff')/\
|
pkt = Ether(src=self.gatewaymac, dst='ff:ff:ff:ff:ff:ff')/\
|
||||||
ARP(psrc=self.gateway, hwsrc=self.gatewaymac, op=2)
|
ARP(psrc=self.gateway, hwsrc=self.gatewaymac, op=2)
|
||||||
|
|
||||||
sendp(pkt, inter=self.arp_inter, count=count, iface=self.interface)
|
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')/\
|
pkt = Ether(src=self.gatewaymac, dst='ff:ff:ff:ff:ff:ff')/\
|
||||||
ARP(psrc=self.target, hwsrc=self.targetmac, op=2)
|
ARP(psrc=self.target, hwsrc=self.targetmac, op=2)
|
||||||
|
|
||||||
|
@ -405,7 +406,7 @@ class _DNS():
|
||||||
if not pkt.haslayer(DNSQR):
|
if not pkt.haslayer(DNSQR):
|
||||||
payload.accept()
|
payload.accept()
|
||||||
else:
|
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:
|
if self.dns:
|
||||||
for k, v in self.dnscfg.items():
|
for k, v in self.dnscfg.items():
|
||||||
if k in pkt[DNSQR].qname:
|
if k in pkt[DNSQR].qname:
|
||||||
|
|
|
@ -5,12 +5,13 @@ from PIL import Image
|
||||||
|
|
||||||
|
|
||||||
class Upsidedownternet(Plugin):
|
class Upsidedownternet(Plugin):
|
||||||
name = "Upsidedownternet"
|
name = "Upsidedownternet"
|
||||||
optname = "upsidedownternet"
|
optname = "upsidedownternet"
|
||||||
desc = 'Flips images 180 degrees'
|
desc = 'Flips images 180 degrees'
|
||||||
implements = ["handleResponse", "handleHeader"]
|
implements = ["handleResponse", "handleHeader"]
|
||||||
has_opts = False
|
version = "0.1"
|
||||||
req_root = False
|
has_opts = False
|
||||||
|
req_root = False
|
||||||
|
|
||||||
def initialize(self, options):
|
def initialize(self, options):
|
||||||
from PIL import Image, ImageFile
|
from PIL import Image, ImageFile
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue