Manuali, links, fotografie e tanto altro
alla portata di un semplice click!
 
 Benvenuto Ospite
Manuali, immagini, fotografie e tanto altro a portata di un click

Cartoline virtuali

Cartolina n° 197



Sono presenti 1307 cartoline virtuali. Entra ora


Giochi online
Golf Hole In One


1. ermesiti: 7
2. Mike86: 8
2. barone400: 8

Visualizza tutti i giochi.

News Reader















Arp Spoofing, PrOpHeCy
.: Data Pubblicazione 28-Feb-2006 :: Letture:: 876 :: Recensione :: Stampa solo questa pagina :: Stampa pagina con tutte le sottopagine:.

#########################################
Questo documento ha ESCLUSIVAMENTE SCOPO DIDATTICO e non si assumono responsabilità di come e dove i concetti e le informazioni espresse e divulgate in questo documento possono essere utilizzate.
Questo documento espone ESCLUSIVAMENTE i concetti base di funzionamento dei protocolli standard di comunicazione inter-rete. Ogni utilizzo è lasciato all'utente che legge ed interpreta ed usa i concetti qui espressi e l'autore del documento non si assume responsabilità di nessun tipo a riguardo l'uso improprio di queste informazioni
#########################################

S C O P O del Documento
Lo scopo di questo documento è di introdurre al lettore il concetto di ARP SPOOFING. ARP SPOOFING è un metodo per sfruttare le
interazioni tra IP e i protocolli Ethernet. L'ARP SPOOFING è applicabile solo in una network Ethernet.

I N T R O D U Z I O N E
Un computer collegato a un network basato su IP/Ethernet ha due indirizzi: uno è l'indirizzo fisico della scheda di rete ed è chiamato MAC address, mentre il secondo è l'indirizzo IP.

- L'indirizzo fisico o MAC Address è , in teoria, un indirizzo unico e non sostituibile, che è immagazzinato all'interno della scheda di rete. Ogni produttore ha un "range" di indirizzi fisici che può assegnare alle proprie schede e che identificano univocamente solo e solo quella scheda di rete a cui l'indirizzo specifico è stato assegnato. In teoria con particolari software è possibile intervenite all'interno della ROM della scheda di rete e modificare il MAC address. Il rischio, peraltro molto remoto, è che se dovreste incontrare nella vostra lan un'altra scheda di rete con lo stesso MAC address ci sarebbe con conflitto di instradamento ed entrambe le due schedi di rete non riuscirebbero a ricevere pacchetti.
Il MAC address è necessario per permettere di spedire e ricevere data in una rete Ethernet, indipendentemente dal tipo di protocollo che viene utilizzato sulla rete. Il protocollo Ethenet infatti costruisce un " frame " di dati di blocchi con 1500 byte di dimensione ed ogni frame ha all'interno dell'header del pacchetto ethernet il MAC Address della macchina (o meglio delle scheda di rete) sorgente del pacchetto e della macchina di destinazione.

- L'indirizzo IP deriva dall'applicazione al protocollo Ethernet, del protocollo IP ( Internet Protocol ) utilizzato dalle applicazioni, ed è
indipendente da qualunque tecnologia di networking funzioni sotto di esso. L'indirizzo IP è virtuale, rappresenta un'astrazione per permettere di costruire applicazioni senza obbligare a conoscere quale tecnologia di network viene utilizzata, e viene assegnato via software. Su un segmento di rete è necessario che ogni macchina abbia un indirizzo univoco, ed assegnato solo a quella macchina. Nel caso in cui due macchine abbiano lo stesso indirizzo IP entrambe le macchine non riusciranno più a comunicare con il resto della rete. IP e Ethernet lavorano ( e devono lavorare) insieme dato che il protocollo IP comunica attraverso la costruzione di pacchetti che sono simili ai frame ethernet,ma che hanno diversa struttura e questi pacchetti non possono essere consegnati senza la presenza del layer di rete. Infatti nel nostro caso i pacchetti IP sono consegnati attraverso Ethernet, il quale divide i pacchetti nei frames, aggiunge l'header ethernet per la consegna e spedisce i pacchetti attraverso il cavo di rete fino allo switch. Lo switch decide a quale delle sue porte deve spedire il frame, comparando l'indirizzo di destinazione del frame con gli indirizzi memorizzati nella sua tabella interna, nel quale "mappa" la porta ethernet al MAC Address della scheda a cui è collegato. Quando un frame etherner viene costruito, deve essere costruito partendo da un pacchetto IP.
Ovviamente, in quel momento durante la costruzione del frame, il protocollo ethernet non ha idea di quale sia il MAC address di destinazione della macchina a cui il frame deve essere spedito, e questo dato è necessario per costruire l'header ethenet che come detto prima contiene il MAC address di destinazione e sorgente del frame. L'unica informazione che è disponibile è l'IP di destinazione, che come detto sopra è virtuale e non è univoco (possono esistere X computer nel mondo con l'indirizzo 192.168.1.1, ma "dovrebbe" esistere solo e solo una scheda di rete con un indirizzo fisico.) ed è quindi necessario trovare un modo per cui partendo da questo dato, il protocollo ethernet posso arrivare a trovare il corretto MAC address della macchina di destinazione. Quindi dato l'indirizzo IP (virtuale, astratto) trovare un modo per risalire all'indirizzo fisico (reale, univoco) di computer all'interno di una inter-rete complessa.
Questo meccanismo di chiama ARP, ovvero Address Resolution Protocol, e che è quello che adesso vediamo.


Q U E L L O CHE S U C C E D E
Il protoccolo ARP o semplicemente ARP, lavorora inviando verso l'esterno con un broadcast un pacchetto " ARP request ". Un pacchetto ARP request in poche parole, invia a tutti i computer della rete una domanda: " Il tuo indirizzo IP è x.x.x.x? se si inviami indietro il tuo indirizzo MAC ". Come detto questo pacchetto viene spedito in broadcast a tutti i computer sulla rete che sia una LAN (Local Area Network) che uno "switched lan" ( rete complessa ) e ciascun computer esamina il pacchetto, verifica se ha assegnato in quel momento l'indirizzo ip richiesto nel pacchetto ARP, e se questa condizione è verificata, invia indietro alla macchina richiedente un pacchetto " ARP reply" contenente il proprio MAC address. A questo punto la macchina che deve inviare il frame ethernet riceve il pacchetto ARP reply, estrae l'indirizzo MAC (quindi fisico, non astratto come l'indirizzo IP) e completa l'header del frame e lo invia alla macchina destinataria attraverso la rete.
Per ridurre al minimo il numero delle richieste ARP che vengono inviate su un segmento di rete, i sistemi operativi (e con essi router e switch) immagazzinano una cache delle entry ARP che ha finora ricevuto.
Quando un computer riceve un ARP reply, questo aggiorna la propria tabella con la nuova associazione IP address / MAC address e
siccome l'ARP è protocollo SENZA SESSIONE ed è un protocollo INAFFIDABILE (nel senso che il protocollo ARP non apre la sessione,
invia i dati, e chiude la sessione MA invia solo la parte dadi ed inoltre INAFFIDABILE perchè se il pacchetto ARP non giunge a destinazione non viene reinviato ad oltranza) molti sistemi operativi e dispositivi che necessitano di fare cache delle entry ARP (router appunto) aggiornano la propria tabella solo nel caso in cui alla macchina giunge una risposta alla sua request (ovvero quando ad un ARP Request, riceve la relativa ARP Reply)
Date queste premesse iniziamo a spiegare cos'è l'ARP SPOOFING ovvero l'invio "forzato" di pacchetti ARP reply, in cui il computer che
riceve questo pacchetto ARP reply viene messo in condizione tale per cui crede di spedire i frame ethernet al computer A (ovvero quello legittimo destinatario della connessione) ma che invece fisicamente lo spedisce al computer B il quale ha "spooffato" la entry ARP. Questo processo di "forzare l'update di una macchina bersaglio" con delle entry ARP è chiamato "ARP Poisoning", letteralmente
AVVELENAMENTO ARP


#SNIFFING#

Gli Switches individuano quali frame devono essere inviati a una determinata porta eseguendo la comparazione
dell'indirizzo MAC di destinazione con la propria tabella MAC memorizzata. Questa tabella viene "costruita" all'accensione
dello switch, e aggiornata esaminando il MAC address sorgente prelevandolo dal primo frame ethernet trasmesso su ogni
porta. Normalmente (oramai quasi tutte le schede di rete possono farlo) le interfacce di rete possono assumere lo stato
definito " promiscuos mode ", dove la scheda è autorizzata a esaminare i frames destinati a MAC address di cui non sono
proprietari (è proprio sfruttando questa modalità che vengono implementati sui vari OS gli sniffer), ma questo non avviene
per quello che riguarda gli switch, in quanto DEVONO ruotare i frame in base alla tabella IP/MAC di cui abbiamo parlato
poco prima. Questo serve a prevenire lo sniffing dei frame destinate macchine. Ma per quanto questo sistema sia stato
implementato utilizzando l'ARP poisoning , esistono alcuni modi, per cui è possibile effettuare lo sniffing su una rete
switched.
Una di queste è il " man-in-the-middle ", letteralmente "uomo-nel-mezzo" (cmq useremo l'abbreviativo di MitM) e consiste
in un utente che inserisce la propria macchina nel "percorso" delle comunicazioni tra i due computer che intende prendere
di mira.
A questo punto il computer nel mezzo invierà i frames tra i due computer senza interromperne la comunicazione, e la
descrizione di come avviene il processo è quella che segue:

Se ipotizziamo che X è la macchina "attaccante", ovvero quella poi intercetterà le comunicazione tra le due macchine
legittime, e che C1 e C2 sono le due macchine prese come bersaglio avremo che:

- X eseguirà un ARP Poisoning delle ARP cache di C1 e C2
- C1 assocerà l'indirizzo IP di C2 (ricordiamo che l'indirizzo IP è virtuale o meglio "astratto") con l'indirizzo FISICO (reale)
del MAC address di X
- C2 assocerà l'indirizzo IP di C1 con il MAC address di X

A questo punto tutto il traffico che verrà generato da C1 e C2 verso l'altro, prima passerà attraverso X, prima appunto di
venir mandato alla corretta destinazione. Questo è un metodo veramente efficace se, come detto prima, non solo i singoli
HOST (computer) possono essere "avvelenati", ma con essi anche router/gateway switch ecc ecc ecc. In questo modo tutto
il traffico internet ( o inter-rete se preferite ^_^ ) può essere intercettato con questo metodo semplicemente eseguendo
un attacco MitM sul computer che intendiamo "sniffare" e il router della LAN

Un altro metodo di sniffing altrettanto efficace sugli apparati switch della rete è il cosiddetto "ARP flooding", che consiste
nel "flooddare" (letteralmente nell'inondare) lo switch con una successione rapida e massiccia di pacchetti ARP reply,
fino a mandare in overflow la tabella con le associazione port/MAC di quella determinata porta. Una volta eseguito un
attacco di questo tipo, il risultato è semplice e dimostrato qui sotto:

se X è il nostro consueto computer da cui lanciamo l'attacco, C1 il computer preso come bersaglio e SW1 lo switch a cui
siamo collegati sia X che C1, quello che avviene è semplice.

- X esegue l'ARP flooding di pacchetti ARP reply verso SW1, in cui l'IP di C1 viene associato al MAC address di X
- SW1 quando riceve un frame destinato all'IP di C1, fa quello per cui è stato programmato per fare: verifica nella sua
tabella se il MAC di destinazione è presente, e quando lo trova lo gira verso la porta associata a quel MAC. MA invece di
girare i pacchetti verso la porta 1 a cui è fisicamente agganciato C1 lo gira verso la porta 2 dove invece è collegato X,
questo perchè nella sua tabella la entry IP di C1 è associata al MAC address di X e quindi associata alla porta 2 in cui X è
collegato
- C1 non riceverà più nessun pacchetto, neppure le risposte a pacchetti ICMP finché la cache dello switch non verrà
aggiornata oppure finché lo switch non verrà spento e riacceso.

Finora abbiamo visto come usando L'ARP poisoning sia possibile eseguire dello sniffing. Ora vedremo come è possibile fare
un Denial of Service (DoS) ed un'altra serie di attacchi che possono essere eseguiti sfruttando la stessa peculiarità del
protocollo ARP.

#DoS#

Eseguendo l'aggiornamento della cache ARP dei dispositivi con una entry ARP di un MAC Address non esistente, si causerà l'eliminazione dei frame ethernet e questo può essere fatto in maniera radicale su tutti gli host su di una rete, causando appunto l'interruzione delle comunicazioni. Un DoS appunto.
Questo normalmente è uno degli effetti postumi di un attacco Man-in-the-Middle, dove un computer preso a bersaglio continuerà ad inviare i frame all'indirizzo MAC del computer attaccante anche dopo che questi ha rimosso se stesso dal percorso di comunicazione. Per eseguire un attacco MitM, in modo "pulito" sarebbe necessario (e consigliato" avere le ARP entry originali dei dispositivi presi in causa in modo che terminato lo sniffing si posso ristabilire le corrette entry.

#HIJACKING#

Una " Connection hijacking " permette ad un attaccante di prendere il controllo della connessione tra due
computer,usando un metodo molto simile a quello che viene utilizzato per eseguire un attacco MitM. Questo trasferimento
di controllo può avvenire in ogni tipo di connessione, ad esempio, un attaccante potrebbe prendere il controllo di una
sessione telnet dopo che il computer preso a bersaglio ha accettato la login da parte di un amministratore.

#CLONING#

Come detto precedentemente il MAC addresses è stato definito per essere un identificativo globalmente UNICO e che
identifica solo e solo quella interfaccia di rete prodotta da quella specifica casa produttrice e che questo indirizzo MAC è
"stampato" all'interno della ROM dell'interfaccia di rete. Ma è anche vero che oggi il MAC Address di una scheda di rete
può essere facilmente cambiato. GLi utenti di sistemi Linux possono facilmente sostituire e cambiare il proprio MAC
address senza dover ricorrere a software di spoofing, e semplicemente utilizzando il comando "ipconfig" (per chi non fosse
pratico, il comando che permette di gestire la configurazione dell'interfaccia di rete nel sistema operativo). In questo
modo un attaccante può facilmente eseguire un DoS verso un computer bersaglio, assegnando a se stesso l'IP e il MAC
address del computer che si intende colpire, ricevendo al posto tutto tutti i frame che sarebbero dovuti essere consegnati
a lui.

T O O L S per fare ARP Poisoning


*PARASITE*
HTTP://WWW.THEHACKERSCHOICE.COM/RELEASES.PHP

Parasite è un demone che rimane in attesa ed "ascolta" sulla lan in attesa di intercettare le richieste ARP, e automaticamente
invia le conseguenti ARP Replay spooffate. In questo modo Parasite fa automaticamente eseguire al computer dell'attaccante un MitM
verso tutti i sistemi che propagano le loro Arp request. Per precisione occorre anche dire che nello stesso modo in cui
compie un attacco "automatico" Parasite non esegue una "pulitura" chiara quando viene fermato il demone, portando ad eseguire
un DoS verso tutti quei sistemi che aveva precedentemente spooffato, seguendo proprio la tecnica di DoS descritta poche righe
sopra. Per ripristinare il corretto funzionamento delle operazioni di rete delle macchine colpite bisogna o aspettare il
normale scadenza della cache arp dei sistemi colpiti e/o degli switch oppure riavviarli drasticamente.


*ETTERCAP*
HTTP://ETTERCAP.SOURCEFORGE.NET

Ettercap è un potentissimo software creato per unix e linux, di cui oggi esiste anche un porting sotto Win32 (necessita le
librerie Ethercap facilmente scaricabili dal web) che dispone di una GUI (Graphic User Interface) testuale ed abbastanza
semplice da poter essere usato da chi ha un minimo di conoscenza o anche dai cosiddetti "script kiddies". Con Ettercap
tutte le operazioni sono automatiche, e il computer da prendere a bersaglio può essere scelto da una lista degli hosts
individuati sulla rete. Ettercap può eseguire 4 metodi di sniffing: IP, MAC, ARP e Public ARP e può automatizzare anche le
seguenti procedure:

- L'inserimento (Injecting) di caratteri nelle connessioni
- Sniffing di sessioni criptate SSH
- Immagazzinare la password inviate sulla rete
- Eseguire il Fingerprinting dei OS
- e la cosiddetta " connection killing " ovvero il blocco completo delle connessione verso un dato host
Inoltre sono disponibili numerosi PLUG-IN che permettono di eseguire anche altre serie di operazioni e ve ne sono altri in
sviluppo.

*ARPOISON*
HTTP://WEB.SYR.EDU/~SABUER/ARPOISON/

è un Tool a linea di comando (cml) sviluppato per UNIX, che può creare pacchetti ARP spooffati. COn questo tool l'utente
può specificare l'IP e il MAC address della sorgente e della destinazione.


LA D I F E S A

La miglio difesa contro l'ARP spoofing è di abilitare il vincolo dei MAC address, sugli switch.
Questa operazione è disponibile sugli switch di alta qualità che non permettono che un MAC address associato a una
porta possa essere cambiato una volta che è stato definito in operazione di setup (ovviamente via CML (command line)
o una eventuale GUI dello switch possono reimpostare questi parametri), ma questo obbliga ad eseguire l'operazione
di "legittimazione" dei MAC address sullo switch manualmente dall'admin della rete dopo averli pianificati a tavolino.
Certo una cosa poco gratificante e laboriosa da fare, che molti, per questo trascurano di fare.
Un'altra difesa è utilizzare delle rotte statiche. La cache ARP dei sistemi può avere delle entry statiche nelle proprie
tabelle (quindi non modificabili) per cui ogni ARP replies spooffata viene ignorata. Questo tipo di approccio non è
sempre praticabile in ogni tipo di ambiente, ma solo per piccolo ambienti con pochi host oppure lan domestiche, e dove
naturalmente l'ARP spoofing ha poca rilevanza come problema. Ma c'è da fare anche una nota molto interessante che riguarda
l'implementazione di rotte statiche su sistemi Windows. Le prove fatte hanno messo in evidenza che i sistemi Windows
continuano ad accettare le ARP replies spooffate che continua ad utilizzare rotte dinamiche invece delle rotte statiche inserite
annullando completamente l'effetto dell'uso di quest'ultime come difesa contro questo dipo d'attacco.
Un altro sistema di difesa molto efficace e pro-attivo contro ARP poisoning e ARP spoofing è ultilizzare ARPWATCH.
ARPWatch è un tools software completamente free scritto per UNIX che elenca le ARP replies sul network, le immagazzina in
una tabella associando IP/MAC esattamente come farebbe una cache ARP e salva la tabella in un file. Ogni volta che un MAC
address associato con uno specifico IP cambia, il software invia un'email all'amministratore della rete. Ovviamente il network
deve prevedere o l'indirizzamento IP delle macchine fisso, oppure nel caso della presenza di un server DHCP, l'assegnazione
dell'indirizzo IP in base alla tabella di MAC address e all'assegnazione dell'ip solo a quello specifico MAC anche se in un
ambiente DHCP identificare l'effetto "flip-flops" è molto difficile da rilevare.

Successivi test hanno portato alla luce che Parasite causa un vero e proprio flood di flip-flops all'interno della lan,
lasciando il MAC address della macchina attaccante nel registro di Arpwatch e nella mail di segnalazione dell'attacco.
Anche Ettercap causa numerosi flip-flop, ma quest'ultimi, soprattutto in una rete DHCP sono molto difficili da individuare
proprio perché una in rete DHCP questo tipo di effetto avviene a intervalli regolari. Quindi è consigliabile in una rete
in cui è auspicabile pensare a una prevenzione contro ARP spoofing pianificare l'assegnazione degli indirizzi IP in maniera
statica e lasciare che il server DHCP rilasci solo una piccola porzione di IP liberi, giusto quelli necessario a fornire un
servizio di connessione ad eventuali ospiti.
Questo possono essere quindi dei validi sistemi per identificare e risolvere i problemi di MitM o ARP spoofing.
Contro il cloning del MAC address, è molto facile indentificare il problema utilizzando il RARP (Reverse ARP), ovvero è il protocollo
che compie l'esatto inverso del protocollo ARP, quindi dato un conosciuto MAC address viene generata una richiesta per conoscere
l'IP ad esso associato. In presenza di risposte multiple a questa richiesta, ci si trova in presenza di un MAC clonato. Per
identificare poi la presenza di una o più macchine che lavorano con la scheda di rete in "promiscuous mode" esistono numerose
tecniche e tools dedicati sia per ambienti Win32 che per ambienti Linux/UNIX. Proprio per questo motivo, per la diversità dei sistemi
operativi diffusi, è importante ricordarsi che ogni sistema operativo ha un proprio stack TPC/IP e che ogni release dello stesso
SO può apportare modifiche radicali allo stack e conseguentemente anche comportamenti differenti sia alle richieste ARP sia ai tutti
gli altri protocolli, e che allo stesso modo schede di rete diverse hanno driver diversi e quindi diversi modi di interagire
a livello fisico con i protocolli. Di queste variabili è sempre buona cosa tenere in considerazione con le opportune riflessioni.
Un esempio potrebbe essere Solaris, il quale ha implementato nel proprio stack tpc/ip una gestione delle request e replies arp
completamente diversa da qualsiasi altro produttore e finora unica nel suo genere. (in pratica Solaris accetta l'update delle ARP
solo quando queste scadono, scartando qualsiasi altro replies gli arriva prima di questa scadenza, ed obbligando l'attaccante prima
a dover spooffare una seconda macchina con cui la wks Solaris è in connessione prima di effettuare il tentativo verso quest'ultima.
In questo caso un buon sistema di intrusion detection può individuare facilmente quello che sta succedendo avvisando l'amministratore della rete)


C O N C L U S I O N I

L'ARP spoofing in conclusione è una delle numerose vulnerabilità che esistono negli attuali protocolli di networking. Questo permette
ai persone con le dovute conoscenze di poter prendere il controllo e controllare macchine su una rete. Questa situazione ha difficili
possibilità di correzione, in quanto il protocollo IP e il funzionamento delle comunicazioni informatiche come noi le conosciamo
oggi si basa proprio su questi meccanismi che peccano di queste debolezze intrinseche, generate insieme al prodotto stesso e che a meno di una riconversione totale, poco attuabile nell'immediato, rappresentano problemi che bisogna tenere in considerazione. ARP poioning, frammentazione dei pacchetti TPC e ICMP redirection sono esempi di questi problemi e vulnerabilità legate al modo di funzionare stesso del protocollo.

I test qui citati sono stati testati utilizzando i tools citati in ambienti sia linux che windows (NT, 2000, w9x, XP) e questi tools non
sono gli unici che possono essere utilizzati, e reperiti nel Wire, ma sicuramente sono tra i più diffusi e documentati. Parte di questo
documento è stato in base redatto dalla documentazione reperibile sul web sugli stessi prodotti e in parte anche da altre paper
inerenti problemi di security dei protocolli ARP e ICMP, e da altri forum sparsi per il wire.

PrOpHeCy.


#########################################
Questo documento ha ESCLUSIVAMENTE SCOPO DIDATTICO e non si assumono responsabilità di come e dove i  concetti e le informazioni espresse e divulgate in questo documento possono essere utilizzate.
Questo documento espone ESCLUSIVAMENTE i concetti base di funzionamento dei protocolli standard di comunicazione inter-rete. Ogni utilizzo è lasciato all'utente che legge ed interpreta ed usa i concetti qui espressi e l'autore del documento non si assume responsabilità di nessun tipo a riguardo l'uso improprio di queste informazioni
#########################################

.: Ritorna ad argomento Hackers :: Ritorna a Indice Argomenti :.
Network: Cartoline virtuali - Calendari - Modelle - Playmates - Sfondi - Forum - Old SecurityNews - Warez