MITM : Man in the middle
Cet article va vous plaire, on attaque enfin les choses sérieuses avec le « man in the middle over wireless. »
Nous allons voir deux variations de cette attaque :
Cas 1) le pirate fait partie du même réseau que la où les victimes, et va se positionner entre la victime et le routeur en utilisant une technique appelé « ARP Poisoning »
Cas 2) la suite logique des articles sur le cours Wi-Fi : le pirate va créer un faux point d’accès portant le même nom que celui où la victime est connecté afin de se placer entre elle et le routeur.
A) ARP Poisoning avec Ettercap.
L’ARP Poisoning est une technique de spoofing qui consiste à tromper l’émetteur sur la réelle destination de son paquet: la victime A croit envoyé un paquet à B (le routeur), mais en réalité c’est C (le pirate) qui l’intercepte puis qui le redirige vers B . (Et inversement : B veut répondre à A, mais C s’est mis en position de destinataire…) .
Pour faire simple, on peut dire que le pirate fait croire aux victimes qu’il est le routeur, et se charge lui-même de rediriger les paquets de ses victimes au vrai routeur.
On se trouve dans cette position : (D’où le nom « man-in-the middle« ) .
Tous les paquets transitant par notre carte Wi-Fi (ou ethernet selon le cas), il suffit d’écouter le trafic sur l’interface en question pour récupérer mot de passe, email, conversation…
Mise en place :
Nous utilisons l’outil Ettercap, un vrai couteau suisse pour l’ARP poisoning.
Ce qui est intéressant c’est qu’avec Ettercap vous pouvez personnaliser cette attaque de MITM en créant vos propres filtres (ou en choppant des filtres sur le net..°) .
Par exemple vous avez la possibilité d’afficher les images que vous souhaitez à la place de celles que la victime devrait réellement voir en surfant…
La possibilité de remplacer les téléchargements de la victime par votre petit .exe (qui a dit trojan ? J )….
A noter qu’Ettercap possède une interface graphique que nous n’utiliserons pas, elle est assez ergonomique mais peu fiable (beaucoup de crash..) .
Rappelle de la situation : nous sommes connectés sur le même réseau que notre cible (connexion Wi-Fi).
Lançons ettercap :
ettercap -T -q -M arp:remote /192.168.1.4/ /192.168.1.1/ -w result –i wlan0
Cette première commande permet d’indiquer qu’ettercap doit fonctionner en mode texte (-T), en mode silencieux (-q) , et qu’il s’agit d’une attaque ARP .
192.168.1.4 est notre victime.
192.168.1.1 est notre passerelle (le routeur).
Le fichier result contient tous les paquets capturés pendant le MITM.
Quelques variantes :
ettercap -T -q -M arp:remote /192.168.1.0-255/ /192.168.1.1/ -w result
Permets d’effectuer l’attaque sur toutes les IP dans la plage : 192.168.1.0 à 192.168.1.255 .
Ou en mode plus bourrin:
ettercap -T -q -M arp:remote // // -w result
pour effectuer l’ARP poisoning sur tout le réseau.
Attention : si vous effectuez l’ARP sur tout un réseau, selon la taille de celui vous risquer de le surcharger et le rendre très lent…
Autre note : certaines personnes préfèrent arpspoof à ettercap , dans ce cas il ne faut pas oublier d’activer préalablement l’ip forwarding : echo 1 > /proc/sys/net/ipv4/ip_forward
(Ettercap lui a son propre système de forwarding).
Pour quitter Ettercap une fois le MITM terminé, appuyez sur la touche « q » sur la fenêtre ou se trouve Ettercap pour l’éteindre en mode safe : il arrête l’empoisonnement des tables ARP sur la victime, routeur..
En faisant un brutal CTRL+C la victime risque de se taper des pages d’erreur 404 pendant un petit laps de temps ces tables ARP étant toujours empoisonnée..
Le MITM étant mis en place, que pouvons-nous faire de plus ?
Les réponses sont nombreuses :
-récupérer les urls des sites visités par les victimes en live avec urlsnarf,les images avec drifnet, les mots de passe avec dnsiff.. où s’amuser à spoofer les DNS afin de rediriger les sites que la victime visite par ceux souhaités.
C’est sur ce dernier point que nous allons nous attarder afin de nous amuser.
Ettercap dispose d’un plugin pour le DNS Spoofing, mais n’ayant pas totalement marché chez moi j’ai utilisé un autre outil : « dnsspoof » .
Le fonctionnement est très simple : on crée un fichier host, dns avec les redirections que nous souhaitons effectuer :
La première ligne indique que nous redirigeons tous le trafic vers une IP local (il s’agit ici de l’IP de mon serveur local, une simple page « it’s work » .
La seconde ligne est inutile puisque la première englobe déjà tous les sites web, c’est juste pour vous montrer que l’on peut faire rediriger seulement un site si vous le souhaitez.
Idem, ici j’ai mis l’IP de mon serveur local mais nous aurions très bien pus mettre l’IP d’un site (récupéré au préalable avec un « nslookup mondomain.com » ) .
Maintenant lançons dnsspoof en précisant le fichier host que nous venons de créer:
dnsspoof –i wlan1 –f dns
Résultat sur le navigateur de la victime (oui ce n’est pas très jolie, c’est juste la page par défaut d’apache ) :
Si vous avez un peu de temps, analysez la capture avec Wireshark (filtrez sur le port 80 / protocole http), vous verrez la liste des sites visités :
En prenant une des requêtes http au hasard nous constatons une rechercher Google avec comme mot-clef notre ami « korben » ;) .
Notes : pour récupérer un mot de passe sur une session http, il suffit d’analyser les requêtes POST avec Wireshark, vous y trouverez le login et le mot de passe en clair…
Pour tout ce qui est HTTPS nous verrons selon dans un prochain article avec l’utilisation de SSLSTRIP.
Maintenant pour les plus courageux, vous pouvez lire ci-dessous l’explication théorique pour appliquer la variation 2 du MITM :
Comme je l’ai dit, cette technique se trouve dans la continuité du cours Wi-Fi (chapitre « hack de hotspot » .
Ce schéma résume la situation dans laquelle nous nous trouvons.
La victime est connecté en Wi-Fi au point d’accès « CREATIVEO.NET » .
Nous en tant que pirate comme connecté à internet via un câble ethernet, une clef 3G ou autres.
Dans un premier temps nous créons un soft AP (comme vus dans le chapitre sur les hotspots), nous permettant de créer un faux point d’accès portant le même nom que le réseau ciblé.
Ensuite nous envoyant à l’aide d’aireplay des paquets de desauthentification afin de déconnecter le client de l’AP : comme il y a deux points d’accès portant le même nom le client se reconnectera automatiquement sur celui ayant le signal le plus fort. (le nôtre :p).
Désormais la victime est connecté sur notre point d’accès et tout son trafic passera par notre machine, nous permettant ainsi d’écouter et suivre toutes ses actions.
Il nous reste à faire un bridge (pont) entre mon interface mon0 qui est l’interface Wi-Fi de notre AP crée (celle où est connectée la victime), et notre interface eth0 qui est l’interface connectée à internet afin que l’utilisateur reçoive des réponses à ces requêtes.
Assurez-vous que vous êtes connecté à internet sur une de vos interfaces (de préférence une interface ethernet, car le bridge n’est pas possible en WLAN) .
Lançons airbase sur mon0 pour créer le réseau CREATIVEO.NET
Dans les chapitres précédents nous avons que créer un AP avec airbase nous crée une interface at0 que nous devons activité :
Maintenant nous allons devoir créer le bridge entre les deux interfaces à l’aide de Brctl.
Si vous utilisez Backtrack avec une machine virtuelle, normalement il y a un serveur DHCP.Par contre si vous avez Backtrack installé en dur sur votre machine, vous devez mettre en place un serveur DHCP afin que vos victimes se voient attribuer une IP… (c’est assez facile à mettre en place ne vous inquiétez pas ;).
Conclusion: Nous avons vu aujourd’hui deux moyens pour faire un Man In The Middle . Comme vous avez pus le constater cette opération ne nécessite pas de grosse connaissance pour être mis en place et s’avère très dangereuse…
That’s all folks !











