Vous devez obligatoirement déposer un compte rendu illustré individuel pour chaque TP au format TPi.[pdf|odt|docx] sur Moodle.
Vous pouvez compléter vos TP après une séance en déposant un nouveau fichier TPiv2.[pdf|odt|docx].
Dans cette deuxième partie de TP, nous allons nous intéresser au protocole ARP, et au détournement possible de son usage dans le cadre d'une attaque.
Rappel. Attention. Vous avez signé une charte en début d'année et ne devez pas utiliser d'attaques réseaux sur des machines ne vous appartenant pas (même pour "jouer").
Dans ce TP, vous allez attaquer une de vos machines dans votre réseau interne.
Le fonctionnement d'ARP a été rappelé en détail au TP1.
Fonctionnement en deux étapes : envoi d'une trame en broadcast de type "who-has @IP?", la machine ayant cette adresse IP répond uniquement à la machine ayant posé la question (message unicast) avec une trame "@IP is-at @MAC".
L'attaque est connue sous le nom d'ARP Poisoning, et permet au pirate de rediriger le trafic d'une ou plusieurs machines du réseau vers la sienne. L'opération vise à modifier le cache ARP d'une ou plusieurs victimes en associant l'adresse IP de la passerelle (par exemple) à l'adresse MAC du pirate.
Tout le trafic Victime --> Passerelle est donc envoyé vers la machine de l'attaquant (@IPpasserelle est avec @MACattaquant).
À lui a rerouter ce flux vers la destination demandée, afin que la victime ne s'aperçoive de rien
Si l'attaquant empoisonne également le cache ARP de la passerelle pour associer l'adresse IP de la victime à son adresse MAC (@IPvictime est avec @MACattaquant), alors il récupérera également le trafic retour des messages (Tout le trafic Passerelle --> Victime passant alors par la machine de l'attaquant également). Ces deux empoisonnements ARP permettent une attaque Man-in-the-middle (L'homme au milieu en français).
Illustration d'une attaque Man-in-the-middle
Deux techniques sont possibles.
Il s'agit de transmettre à la victime une trame ARP réponse associant l'adresse IP à détourner avec l'adresse MAC de l'attaquant. Cette technique utilise une faille de certains systèmes d'exploitation qui acceptent des paquets ARP Reply sans avoir reçu au préalable des paquets ARP Request.
Cette technique détourne l'usage des requêtes ARP qui sont utilisées habituellement en mode broadcast ("que celui qui possède l'adresse IP suivante me réponde avec son adresse MAC") en les utilisant en mode unicast ("toi qui possède l'adresse IP suivante, répond moi avec ton adresse MAC. Au fait, voici mon adresse IP (c'est celle de la passerelle, pas celle de l'attaquant) et mon adresse MAC (et celle-là c'est bien celle de l'attaquant)").
Rappelez vous (lors d'une analyse Wireshark par exemple) que dans chaque paquet ARP vous avez deux associations (@MAC - @IP) : une pour l'émetteur (sender) et une pour le récepteur (target).
Champs de données du protocole ARP (source Wikipédia)
Notez que des parades simples existent à cette attaque comme mettre les associations en dur (arp -s), ou bien le système (ou un logiciel surveillant le cache ARP) peut aussi automatiquement détecter qu'une adresse mac est utilisée deux fois (par exemple la passerelle peut voir que l'@MAC de l'attaquant est associée à la fois à l'@IP de l'attaquant et à l'@IP de la victime). Wireshark le signale également.
La réalisation de ces attaques nécessite un générateur de paquet ARP, nous emploierons le générateur Scapy.
Le but va être d'associer l'adresse IP de votre passerelle (P) à l'adresse MAC de la machine attaquante (A) dans le cache ARP de la machine victime (V).
Machine | Adresse IP | Adresse MAC |
---|---|---|
V | ||
Passerelle | ||
A |
>>> p=Ether(src="@MACa",dst="@MACv")/ARP(op="is-at",hwdst="@MACv",pdst="@IPv",hwsrc="@MACa",psrc="@IPp")
>>> sendp(p,loop=1)
Au lieu de corrompre le cache ARP, on peut tenter de corrompre le cache DNS ou un serveur DNS pour faire cette attaque (DNS spoofing).
D'une manière générale, il est possible de mettre tous les "faux services" que l'on souhaite sur un réseau une fois que l'on a une machine avec les droits d'administration sur ce réseau.
Le module M4207 du semestre 4 sera une introduction à la sécurité dans les réseaux.