https://youtu.be/Ok5b4Z9qTtA

Alright guys, voyons voir comment ce truc de « Man in the middle » fonctionne !

Ça fait très longtemps que je voulais faire ce tuto, mais vu que je n’ai pas pu trouver de solution pour bypasser le HSTS j’ai hésité de présenter cette attaque, car comme vous le savez, la majorité des sites Web moderne sont immunisés contre tout attaque qui essaie de downgrader la connexion HTTPS en HTTP.

Mais bon …. Je vais le faire quand même 😀.

Le concept de MITM est très important à comprendre parce que c’est une attaque qui a le potentiel de vous donner un résultat quand toutes vos tentatives d’intrusion échouent, c’est une attaque facile à comprendre, et très rapide à exécuter, Mais comprenons d’abord le concept.

L’attaque de l’homme du milieu, c’est quand (en tant qu’attaquant) vous vous placer entre deux machines dans la tentative d’espionner la connexion qui se déroule entre les deux, voici un schéma explicatif :

 

Comme montré dans la figure ci-dessus, dans le cas normal, le client envoie et reçoit des données par l’intermédiaire de son routeur et tout se passe bien.

Maintenant avec l’attaque Mitm, votre machine attaquante va se faire passer pour LE routeur de la victime, et en faisant ainsi la victime va vous faire confiance et elle va vous envoyer ses requêtes en croyant que c’est vous le routeur … Et bien là, c’est à vous de prendre soin du reste 😁.

Installation du Framework Mitmf

Durant un test d’intrusion, plus vous êtes rapide à exécuter une attaque plus seront vos chances de réussir le test à la fin, et c’est là que vient le rôle des Framework, en gros, un Framework est un ensemble d’outils réunis dans un seul cadre de travail, de cette façon, vous n’aurez pas à allez chercher par vous même tous les composants que vous aurez besoin durant votre test … Tout est disponible dans le Framework.

Pour effectuer notre attaque aujourd’hui, nous allons utiliser le fameux Man in the middle Framework ou Mitmf, il écrit en Python et il va nous aider à automatiser le processus avec quelques fonctionnalités additionnelles que nous discuterons plus loin dans l’article.

Tout d’abord, voyons voir comment installer mitmf sur votre système, pour cela lancez votre Kali Linux (ou Parrot OS) et assurez-vous que vous avez un système à jour.

Pour mettre à jour votre système, exécutez ces deux commandes :

apt-get update

apt-get upgrade

Ensuite, nous devrons installer capstone : une des dépendances de mitmf, cette commande fera tout le travail pour nous :

pip install capstone

 

Maintenant, clonons le dépôt de mitmf sur notre machine avec la commande suivante :

git clone https://github.com/byt3bl33d3r/MITMf



Déplacez-vous vers le répertoire, téléchargez, initialisez et clonez les sous-modules repos avec la commande :

cd MITMf && git submodule init && git submodule update --recursive

Dernière étape : installons les dépendances avec le gestionnaire de paquets pip :

pip install -r requirements.txt

And here we go, vous pouvez maintenant consulter le menu d’aide de mitmf avec la commande :

python mitmf.py --help


Syntaxe de Mitmf

Comme vous pouvez le constater depuis le menu d’aide de mitfm, ce Framework peut gérer un grand nombre d’options, mais les seules options qui reviennent à chaque fois que vous utiliserez mitmfs sont les suivantes :

i : pour spécifier l’interface réseau que vous voulez utiliser pour lancer l’attaque.

-spoof : pour rediriger et manipuler un trafic spécifique sur le réseau.

[protocole] : rediriger le trafic en spoofing le protocole choisi.

-gateway : spécifier l’adresse IP de votre passerelle (routeur par exemple).

target : spécifier l’adresse IP de votre cible.

Pretty simple hehe !

Voyons d’abord comment utiliser mtifm pour spoofer le protocole Arp et capturer des mots de passe transmis via http.

Sur votre terminal, entrez la commande ifconfig pour voir le nom d’interface réseau que vous utilisez pour vous connecter à votre réseau, dans mon cas, j’utilise eth0 comme vous pouvez le voir :

Maintenant, lancez l’attaque en exécutant la commande suivante sur votre terminal :

python mitmf.py -i eth0 --spoof --arp --hsts --gateway 192.168.43.1 --target 192.168.43.63

Pour connaître l’adresse IP de votre gateway, exécutez la commande arp -a :

Et là, je vais utiliser ma machine Windows avec l’adresse IP 192.168.43.63 comme machine victime :

Alright, maintenant quand j’exécute l’attaque, j’aurai ce résultat :

Comme vous pouvez le voir, l’attaque est en cours d’exécution et attend les requêtes de la victime pour les sniffer, maintenant sur ma machine Windows je vais visiter un site web (en http) et utiliser un formulaire de connexion pour loguer sur l’application.

Maintenant, quand je clique sur « Login », mitmf va instantanément capturer ces identifiants et les afficher sur le terminal comme le montre la figure suivante :

Honnêtement, je ne trouve pas ça très intéressant vue que la connexion entre la victime et le serveur n’est pas cryptée (n’est pas en https) 😅, du coup, c’est important d’utiliser d’autres fonctionnalités de mitmf pour essayer d’avoir plus de contrôle sur la cible.

L’idéal, c’est de pousser la victime à télécharger et installer un malware sur son système, de cette façon vous aurez accès directement via un shell sur sa machine, par exemple, vous pouvez utiliser l’option --captive pour délivrer un payload à votre cible puis utiliser Metasploit pour capturer la connexion.

Pour cela, ajouter l’option --captive à la commande précédente comme suit :

python mitmf.py -i eth0 --spoof --arp --hsts --gateway 192.168.43.1 --target 192.168.43.63 --captive

La victime sera redirigée vers une page de téléchargement comme la suivante :

Et une fois cliqué sur le lien, le fichier malveillant sera téléchargé sur le système mais vu que je suis sur une machine Windows à jour, Windows defender a facilement détecté le risque :

Vous pouvez aussi utiliser l’option --inject pour injecter un script dans la page visitée par votre cible.

Créons d’abord un petit script JavaScript afin de l’utiliser dans cette attaque.

echo "alert("Working on your machine!")" > script.js

Ensuite, exécutez la commande suivante pour lancer l’attaque:

python mitmf.py -i eth0 --spoof --arp --hsts --gateway 192.168.43.1 --target 192.168.43.63 --inject --js-file /root/MITMF/script.js

Un pop-up du message sera affiché à chaque fois que la victime visite un site en http :

Dans le cas où vous voulez récupérer le cookie de cette application vous pouvez modifier, utiliser un code JavaScript comme le suivant :

alert(document.write('cookie: ' + document.cookie))

Conclusion

Comme je vous l’ai déjà dit, la meilleure façon d’utiliser mitmf, c’est de développer un bon payload puis d’utiliser la fonctionnalité --captive pour inciter la victime à télécharger le payload, si votre payload est bien sophistiqué, vous pouvez avoir un reverse shell sur votre Metasploit.

Si vous avez d’autres variantes d’attaque avec ce Framework n’hésitez pas à les partager avec moi dans la section de commentaires.

Peace.

2 Responses

  1. Tres bon tuto je l’ai aussi regardé sur YouTube. Bah j’aurai surtout aimer que tu nous montre comment bypasser la sécurité HSTS

Laisser un commentaire

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

douze + 2 =

Follow by Email
YouTube