Maxime BENE
Retour aux projets
Projet actifPythonScapySécurité réseau

Détecteur ARP Spoofing

Détection en temps réel des attaques Man-in-the-Middle sur réseau local. Surveille les réponses ARP, alerte sur les changements de MAC suspects, et identifie la cible visée.

L'attaque : ARP Spoofing

ARP (Address Resolution Protocol) associe une adresse IP à une adresse MAC sur un réseau local. Quand ton PC veut parler à la passerelle, il demande : "Qui a l'IP 192.168.244.2 ?" et le routeur répond : "C'est moi, voici ma MAC."

Le problème : ARP n'a aucune authentification. N'importe qui sur le réseau peut répondre à cette requête et prétendre être la passerelle.

C'est ce que fait arpspoof : il envoie en boucle des réponses ARP qui disent à la victime "La passerelle, c'est moi.". Résultat : tout le trafic de la victime passe par l'attaquant. C'est le Man-in-the-Middle.

Comment le détecteur fonctionne

1. Construction d'une table ARP légitime — Le détecteur observe les réponses ARP et mémorise la première MAC associée à chaque IP.

2. Surveillance des changements — Si une IP change de MAC, c'est suspect. Un changement de MAC sur une IP déjà connue signifie qu'une autre machine usurpe son identité.

3. Gradation par sévérité — On lit ip route show default pour identifier la vraie passerelle. Si l'IP usurpée est la passerelle → alerte CRITIQUE. Sinon → ÉLEVÉ.

4. Identification de la cible — Chaque paquet ARP contient une IP de destination (pdst). On sait donc quelle machine est visée par l'attaque.

Fonctionnalités clés

Détection en temps réel

Capture les paquets ARP en direct via Scapy et surveille les réponses ARP pour repérer les changements de MAC suspects.

Gradation de sévérité

Une attaque ciblant la passerelle est marquée CRITIQUE (Man-in-the-Middle probable). Une attaque vers une autre IP est ÉLEVÉ.

Identification des cibles

Le détecteur indique quelle machine est visée (cible IP) et quelle MAC usurpe l'identité de la passerelle.

Détection intelligente de la passerelle

Lit la route par défaut via `ip route` pour identifier la vraie passerelle, plutôt qu'une heuristique sur les IPs en .1 ou .254.

Interface CLI simple

Une seule commande : `python main.py --arp --interface eth1`. Le rapport s'affiche dans le terminal et est exporté en JSON.

Export JSON exploitable

Chaque alerte est enregistrée avec la MAC usurpée, la cible visée et le timestamp. Prêt pour intégration dans un SIEM.

Démonstration dans le lab

Environnement : Kali Linux (détecteur) + Ubuntu Server (attaquant via arpspoof), sur réseau Host-Only VirtualBox.

1. Lancement du détecteur

Sur Kali : sudo python main.py --arp --interface eth1

Détection ARP Spoofing sur Kali

2. Lancement de l'attaque

Sur Ubuntu : sudo arpspoof -i ens33 -t 192.168.244.131 192.168.244.2

Attaque ARP Spoofing sur Ubuntu

3. Auto-détection sur la même machine

Le détecteur et l'attaque tournent sur le même poste. Grâce au broadcast ARP, Kali reçoit ses propres paquets et détecte l'anomalie.

Auto-détection ARP Spoofing sur la même machine

Résultat : alerte CRITIQUE

🚨 CRITIQUE - ARP SPOOFING potentiel :
   l'IP 192.168.244.2 a changé de MAC
   (00:0c:29:5a:f2:c6 → 00:50:56:ed:cd:e9)
   La cible 192.168.244.131 est visée.
   Possible Man-in-the-Middle.

Décodage : la passerelle 192.168.244.2 a changé de MAC pour celle d'Ubuntu (00:50:56:ed:cd:e9). La cible est Kali (192.168.244.131). L'attaque est confirmée.

Stack technique

Python 3.12Langage principal
ScapyCapture ARP
ColoramaInterface terminal
Kali LinuxAttaquant (arpspoof)
Ubuntu ServerCible / victime
VirtualBoxLab isolé

Ce que ce projet démontre

01

Comprendre l'ARP Spoofing

ARP n'a aucune authentification. Un attaquant peut se faire passer pour la passerelle en envoyant de fausses réponses ARP. C'est la base du Man-in-the-Middle sur réseau local.

02

Détecter par changement de MAC

La signature d'une attaque ARP Spoofing est simple : une IP change de MAC. Le détecteur garde une table ARP légitime et alerte dès qu'une MAC change pour une IP connue.

03

Prioriser selon le contexte

Un spoofing de passerelle (routeur) est critique — tout le trafic peut être intercepté. Un spoofing d'une machine standard est élevé mais moins grave.

04

Test en environnement isolé

Toute attaque réseau doit être testée dans un lab. Le lab Host-Only VirtualBox permet de simuler une attaque réelle sans impact sur le réseau de production.

Test uniquement en lab

Toutes les attaques ARP Spoofing ont été réalisées dans un réseau Host-Only VirtualBox isolé, sans impact sur un réseau de production. Utiliser arpspoof sur un réseau sans autorisation est illégal.

Articles liés

Voir le code sur GitHub

L'intégralité du détecteur est open-source, avec le reste du Network Packet Analyzer.

Voir sur GitHub