Empecher l’arp poisoning / arp spoofing / Détecter si quelqu’un sniffe votre réseau

Le 28 avril 2009 par John JEAN Laisser un commentaire »

tick-icon

Partant du postulat qu’aucun réseau n’est fiable, je suis souvent pris de crise de paranoïa. En effet, comment savoir si le Wifi sur lequel je suis connecté à l’hôtel ou dans un café n’est pas victime de sniff d’un petit bidouilleur du coin. Au final, ce schéma n’est pas si paranoïaque que cela, le bidouilleur en question peut tout a fait avoir cracké la clé wep de la connexion et sniffer tout ce qui passe sur le réseau à mon insu.

Je ferai prochainement un billet sur les attaques de type Man in The Middle, en attendant voici pour la théorie sur l’ARP poisoning.

Grosso modo le sniffing repose sur une faiblesse du protocole ARP. Sans entrer dans les détails, ce protocole sert à gérer l’association des adresses MAC / IP. Si vous tapez arp -a dans votre shell, vous verrez la plage ARP que votre ordinateur a en cache. Donc dans l’idée, si ce cache est vide, j’envoie une requête broadcasté pour émettre ma trame = > tous les ordinateurs du réseau sont au courant de cette requête et l’ordinateur concerné me renvoie son adresse MAC; après association, ma trame est envoyée. Si j’ai déjà l’association en cache, ma trame est envoyée immédiatement.

L’astuce va consister à usurper une adresse IP au sein du réseau en utilisant des packets forgés. Comment cela se passe ? Si je veux sniffer ce qu’Etienne et Alix se disent, je vais envoyer à Etienne un packet avec en adresse IP source, l’ip de la machine d’Alix et l’adresse MAC de ma carte réseau. On imagine aisément la suite, j’envoie un packet à Alix avec l’adresse IP d’Etienne en source et mon adresse MAC à nouveau. Lorsque les deux vont vouloir communiquer, c’est moi qui vais recevoir les trames. Une fois que les trames arrivent chez moi, j’ai plusieurs choix: Ecouter ce qu’ils se disent (conversations MSN, Surf, etc) avec du Man in the Middle, donc rerouter les packets ensuite; paralyser le réseau en réalisant un Ddos: MITM sans relayer les packets; décider de ne pas router les packets après réception: bloquage du réseau. Ainsi je peux écouter l’intégralité des informations échangées sur le réseau où je suis.

Pour éviter ce type d’attaque on peut par exemple mettre des entrées statiques dans les cache ARP, mais cette méthode a ses limites: il faut un faible nombre de machines sur le réseau, et c’est biensûr impossible sur un Wifi ouvert d’hôtel. Sinon, on peut surveiller le réseau, et couper les accès aux adresses IP usurpées (Victime 1, Victime 2, Attaquant).

Si l’on est victime de ce type d’attaque, on peut limiter le casse: le bon usage voudrait que l’on utilise SYSTÉMATIQUEMENT des connexions en SSL pour rappatrier ses mails, se loger sur ses comptes favoris (gmail, analytics, etc), et se limiter à l’essentiel dans ce surf. Bref tout cela reste problématique et assez peu déterministe. D’autant plus que de configurer un proxy SSL pour son IM n’est pas toujours possible, et un pirate peut aisément extraire les trames spécifiques qui l’interesse. Par exemple en cas de sniffing, si sous Wireshark j’utilise: msnms contains « text/plain » && ip.addr == 192.168.0.10, je pourrais lire l’intégralité des conversations msn de la victime.

Tout cela pour dire que j’ai trouvé un soft qui se lance au démarrage de votre machine et vous alerte en cas d’ARP Poisoning. Je ne peux plus m’en passer, ma paranoia diminue, bref tout va pour le mieux dans le meilleur des mondes.

Le soft en question s’appelle Xarp, téléchargeable ici. Donc comme précisé, il se lance au démarrage et analyse les associations ARP, et permet de déceller si vous êtes victime d’ARP Poisoning. S’il détecte une attaque, il pop une alerte avec l’adresse IP de l’attaquant et celles des victimes.

Sinon si vous voulez vous la jouer un peu plus old school, vous avez arpwatch.

 

xarp screenshot alert

8 commentaires

  1. AnnaHopn dit :

    Everything dynamic and very positively! :)
    Thank you

  2. funkinessflavor dit :

    SSL protégera de l’écoute malveillante du réseau mais pas d’un mitm associé à un arp spoofing.

    A propos de la 2e partie du titre (« Détecter si quelqu’un sniffe votre réseau »), on peut utiliser l’outil antisniff ou sinon, à la main, on peut envoyer des arp who-has à destination de ff:ff:ff:ff:ff:fe.

  3. John dit :

    SSL empêchera de collecter les informations utilisateurs, sauf si celui-ci ne voit pas les faux que l’attaque MITM génère :) Là on ne peut plus rien faire :]

  4. Tomi dit :

    Salut For all
    une Vidéo ARP Poisoning Avec Cain

    http://www.youtube.com/watch?v=2U2aVf-0aFw

    Merci tout le monde and Nice Work Mr.John

  5. Sput dit :

    Bonjour,

    je tiens a preciser qu’il existe un autre soft pour la detection & le blocage de l’arp poisoning : AntiArp
    de colorsoft, je le prefere a xarp

    En version Workstation & Server

    http://www.antiarp.com/english.html
    http://download.antiarp.com/tmp/antiarp_eng.rar

    Version : v6.0.1
    Size : 7.35 MB
    Release Date : 2009-02-24
    Platform : Windows2000/XP/2003/Vista
    Language : English
    Authorization : 15-days free trial

    Cordialement

  6. Sput dit :

    A oui, j’oubliai pour le petit pb de ssl & ssh, li ya le script sslstrip, outil destine a reroute du ssl sur du http en clair (facebook,Gmail,etc…) entre autre

    Sput
    ++

    http://www.thoughtcrime.org/software/sslstrip/
    http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.2.tar.gz

  7. Kasi dit :

    Moi j’aimerais revenir sur « msnms contains « text/plain » && ip.addr == 192.168.0.10″.

    En quoi ça permet de voir le contenu de la conversation msn ?

  8. John JEAN dit :

    http://wiki.wireshark.org/MSNMS

    En partant du principe que tu fais un MITM.

Laisser un commentaire