MITMf : le frameork MITM

Suite aux travaux effectués sur les Rogue AP et après avoir lu les write up d’Antares sur l’outil sergio-proxy, j’ai voulu moi aussi l’explorer au travers d'un autre outil : MITMf. MITMf est un framework spécialement conçu pour procéder à des attaques de type Man In The Middle.

L’intérêt de cet outil est qu’il regroupe plusieurs autres outils notamment sergio-proxy et sslstrip+ (respectivement développé par supernothing et Leonardo Nve).

I/Installation et fonctionnement

L’outil est disponible dans les dépôts Kali Linux cependant tout ce qui est nécessaire à son fonctionnement ne sera pas installé. Je vous conseille donc de passer par la page d’installation du développeur

Je n’ai pas eu de problèmes pour l’installation donc à priori vous n’en aurez pas non plus  !

Alors je ne vais pas vous réexpliquer en détails comment fonctionne les MITM (HTTP ou HTTPS), le principe est de se mettre entre la victime et le serveur avec lequel elle communique afin de sniffer des identifiants, des mots de passe ou encore des URL’s de sites visités. Le fonctionnement détaillé est décris ici et ici (partie 1 et partie 2).

Bon maintenant on va pouvoir commencer à s’en servir ! Comme d’habitude, l’ensemble des tests sont fait sur mon matériel et sur un réseau qui m’appartient.

II/Les fonctionnalités

Pour commencer nous allons voir les options que propose MITMf. Pour cela entrez simplement cette commande dans la console :

python mitmf.py

Ce framework offre des possibilités absolument incroyables ! Injection de code javascript, injection de keylogger, injection d’un backdoor via Metasploit, screenshot, capture de cookie, spoofing dhcp dns mais aussi https downgrade. Ça tombe bien j’ai tout un week-end pour jouer avec !

Voici quelques exemples d’options proposées :

Module Inject :

Voici les options disponibles pour le module d’injection :

mitmf1.png

Pour chaque module que vous souhaitez utiliser il faudra inclure l’option qui permet de le charger. Dans ce cas si c’est l’option –inject.

  • Injection de code HTML

On va commencer par du simple, l’injection de code HTML ! Pour pouvoir faire ça nous allons avoir besoin d’un serveur. Pour ma part je vais me servir d’Apache2. Pour lancer Apache2 entrez cette commande :

sudo systemctl start apache2

Ensuite rendez vous dans le dossier /var/html et créez un fichier injection.html. Mettez y ce que vous voulez… Pour ma part je vais mettre un petit script Javascript qui efface le contenu de la page :

<script>
	window.onload = function()
{
 document.write('');
}
</script>

On lance la commande :

python mitmf.py -i eth0 --spoof --arp --gateway 192.168.0.1 --inject --html-file '/var/www/html/injection.html'

Maintenant si la victime se connecte sur un site :

mitmf2.png

Le problème ici c’est que le site va d’abord être chargé puis votre fichier va être ajouté par dessus. Donc la victime verra le site apparaître puis disparaître ou se modifier suivant ce que vous avez mis dans votre fichier HTML.

  • Injection de code Javascript :

Malheureusement j’ai beaucoup trop de chose à dire sur cette attaque pour juste la détailler en tant que sous partie de cet article. J’en ferai un article à part ou on se servira du framework Beef.

Module BrowserProfiler:

Le module BrowserProfiler va nous permettre de profiler le moteur de recherche de notre victime.

Pour cela entrez la commande suivante :

python mitmf.py -i eth0 --spoof --arp --gateway 192.168.0.1 --browserprofiler

Voici ce que l’on obtient comme information :

mitmf3.png

A priori c’est pas ouf comme info mais si l’utilisateur utilise une vieille version d’Internet Explorer et bien ça pourrait nous ouvrir plusieurs possibilités !

Module FilePown :

Encore une fois j’ai beaucoup trop de choses à dire sur cette attaque. Du coup comme pour l’injection de javascript, il y aura un article spécialement dédié à ce module et à Metasploit.

Module ScreenShooter :

Ce module va nous permettre de prendre des screens de l’écran de notre victime.

Entrez la commande suivante :

python mitmf.py -i eth0 --spoof --arp --gateway 192.168.0.1 --screen

Et voici le résultat :

mitmf4.png

Dans le cadre d’un espionnage ça peut être vraiment intéressant!

Module JSKeyLogger :

Pour injecter un keylogger voici la commande à entrer :

python mitmf.py --spoof --arp -i eth0 --gateway 192.168.0.1 --jskeylogger

Et voici ce qu’on voit apparaître sur la console :

mitmf5.png

Dans la catégorie module WTF, on a celui-ci qui permet de renverser les images de 180°. De même un module permet d’afficher l’image de votre choix à la place des images du site. Libre à vous de vous amuser avec ça ahah !

Redirection vers un autre site :

Enfin on pourra assez aisément rediriger les clients vers d'autres sites via cette commande:

python mitmf.py -i eth0 --spoof --arp --gateway 192.168.0.1 --captive --portalurl https://whiteflagfr.wordpress.com