diff --git a/README.md b/README.md index 1053493..56a042b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -MITMf V0.9.1 -========== +MITMf V0.9.5 +============ Framework for Man-In-The-Middle attacks @@ -37,7 +37,6 @@ So far the most significant changes have been: - Addition of the SessionHijacking plugin, which uses code from FireLamb (https://github.com/sensepost/mana/tree/master/firelamb) to store cookies in a Firefox profile - Spoof plugin now supports ICMP, ARP and DHCP spoofing along with DNS tampering - (DNS tampering code was stolen from https://github.com/DanMcInerney/dnsspoof/) - Spoof plugin can now exploit the 'ShellShock' bug when DHCP spoofing! @@ -54,6 +53,6 @@ https://github.com/secretsquirrel/the-backdoor-factory and code from BDFProxy ht

How to install on Kali

-MITMf is now in tha kali linux repositories!! wohooooo!! +MITMf is now in tha kali linux repositories! ```apt-get install mitmf``` diff --git a/libs/banners.py b/libs/banners.py index 67b718a..c8d42bc 100644 --- a/libs/banners.py +++ b/libs/banners.py @@ -41,25 +41,6 @@ banner3 = """ """ banner4 = """ -MMMMMMMM MMMMMMMMIIIIIIIIIITTTTTTTTTTTTTTTTTTTTTTTMMMMMMMM MMMMMMMM ffffffffffffffff -M:::::::M M:::::::MI::::::::IT:::::::::::::::::::::TM:::::::M M:::::::M f::::::::::::::::f -M::::::::M M::::::::MI::::::::IT:::::::::::::::::::::TM::::::::M M::::::::M f::::::::::::::::::f -M:::::::::M M:::::::::MII::::::IIT:::::TT:::::::TT:::::TM:::::::::M M:::::::::M f::::::fffffff:::::f -M::::::::::M M::::::::::M I::::I TTTTTT T:::::T TTTTTTM::::::::::M M::::::::::M f:::::f ffffff -M:::::::::::M M:::::::::::M I::::I T:::::T M:::::::::::M M:::::::::::M f:::::f -M:::::::M::::M M::::M:::::::M I::::I T:::::T M:::::::M::::M M::::M:::::::Mf:::::::ffffff -M::::::M M::::M M::::M M::::::M I::::I T:::::T M::::::M M::::M M::::M M::::::Mf::::::::::::f -M::::::M M::::M::::M M::::::M I::::I T:::::T M::::::M M::::M::::M M::::::Mf::::::::::::f -M::::::M M:::::::M M::::::M I::::I T:::::T M::::::M M:::::::M M::::::Mf:::::::ffffff -M::::::M M:::::M M::::::M I::::I T:::::T M::::::M M:::::M M::::::M f:::::f -M::::::M MMMMM M::::::M I::::I T:::::T M::::::M MMMMM M::::::M f:::::f -M::::::M M::::::MII::::::II TT:::::::TT M::::::M M::::::Mf:::::::f -M::::::M M::::::MI::::::::I T:::::::::T M::::::M M::::::Mf:::::::f -M::::::M M::::::MI::::::::I T:::::::::T M::::::M M::::::Mf:::::::f -MMMMMMMM MMMMMMMMIIIIIIIIII TTTTTTTTTTT MMMMMMMM MMMMMMMMfffffffff -""" - -banner5 = """ ___ ___ ___ /\ \ /\ \ /\__\ |::\ \ ___ ___ |::\ \ /:/ _/_ @@ -71,9 +52,8 @@ banner5 = """ \:\ \ \::/ / \/__\:\ \ \:\ \ \:\ \ \:\__\ /:/ / \:\__\ \:\__\ \:\__\ \/__/ \/__/ \/__/ \/__/ \/__/ - """ -def get(): - banners = [banner1, banner2, banner3, banner4, banner5] +def get_banner(): + banners = [banner1, banner2, banner3, banner4] return random.choice(banners) diff --git a/mitmf.py b/mitmf.py index 08a93d4..a736cef 100755 --- a/mitmf.py +++ b/mitmf.py @@ -5,7 +5,7 @@ from twisted.internet import reactor from libs.sslstrip.CookieCleaner import CookieCleaner from libs.sergioproxy.ProxyPlugins import ProxyPlugins -from libs.banners import get +from libs.banners import get_banner import logging @@ -30,7 +30,7 @@ mitmf_version = "0.9.5" sslstrip_version = "0.9" sergio_version = "0.2.1" -banner = get() +banner = get_banner() print banner parser = argparse.ArgumentParser(description="MITMf v%s - Framework for MITM attacks" % mitmf_version, version=mitmf_version, usage='', epilog="Use wisely, young Padawan.",fromfile_prefix_chars='@') @@ -138,12 +138,12 @@ load = [] for p in plugins: try: + if vars(args)[p.optname] is True: + print "|_ %s v%s" % (p.name, p.version) + if getattr(args, p.optname): p.initialize(args) load.append(p) - - if vars(args)[p.optname] is True: - print "|_ %s v%s" % (p.name, p.version) except Exception, e: print "[-] Error loading plugin: " + str(e) diff --git a/plugins/BeefAutorun.py b/plugins/BeefAutorun.py index 2c25592..4edea1b 100644 --- a/plugins/BeefAutorun.py +++ b/plugins/BeefAutorun.py @@ -45,6 +45,7 @@ class BeefAutorun(Inject, Plugin): if not beef.login(beefconfig['user'], beefconfig['pass']): sys.exit("[-] Error logging in to BeEF!") + print "| |_ Mode: %s" % self.Mode t = threading.Thread(name="autorun", target=self.autorun, args=(beef,)) t.setDaemon(True) t.start() diff --git a/plugins/JavaPwn.py b/plugins/JavaPwn.py index cf1f88c..b1ff1ad 100644 --- a/plugins/JavaPwn.py +++ b/plugins/JavaPwn.py @@ -50,7 +50,7 @@ class JavaPwn(BrowserProfiler, Plugin): msf = msfrpc.Msfrpc({"host": self.rpcip}) #create an instance of msfrpc libarary msf.login('msf', self.rpcpass) version = msf.call('core.version')['version'] - print "[*] Successfully connected to Metasploit v%s" % version + print "| |_ Connected to Metasploit v%s" % version except Exception: sys.exit("[-] Error connecting to MSF! Make sure you started Metasploit and its MSGRPC server") diff --git a/plugins/Responder.py b/plugins/Responder.py index 8156dc9..19e8138 100644 --- a/plugins/Responder.py +++ b/plugins/Responder.py @@ -24,7 +24,6 @@ class Responder(Plugin): except Exception, e: sys.exit('[-] Error parsing config for Responder: ' + str(e)) - print "[*] Responder plugin online" DnsCache.getInstance().setCustomAddress(self.ip_address) for name in ['wpad', 'ISAProxySrv', 'RespProxySrv']: diff --git a/plugins/Spoof.py b/plugins/Spoof.py index 7c135e7..fac052c 100644 --- a/plugins/Spoof.py +++ b/plugins/Spoof.py @@ -1,7 +1,3 @@ -# -# DNS tampering code stolen from https://github.com/DanMcInerney/dnsspoof -# - from plugins.plugin import Plugin from time import sleep import dns.resolver