Sur un réseau local (10.0.0.0/24), l'utilisateur d'un poste de la comptabilité se plaint de lenteurs réseau. Une capture a été réalisée sur le segment et vous est fournie au format libpcap : capture.pcap (ouvrable dans Wireshark, tshark, ou un parseur Python).
La capture contient plusieurs centaines de trames : du trafic normal (requêtes ARP légitimes, DNS, poignées de main TLS) et, au milieu, une attaque. Plusieurs postes de la comptabilité consultent le même portail RH en HTTP, avec une authentification Basic, chacun avec ses propres identifiants. Mais un attaquant s'est intercalé entre un seul de ces postes et la passerelle.
Votre mission
1. Analysez les trames ARP pour repérer l'empoisonnement : une adresse MAC qui usurpe l'IP de la passerelle (10.0.0.1) après que la vraie passerelle a répondu.
2. Déterminez quel poste a réellement vu son trafic détourné vers la MAC de l'attaquant (les autres échanges, passés par la vraie passerelle, sont des leurres).
3. Sur ce flux HTTP, récupérez l'en-tête Authorization: Basic et décodez-le : le mot de passe est le flag. Attention : tous les postes utilisent un mot de passe de forme similaire ; seul le flux réellement détourné (identifié à l'étape 2) donne le bon flag.
Le protocole ARP n'a aucune authentification : un attaquant envoie de fausses réponses ARP pour associer sa MAC à l'IP de la passerelle. Le cache ARP de la victime est écrasé et tout son trafic destiné à la passerelle (donc sortant hors du sous-réseau) est détourné vers l'attaquant : c'est l'attaque Man-in-the-Middle par ARP poisoning. Le trafic qui reste dans le sous-réseau (vers le résolveur DNS interne, par exemple) n'est pas affecté tant que seule l'IP de la passerelle est usurpée. Combinée à un protocole en clair comme l'authentification HTTP Basic (un simple encodage Base64 de utilisateur:motdepasse), elle expose directement les identifiants.
Pour se défendre :
Authorization: Basic ne protège rien.