Sei sulla pagina 1di 4

evilsocket.net | ARP Poisoning, ovvero come avere il totale controllo della rete .

Copyright evilsocket - evilsocket@gmail.com

ARP Poisoning, ovvero come avere il totale controllo della rete .

Non me ne vogliano i colleghi sistemisti ed amministratori di rete se la mia terminologia sarà inesatta o quantomeno
imprecisa, ma aimè, sono solo un povero programmatore XD.

Un po di storia / Introduzione

Qualche anno fa, nelle reti LAN, divertirsi in maniera non proprio legale era relativamente facile . Bastava infatti un
banalissimo sniffer di rete per intercettare il traffico dell'intera lan e divertirsi in pratica  a farsi i cazzi di tutti i colleghi,
compagni di corso, mogli, mariti o quant'altro .

Questo avveniva *grazie* ad un difetto sia hardware che strutturale dei nodi della rete, che si occupavano di gestire il traffico,
i cosiddetti hub di rete.

Tale difetto consisteva nel fatto che, ogni singolo pacchetto ip veniva inviato in broadcasting su tutta la rete (ovvero un
pacchetto indirizzato a Pippo, raggiungeva sia il suo pc che quello di tutti gli altri utenti) per poi essere scartato dai pc che non
erano i destinatari originari dell'informazione confrontando il mac addressdella propria scheda con quello contenuto nel
pacchetto stesso tramite, se la memoria non mi inganna, l'operazione logica AND .

Chi tra di voi ha dai 20 anni in su si ricorda che bastava mettere un socket nella cosiddetta modalità promiscua per far si che
la propria scheda non eseguisse più questo "scarto" e di conseguenza ricevere il traffico dell'intera rete .

Ve lo dico subito, è inutile che corriate ad aprire wireshark per farvi gli affari altrui, allo stato attuale delle cose NON
funzionerà (doh ! XD) .

Questo succede poichè, dopo anni e anni di sniffing i tecnici del settore si sono accorti che forse era il momento di inventarsi
qualcosa per risolvere questo problema ... e così sono nati gli switch di rete .

Tali dispositivi di instradamento, al contrario dei loro rozzi antenati, determinano quale è il pc destinatario prima di inviare il
pacchetto tramite una tabella (detta CAM table) che associa un indirizzo ip nella rete al rispettivo mac address della scheda
hardware sulla quale gira .La cam table a sua volta si appoggia su un altra tabella dei MACsulla quale verrà effettuata la
ricerca vera e propria dell'associazione ip-mac appena illustratavi .

Il protocollo ARP

Tutto questo meccanismo di ricerca e associazione si basa sull Address Resolution Protocol, solitamente abbreviato con ARP,
che mette a disposizione un metodo per scambiare e ottenere informazioni relative ai computer connessi sulla propria rete .

Scendendo nella pratica, vediamo come il computer di Pippo, sapendo l'indirizzo ip di Giovanni, può risalire al MAC della
scheda di rete di quest'ultimo per poter inviare un pacchetto ip in maniera selettiva .

1. Pippo invia in broadcasting (ovvero a tutta la rete) una richiesta ARP Request contenente l'indirizzo ip di Giovanni .
2. Giovanni, essendo nella rete, riceve come gli altri la richiesta e, riconoscendo il proprio indirizzo ip, risponde con un ARP

page 1 / 4
evilsocket.net | ARP Poisoning, ovvero come avere il totale controllo della rete .
Copyright evilsocket - evilsocket@gmail.com

Reply nel quale inserirà il proprio MAC .


3. Pippo a questo punto riceve il MAC di Giovanni e quindi da adesso in poi sarà in grado di comunicare con lui in
maniera selettiva, senza inviare dati ad eventuali curiosi .

Per ottimizzare il tutto ed evitare di eseguire questo scambio di informazioni per ogni singolo pacchetto (scambio che
saturerebbe la rete o perlomeno la rallenterebbe di parecchio se dovesse essere eseguito ogni volta) ogni computer mantiene
una sorta di cache, ovvero una tabella salvata in locale sul pc nella quale terrà salvati i MAC address che ha rilevato in modo
da poterli consultare in locale senza doverli richiedere ogni volta seguendo i passaggi che ho appena illustrato . In pratica,
ricalcando la procedura di poco fa, avviene la seguente cosa :

1. Pippo invia in broadcasting (ovvero a tutta la rete) una richiesta ARP Request contenente l'indirizzo ip di Giovanni .
2. Giovanni, essendo nella rete, riceve come gli altri la richiesta e, riconoscendo il proprio indirizzo ip, risponde con un ARP
Reply nel quale inserirà il proprio MAC .
3. Pippo a questo punto riceve il MAC di Giovanni e quindi da adesso in poi sarà in grado di comunicare con lui in
maniera selettiva, senza inviare dati ad eventuali curiosi .
4. Pippo salva il MAC di Giovanni nella propria cache locale .
5. Per il prossimo pacchetto, Pippo consulta tale cache che già contiene il MAC di Giovanni e quindi lo invia senza dover
ripetere i primi 4 punti .

L'Attacco !

E dopo tutta sta pappardella teorica (che cmq è necessaria se si vuole capire come funziona il tutto) veniamo al sodo :D .

L'ARP Poisoning è una tecnica di tipo Man In The Middle o MITM (letteralmente "uomo nel mezzo"), ovvero ci metterà
nella condizione di "inserirci" tra Pippo e Giovanni in modo (quasi) invisibile intercettando il loro canale di comunicazione
*teoricamente* selettivo e di conseguenza tutto il traffico che si stanno scambiando .

Analiziamo la procedura pocanzi descritta partendo dal punto 2 sotto un altra ottica e vediamo se vi viene in mente qualcosa
:P

1. Un computer in una rete invia un pacchetto ARP Reply ad un altro computer inserendoci un determinato MAC associato
ad un determinato indirizzo ip .
2. Il computer che riceverà tale pacchetto, aggiornerà la sua cache locale associando quel MAC a quel determinato ip .
3. Da quel momento in poi, per comunicare con quel ip, il pc ricevente invierà dati a quel MAC .

Non vi viene in mente niente ? No ?!?!? PIPPE !!! LOL scherzo dai XD

Questo significa che, inviando un pacchetto ARP Reply appositamente creato (in gergo detto "spoofato") una persona
all'interno della rete può manipolare le cache di tutti i computer connessi, manipolando di conseguenza tutto il flusso del
traffico a suo piacimento .

Ora, volendo si potrebbero inserire dei MAC fasulli generati randomicamente ed associarli a tutti gli ip della rete, in tal caso
non si otterrebbe molto, al massimo si incasina la rete rendendo in pratica impossibile ogni tipo di comunicazione tra i
computer connessi ... divertente, ma inutile e lameresco !

Invece, manipolando con accuratezza tali cache, si può far in modo che avvenga la seguente cosa :

1. Dopo il nostro attacco, Pippo invierà a noi i dati credendo di comunicare con Giovanni .
2. Noi, dopo averli visionati, sniffati, etc, li manderemo a Giovanni di rimbalzo .
3. A Giovanni arriveranno i dati originariamente inviati da Pippo, e a lui risulterà che proprio da lui arrivano .

page 2 / 4
evilsocket.net | ARP Poisoning, ovvero come avere il totale controllo della rete .
Copyright evilsocket - evilsocket@gmail.com

4. Giovanni, per rispondere, invierà a noi i dati credendo di comunicare con Pippo .
5. Noi snifferemo nuovamente i dati, li reinvieremo a Pippo, e così via fino a quando non ci stufiamo di farci i cazzi degli
altri XD .

Questo genere di manipolazione, che si chiama appunto ARP Poisoning, fotte in pratica tutta la logica alla base delle tabelle
ARP e CAM e dell'indirizzamento selettivo dei pacchetti nata proprio per ovviare al problema dello sniffing .

In pratica, a Pippo invieremo un ARP Reply con l'ip di Giovanni ma il NOSTRO MAC address, mentre a Giovanni invieremo
un ARP Reply con l'indirizzo ip di Pippo e il NOSTRO MAC address, in questo modo, proprio come vi ho illustrato nei 5 punti
di poco fa, i due crederanno di comunicare direttamente e selettivamente tra di loro, mentre in realtà manderanno tutto a me
e io mi occuperò di effettuare il corretto redirezionamento dei dati una volta sniffati .

Gli Strumenti

Come per ogni cosa anche per effettuare questo tipo di attacco ci sono una miriade di tools disponibili online, ma di certo il
migliore sia per quanto riguarda la facilità di utilizzo, sia per la completezza dei suoi filtri etc è Ettercapche può essere
utilizzato sia da console, sia tramite una comoda ed intuitiva interfaccia grafica.

Per quanto riguarda l'utilizzo da console, la riga di comando è abbastanza corta e semplice :

ettercap -T -q -M ARP // //

Comando il quale eseguirà l'attacco su tutta la rete, ovvero voi riceverete il traffico di ogni singolo computer presente sulla
vostra LAN, cosa che sconsiglio se vi trovato in una rete aziendale o universitaria, poichè la mole di dati che riceverete sarà
talmente elevata da rendere difficile determinare quali sono i dati che vi interessano (password, cookies, account vari) e quelli
che non vi interessano.

Quindi vi consiglio di utilizzare, se vi trovate in una rete potenzialmente molto trafficata, il comando selettivo :

ettercap -T -q -M ARP /computer_1/ /computer_2/

Che manipolerà le tabelle ARP in cache solo tra due singoli computer, ovviamente al posto di computer_1 e computer_2
dovrete mettere il nome o gli indirizzi ip dei pc che vi interessano (ad esempio il pc del prof di analisi e quello della segreteria
? :D) .

Conclusioni

Nonostante esistano dei rimedi per questo genere di attacco, per quanto concerne la mia esperienza personale non sono mai
implementati, anche in posti che teoricamente dovrebbero essere il top della sicurezza (un esempio è la mia facoltà di
ingegneria informatica, se non c'è sicurezza la figuriamoci altrove XD), di conseguenza questo genere di attacco MITM risulta
essere uno dei più efficaci e veloci da eseguire se si sa dove mettere le mani, nonchè uno dei più divertenti se si usa il tool
giusto, ad esempio una funzionalità molto carina di ettercap è la possibilità di modificare, prima di spedirlo al destinatario
originale, un pacchetto .

Non sapete quante volte mi sono intrufolato in conversazioni MSN facendo litigare le due persone perchè inserivo qua e la
qualche insulto facendo pensare che se li inviavano a vicenda !!! XD

page 3 / 4
evilsocket.net | ARP Poisoning, ovvero come avere il totale controllo della rete .
Copyright evilsocket - evilsocket@gmail.com

In fine, ringrazio i miei amici Pippo e Giovanni, che ogni volta si prestano ai miei esempi e che spero, un giorno o l'altro, di
incontrare per ringraziarli ! MUAUAUUAUA XD

by evilsocket

page 4 / 4