[real] Re: [security] arpspoof su switch

Marco Scandaletti m.scandaletti a iak.pd.it
Mer 26 Nov 2003 17:29:43 CET


Vediamo un pò di capire cos'è ARP

 sto scrivendo a ruota libera, prendetelo come un libero pensiero.
 se avete cose da aggiungere o coreggere ben venga!!!

ARP è l'acronimo di "address resolution protocol", per
approfondimenti sul suo funzionamento date un'occhiata
all'RFC 826 ( http://www.faqs.org/rfcs/rfc826.html )
Ma a cosa serve sta roba? vediamo di capirci
un qualsiasi dispositivo di rete ethernet ha un identificativo unico
chiamato MAC ( Medium  Access Control ).
Questo benedetto MAC è un indirizzo formato da 6 byte :
i 3 più significativi identificano il costruttore, gli altri 3 sono
un progressivo che identifica la scheda ( qui non sono sicuro al 100% ).
In poche parole è un identificativo unico che serve ad evitare ambiguità
in una rete ethernet. qui trovate una FAQ su ethernet se vi interessa
( http://www.ethermanage.com/ethernet/enet-faqs/ethernet-faq.html )
Quindi su di un segmento di rete fisica ethernet i vari dispositivi
dialogano
fra loro utilizzando i loro MAC address.
Ma allora a che cosa server il mio indirizzo IP se ne ho già uno pronto
che è il MAC??? bella domanda!!!
Internet da la possibilità ad un qualsiasi sistema con uno stack TCP/IP
di dialogare con tutti gli altri stack TCP/IP!
cosa vuol dire questo? semplice : qualsiasi dispositivo di rete ( ATM,
Ethernet,
token ring, SDLC, TWINAX etc.etc.) con un buona implementazione del TCP/IP
in grado di inviare e ricevere un pacchetto TCP/IP è sulla rete!!!!!
Quindi si pone il problema di far dialogare diverse tipologie di rete, ecco
il perchè
degli indirizzi IP. A livello fisico ci saranno dei dispositivi ( BRIDGE ),
che avranno
più interfacce di rete diverse, che si preoccuperanno di convertire le varie
frame da una tipologia ad una altra. attenzione, ho detto frame e non
pacchetto TCP/IP.
A voi capire la differenza :)
Ci sono poi dei bridge particolari chiamati ROUTER ...... non aggiungo altro
;-)
I router sono i cosidetti "instradatori" che smistano in modo intelligente i
paccheti
della suite TCP/IP ( anche l'ICMP, ed altri credo).
Ma torniamo ad ARP! esattamente bisognerebbe dire Ethernet Address
Resolution Protocol,
vedo che qualcuno comincia a capire!!!
ARP si preoccupa della corrispondenza tra indirizzi MAC e indirizzi IP.
Svelato l'arcano :)
Facciamo un esperimento, io sto utilizzando un sistema M$ ma non ci
dovrebbero
essere differenze su altri sistemi.
lanciamo il comando ARP -a ( da un prompt naturalmente )
la mia macchina ha risposto così :
Internet Address      Physical Address      Type
xxx.aaa.bbb.102           00-10-4b-c3-4b-b3     dynamic
xxx.aaa.bbb.105           00-50-da-49-c1-f4     dynamic
xxx.aaa.bbb.199           00-c0-df-e3-12-79     dynamic
xxx.aaa.bbb.201           00-10-7b-dd-d5-d0     dynamic
( spero non serva dire perchè ci sono quegli "x" "a" e "b" :)))

questa è la tabella delle corrispondenze sulla mia macchina
adesso usiamo il comando ARP -d e cancelliamo il contenuto della tabella
verifichiamo con il comando ARP -a che la tabella è stata pulita
adesso facciamo un bel ping verso un host della nostra rete
ping crazyhost
aspettiamo una risposta e poi lo interrompiamo
andiamo a vedere cosa c'è nella tabella?
ARP -a

Internet Address      Physical Address      Type
xxx.aaa.bbb.105           00-50-da-49-c1-f4     dynamic
xxx.aaa.bbb.199           00-c0-df-e3-12-79     dynamic

il 105 è crazyhost!!!!
quando devo contattare uno stack TCP/IP su di una rete Ethernet
ho bisogno di sapere qual'è il suo reale indirizzo fisico ( MAC  address )
e quindi, attraverso ARP, chiedo sulla rete a chi corrisponde l'ip che mi
interessa!!!
La macchina con l'ip giusto mi risponderà con il suo MAC address!!!
Domanda!!!!!
ma chi è sto fetuso di 199 ??? cosa vuole da me e il 105??
se avete osservato bene ho eseguito il comando ping crazyhost.
crazyhost è il mnemonico per l'indirizzo 105 sulla mia rete
e chi è che conosce tutti i mnemonici di tutti gli IP?
il DNS server naturalmente!
quindi il comando ping ha fatto una richiesta al DNS per avere
l'indirizzo IP di crazyhost, e come l'ha contattato?
ha fatto una richiesta ARP per conoscere il suo MAC address!!!
ha ottenuto l'indirizo IP di crazyhost ed il resto è storia.
Questa tabella delle corrispondenze gestita da ARP è dinamica
ed è tipo una cache!

Adesso che abbiamo fatto un pò di chiarezza su ARP la domanda
che sorge spontanea è : e allora? cosa me ne faccio adesso?

Su di una rete con HUB, quindi senza la presenza di switch, ogni
pacchetto è ricevuto dall'HUB ed inoltrato a tutti indistintamente.
Si capisce che il traffico generato non è da poco!
Ma a noi non interessa il carico di traffico adesso!!
Pensate a 2 persone affacciate a 2 finestre che danno sullo stesso
cortile che parlano tra di loro : chiunque è nelle vicinanze sente
quello che si stanno dicendo le 2 persone.
Pensate ad un vostro collega che manda un messaggio privato
ad un altro vostro collega, se sappiamo "ascoltare" bene dall'HUB
possiamo sapere cosa si stanno dicendo!!!
Questo si dice "sniffing"!
come funziona? nella normalità una scheda di rete si fa gli affari suoi,
ovvero "ascolta" solo i pacchetti che sono destinati a lei e lascia stare
quelli per le altre schede. Ma sappiamo che la curiosità è insità dentro
di lei ed è per questo che chi la progettata la dotata della possibilità
di farsi "gli affari degli altri". questo particolare modo è detto
"Promiscue mode". Di solito un software di sniffing è in grado
di attivare questa modalità in automatico.
Quindi se mi metto in ascolto su una qualsiasi porta dell'HUB
con uno sniffer vedo tutto quello che passa per la rete!!
Proprio tutto!!! naturalmente bisogna essere in grado di
interpretare questa mole di dati!
Ma poi Dio inventò gli switch e tutti i responsabili della sicurezza
si sentirono al sicuro .... ma fu peggior tale sicurezza!!!!
Come si sa uno switch è intelligente e, al contrario dell'hub, manda
i pacchetti solo al destinatario e non ha tutti indistintamente!
Man mano che gli arrivano i pacchetti dalle varie porte si tiene
nota della corrispondenza di MAC e porta fisica.
In questo modo sa a che porta mandare un pacchetto quando
gli arriva una richiesta per un particolare MAC.
E se proprio "nun ia fa'" a capire dove sta il MAC del pacchetto
lo manda a tutte le porte!! ma questa è un eccezione e non la regola!!
E bravo lo switch!! efficente e riservato! se fa in modo che le
"conversazioni"
avvengano solo tra gli interessati come origlio io?!?!



Maggiori informazioni sulla lista security