Man in the middle
Une attaque qui intercepte les communications
Notions théoriques
Une attaque Man in the Middle se produit quand une personne mal intentionnée s’insère entre 2 parties qui communiquent :
- 2 ordinateurs
- 1 ordinateur et 1 serveur
- 1 smartphone et un réseau social
- 1 smartphone et un service de jeux en ligne
- etc
Ces 2 parties pensent parler directement l’une à l’autre, mais en réalité, l’attaquant intercepte tout.
L’objectif d'une attaque Man in the Middle peut être :
- d'écouter les échanges,
- de voler des informations
- ou même de modifier ce qui est envoyé.
Imaginez une conversation par lettre entre 2 amis.
- Si quelqu’un ouvre les enveloppes en secret, lit les messages, et les remet ensuite, c’est une attaque passive.
- S’il change les mots avant de renvoyer la lettre, c’est une attaque active.
Sur un réseau informatique, c’est pareil, mais avec des données numériques.
Il existe plusieurs façons de faire une attaque MitM :
- L’ARP Spoofing trompe les machines d’un réseau local pour qu’elles envoient leurs données à l’attaquant.
- Le DNS Spoofing redirige vers un faux site Web.
- Le SSL Stripping enl ève le chiffrement d’une connexion sécurisée.
- Un Wi-Fi Evil Twin crée un faux réseau Wi-Fi pour piéger les utilisateurs.
Les risques sont sérieux : vol de mots de passe, d’informations bancaires, ou encore injection de virus.
Pour se protéger, il faut utiliser des connexions sécurisées comme HTTPS, vérifier les certificats, ou employer un VPN.
Mettre à jour ses logiciels aide aussi à limiter les failles exploitables.
Ces attaques sont discrètes, mais elles peuvent causer beaucoup de dégâts si elles réussissent.
Comprendre comment elles marchent permet de mieux sécuriser ses données.
Exemple pratique
Il est possible de simuler une attaque MitM sur un réseau local avec des outils simples.
Prenons un cas avec 3 ordinateurs :
- 2 ordinateurs qui communiquent (A et B)
- et 1 ordinateur (C) qui joue l’attaquant.
Configurer d’abord un réseau local où A et B échangent des données, comme des messages ou des fichiers.
Sur C, installer Wireshark, un logiciel pour capturer le trafic réseau.
Ensuite, utiliser une technique comme l’ARP Spoofing pour faire croire à A que C est B, et à B que C est A.
Lancer Wireshark sur C pour voir les données passer.
Si A envoie un message à B, C l’intercepte et peut le lire.
Modifier les données est aussi possible avant de les renvoyer.
Par exemple, si A envoie “Salut”, C pourrait changer ça en “Coucou” sans que A ou B ne s’en rende compte.
Une attaque MitM peut être invisible et puissante sur un réseau non sécurisé.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Objectif
Simuler une attaque Man in the Middle (MitM) par ARP Spoofing dans un réseau local sans DHCP, avec :
- un poste physique Windows comme client,
- une VM Linux comme serveur (hébergeant un site Web),
- et une VM Debian comme attaquant.
L’attaquant va intercepter le trafic HTTP entre le client et le serveur, puis va l'analyser avec Wireshark.
Matériel requis
- Un poste physique Windows (client)
- Une VM Linux (Ubuntu/Debian) avec Apache (serveur)
- Une VM Debian avec
dsniff
etWireshark
(attaquant) - Toutes les machines connectées au même réseau local (même switch)
- Les adresses IP sont statiques (pas de DHCP)
Plan du TP
- Configuration réseau avec IPs statiques
- Installation et configuration du serveur Web
- Préparation de la machine Debian pour l’attaque
- Lancement de l’attaque ARP Spoofing
- Interception et analyse du trafic avec Wireshark
- Réflexion sur les protections
Étape 1 : Configuration réseau avec IPs statiques
Objectif
Assigner manuellement des adresses IP aux trois machines pour qu’elles puissent communiquer sans DHCP.
Poste physique Windows (client)
- Aller dans :
Panneau de configuration > Réseau et Internet > Centre Réseau et partage > Modifier les paramètres de la carte
- Clic droit sur la carte réseau > Propriétés
- Sélectionner Protocole Internet version 4 (TCP/IPv4) > Propriétés
- Cocher Utiliser l’adresse IP suivante :
- Adresse IP :
192.168.1.10
- Masque de sous-réseau :
255.255.255.0
- Passerelle : vide ou
192.168.1.1
si besoin
- Adresse IP :
- Valider et vérifier avec :
ipconfig
ping 192.168.1.20
ping 192.168.1.30
VM Linux (serveur)
sudo nano /etc/network/interfaces
Ajouter :
auto eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0
Redémarrer le réseau :
sudo systemctl restart networking
Vérifier :
ip addr show
ping 192.168.1.10
VM Debian (attaquant)
Même configuration que la VM Linux, mais avec :
address 192.168.1.30
Étape 2 : Installer Apache sur la VM Linux (serveur Web)
sudo apt update
sudo apt install apache2
Créer une page de test :
sudo nano /var/www/html/index.html
Contenu :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<h1>Page de test MitM</h1>
</body>
</html>
Démarrer Apache :
sudo systemctl start apache2
sudo systemctl enable apache2
Test depuis le poste Windows
Dans un navigateur :
http://192.168.1.20
La page "Page de test MitM" doit s’afficher.
Étape 3 : Préparer la VM Debian (attaquant)
Installer les outils nécessaires
sudo apt update
sudo apt install dsniff wireshark
Activer le transfert IP
sudo sysctl -w net.ipv4.ip_forward=1
Pour que ce soit permanent :
sudo nano /etc/sysctl.conf
Décommenter ou ajouter :
net.ipv4.ip_forward=1
Étape 4 : Lancer l’attaque ARP Spoofing
Objectif
Falsifier les tables ARP pour que le trafic entre le client (Windows) et le serveur (Linux) passe par la machine Debian.
Sur la VM Debian :
Ouvrir deux terminaux.
Terminal 1 : Cibler le client Windows
sudo arpspoof -i eth0 -t 192.168.1.10 192.168.1.20
Terminal 2 : Cibler le serveur Linux
sudo arpspoof -i eth0 -t 192.168.1.20 192.168.1.10
Vérification
Sur Windows :
arp -a
→ L’adresse MAC de 192.168.1.20
doit être celle de la VM Debian.
Sur Linux :
arp -a
→ L’adresse MAC de 192.168.1.10
doit être celle de la VM Debian.
Étape 5 : Interception avec Wireshark
- Sur la VM Debian :
sudo wireshark
- Sélectionner l’interface
eth0
et démarrer la capture. - Sur le poste Windows, rafraîchir la page :
http://192.168.1.20
- Dans Wireshark, filtrer avec :
http
- Observer :
- Les requêtes HTTP GET
- Le contenu HTML en clair
- Les en-têtes HTTP
Étape 6 : Réflexion sur la sécurité
Données interceptées
- Les requêtes HTTP sont en clair.
- L’attaquant peut lire :
- URLs
- Contenu HTML
- Cookies (si transmis sans HTTPS)
Contre-mesures
Contre-mesure | Description |
---|---|
HTTPS | Chiffre les communications, empêche la lecture du contenu |
Arpwatch | Surveille les changements ARP suspects |
Port Security (Switch) | Restreint les adresses MAC autorisées |
Static ARP | Fixe manuellement les adresses MAC (rarement utilisé) |
Segmentation réseau | Sépare les machines sensibles du reste du réseau |
Test facultatif : HTTPS
- Installer un certificat SSL sur Apache (auto-signé ou Let's Encrypt).
- Accéder à
https://192.168.1.20
. - Rafraîchir la page depuis Windows.
- Observer dans Wireshark : le trafic est chiffré (pas lisible).
Conclusion
Ce TP vous a permis de :
- Configurer un réseau local sans DHCP avec des IPs statiques
- Mettre en place une attaque ARP Spoofing depuis une machine Debian
- Intercepter et analyser le trafic HTTP en clair avec Wireshark
- Explorer les risques de ce type d’attaque et les solutions pour s’en protéger
Pour aller plus loin
- Implémenter HTTPS avec un vrai certificat
- Tester avec des identifiants transmis en HTTP (ex. : formulaire de login)
- Utiliser
ettercap
pour automatiser l’attaque - Étudier la détection de MitM avec des outils comme
arpwatch
,snort
, ousuricata
- Simuler une attaque DNS spoofing en complément