Cette attaque, appelée aussi ARP Redirect, redirige le trafic réseau d’une ou plusieurs machine vers la machine du pirate.
C’est une technique de spoofing efficace bien que détectable dans les logs d’administration; elle consiste à s’attribuer l’adresse IP de la machine cible, c’est-à-dire à faire correspondre son adresse IP à l’adresse MAC de la machine pirate dans les tables ARP des machines du réseau.
Pour cela il suffit en fait d’envoyer régulièrement des paquets ARP_reply en broadcast, contenant l’adresse IP cible et la fausse adresse MAC.
Cela a pour effet de modifier les tables dynamiques de toutes les machines du réseau. Celles-ci enverront donc leur trames ethernet à la machine pirate tout en croyant communiquer avec la cible, et ce de façon transparente pour les switches.
De son côté, la machine pirate stocke le traffic et le renvoie à la vraie machine en forgeant des trames ethernet comportant la vraie adresse MAC (indépendament de l’adresse IP).
Cette technique est très puissante puisqu’elle opère au niveau ethernet, permettant ainsi de spoofer le traffic IP et même TCP (cela dépend entre autres des délais engendrés par la machine pirate). D’autre part, elle permet de contourner les barrières que constituent habituellement les switches (partitionnement de réseaux). Conséquences : Compromissions DoS (cache poisoning), etc… Elle s’effectue sur le réseau physique des victimes. Petit rappel sur le fonctionnement du protocole ARP.
Le protocole ARP (Address Resolution Protocol) implémente le mécanisme de résolution d’une adresse IP en une adresse MAC Ethernet. Les équipements réseaux communiquent en échangeant des trames Ethernet (dans le cas d’un réseau Ethernet bien sûr) au niveau de la couche liaison de données. Pour pouvoir échanger ces informations il est nécessaire que les cartes réseau possèdent une adresse unique au niveau Ethernet, il s’agit de l’adresse MAC (Media Access Control).
Quand un paquet IP doit être envoyé la machine expéditrice a besoin de
l’adresse MAC du destinataire.
Pour cela une requête ARP en broadcast est envoyée à chacune des machines du réseau physique local. Cette requête pose la question : « Quelle est l’adresse MAC associée à cette adresse IP ? ».
La machine ayant cette adresse IP répond via un paquet ARP, cette réponse indiquant à la machine émettrice l’adresse MAC recherchée. Dès lors, la machine source possède l’adresse MAC correspondant à l’adresse IP destination des paquets qu’elle doit envoyer.
Cette correspondance sera gardée pendant un certain temps au niveau d’un cache (pour éviter de faire une nouvelle requête à chaque paquet IP envoyé).
Cette attaque corrompt le cache de la machine victime. Le pirate envoie des paquets ARP réponse à la machine cible indiquant que la nouvelle adresse MAC correspondant à l’adresse IP d’une passerelle (par exemple) est la sienne. La machine du pirate recevra donc tout le trafic à destination de la passerelle, il lui suffira alors d’écouter passivement le trafic (et/ou le modifier). Il routera ensuite les paquets vers la véritable destination.
L’ARP Spoofing sert dans le cas où le réseau local utilise des switchs. Ceux-ci redirigent les trames Ethernet sur des ports différents selon l’adresse MAC. Il est dès lors impossible à un sniffer de capturer des trames au-delà de son brin physique.
L’ARP Spoofing permet ainsi d’écouter le trafic entre des machines situées sur des brins différents au niveau du switch. Pour mettre en oeuvre une attaque par ARP Spoofing, le pirate va utiliser un générateur de paquet ARP comme ARPSpoof ou nemesis. Soit la machine victime 10.0.0.171, sa passerelle par défaut 10.0.0.1et la machine du pirate 10.0.0.227.
Avant l’attaque un traceroute donne comme résultat :
C’est une technique de spoofing efficace bien que détectable dans les logs d’administration; elle consiste à s’attribuer l’adresse IP de la machine cible, c’est-à-dire à faire correspondre son adresse IP à l’adresse MAC de la machine pirate dans les tables ARP des machines du réseau.
Pour cela il suffit en fait d’envoyer régulièrement des paquets ARP_reply en broadcast, contenant l’adresse IP cible et la fausse adresse MAC.
Cela a pour effet de modifier les tables dynamiques de toutes les machines du réseau. Celles-ci enverront donc leur trames ethernet à la machine pirate tout en croyant communiquer avec la cible, et ce de façon transparente pour les switches.
De son côté, la machine pirate stocke le traffic et le renvoie à la vraie machine en forgeant des trames ethernet comportant la vraie adresse MAC (indépendament de l’adresse IP).
Cette technique est très puissante puisqu’elle opère au niveau ethernet, permettant ainsi de spoofer le traffic IP et même TCP (cela dépend entre autres des délais engendrés par la machine pirate). D’autre part, elle permet de contourner les barrières que constituent habituellement les switches (partitionnement de réseaux). Conséquences : Compromissions DoS (cache poisoning), etc… Elle s’effectue sur le réseau physique des victimes. Petit rappel sur le fonctionnement du protocole ARP.
Le protocole ARP (Address Resolution Protocol) implémente le mécanisme de résolution d’une adresse IP en une adresse MAC Ethernet. Les équipements réseaux communiquent en échangeant des trames Ethernet (dans le cas d’un réseau Ethernet bien sûr) au niveau de la couche liaison de données. Pour pouvoir échanger ces informations il est nécessaire que les cartes réseau possèdent une adresse unique au niveau Ethernet, il s’agit de l’adresse MAC (Media Access Control).
Quand un paquet IP doit être envoyé la machine expéditrice a besoin de
l’adresse MAC du destinataire.
Pour cela une requête ARP en broadcast est envoyée à chacune des machines du réseau physique local. Cette requête pose la question : « Quelle est l’adresse MAC associée à cette adresse IP ? ».
La machine ayant cette adresse IP répond via un paquet ARP, cette réponse indiquant à la machine émettrice l’adresse MAC recherchée. Dès lors, la machine source possède l’adresse MAC correspondant à l’adresse IP destination des paquets qu’elle doit envoyer.
Cette correspondance sera gardée pendant un certain temps au niveau d’un cache (pour éviter de faire une nouvelle requête à chaque paquet IP envoyé).
Cette attaque corrompt le cache de la machine victime. Le pirate envoie des paquets ARP réponse à la machine cible indiquant que la nouvelle adresse MAC correspondant à l’adresse IP d’une passerelle (par exemple) est la sienne. La machine du pirate recevra donc tout le trafic à destination de la passerelle, il lui suffira alors d’écouter passivement le trafic (et/ou le modifier). Il routera ensuite les paquets vers la véritable destination.
L’ARP Spoofing sert dans le cas où le réseau local utilise des switchs. Ceux-ci redirigent les trames Ethernet sur des ports différents selon l’adresse MAC. Il est dès lors impossible à un sniffer de capturer des trames au-delà de son brin physique.
L’ARP Spoofing permet ainsi d’écouter le trafic entre des machines situées sur des brins différents au niveau du switch. Pour mettre en oeuvre une attaque par ARP Spoofing, le pirate va utiliser un générateur de paquet ARP comme ARPSpoof ou nemesis. Soit la machine victime 10.0.0.171, sa passerelle par défaut 10.0.0.1et la machine du pirate 10.0.0.227.
Avant l’attaque un traceroute donne comme résultat :
*************************************************************************************************************
$ traceroute 10.0.0.1 traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 40 byte packets 1 10.0.0.1 (10.0.0.1) 1.218 ms 1.061 ms 0.849 ms Et le cache ARP de la machine cible est :
$ arp Address HWtype HWAddress Flags Mask Iface 10.0.0.1 ether 00:b0:c2:88:de:65 C eth0 10.0.0.227 ether 00:00:86:35:c9:3f C eth0
*************************************************************************************************************
Le pirate lance alors ARPSpoof :
*************************************************************************************************************
Le pirate lance alors ARPSpoof :
$ arpspoof -t 10.0.0.171 10.0.0.1 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f Les paquets envoyés sont des paquets ARP empoisonnant le cache ARP de la machine 10.0.0.171 avec des ARP Reply indiquant que l’adresse MAC associée à 10.0.0.1 est maintenant 00:00:86:35:c9:3f.
Désormais, le cache ARP de la machine 10.0.0.171 est :
Désormais, le cache ARP de la machine 10.0.0.171 est :
*************************************************************************************************************
$ arp Address HWtype HWAddress Flags Mask Iface 10.0.0.1 ether 00:00:86:35:c9:3f C eth0 10.0.0.227 ether 00:00:86:35:c9:3f C eth0
*************************************************************************************************************
Pour vérifier que le trafic passe maintenant par la machine 10.0.0.227 il suffit de faire un nouveau traceroute vers la passerelle 10.0.0.1 :
Pour vérifier que le trafic passe maintenant par la machine 10.0.0.227 il suffit de faire un nouveau traceroute vers la passerelle 10.0.0.1 :
*************************************************************************************************************
$ traceroute 10.0.0.1 traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 40 byte packets 1 10.0.0.227 (10.0.0.227) 1.712 ms 1.465 ms 1.501 ms 2 10.0.0.1 (10.0.0.1) 2.238 ms 2.121 ms 2.169 ms
*************************************************************************************************************
Le pirate est désormais capable de sniffer le trafic de la machine 10.0.0.171 vers 10.0.0.1.
Il ne faut pas que le pirate oublie d’activer le routage IP sur sa machine 10.0.0.227
(avec l’IP Forwarding – activer la clé >net.ipv4.ip_forward dans /etc/sysctl.conf ou echo 1 > /proc/sys/net/ipv4/ip_forward ou encore fragrouter ).
*************************************************************************************************************
Le pirate est désormais capable de sniffer le trafic de la machine 10.0.0.171 vers 10.0.0.1.
Il ne faut pas que le pirate oublie d’activer le routage IP sur sa machine 10.0.0.227
(avec l’IP Forwarding – activer la clé >net.ipv4.ip_forward dans /etc/sysctl.conf ou echo 1 > /proc/sys/net/ipv4/ip_forward ou encore fragrouter ).