Aller au contenu principal

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.

remarque

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é.
info

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.

astuce

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.

attention

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.

attention

Une attaque MitM peut être invisible et puissante sur un réseau non sécurisé.

Test de mémorisation/compréhension


Que fait un attaquant dans une attaque MitM ?


Quel est un risque d’une attaque MitM ?


Quelle technique utilise de faux messages ARP ?


Que peut faire un Wi-Fi Evil Twin ?


Quel outil capture le trafic réseau ?


Comment se protéger d’une attaque MitM ?


Que permet le SSL Stripping ?


Dans l’exemple, que fait l’attaquant avec les données ?


Quel est le rôle de Wireshark dans l’exemple ?


Que peut modifier un attaquant actif ?


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.
info

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 et Wireshark (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

  1. Configuration réseau avec IPs statiques
  2. Installation et configuration du serveur Web
  3. Préparation de la machine Debian pour l’attaque
  4. Lancement de l’attaque ARP Spoofing
  5. Interception et analyse du trafic avec Wireshark
  6. 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)
  1. Aller dans :
    Panneau de configuration > Réseau et Internet > Centre Réseau et partage > Modifier les paramètres de la carte
  2. Clic droit sur la carte réseau > Propriétés
  3. Sélectionner Protocole Internet version 4 (TCP/IPv4) > Propriétés
  4. 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
  5. 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

  1. Sur la VM Debian :
    sudo wireshark
  2. Sélectionner l’interface eth0 et démarrer la capture.
  3. Sur le poste Windows, rafraîchir la page :
    http://192.168.1.20
  4. Dans Wireshark, filtrer avec :
    http
  5. 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-mesureDescription
HTTPSChiffre les communications, empêche la lecture du contenu
ArpwatchSurveille les changements ARP suspects
Port Security (Switch)Restreint les adresses MAC autorisées
Static ARPFixe manuellement les adresses MAC (rarement utilisé)
Segmentation réseauSépare les machines sensibles du reste du réseau
Test facultatif : HTTPS
  1. Installer un certificat SSL sur Apache (auto-signé ou Let's Encrypt).
  2. Accéder à https://192.168.1.20.
  3. Rafraîchir la page depuis Windows.
  4. 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, ou suricata
  • Simuler une attaque DNS spoofing en complément