Sei sulla pagina 1di 24

Anallizare il traffico di rete con Wireshark www.backtrack.

it

«Back|Track-[IT]
www.backtrack.it

(c) 2009 Lynx51 – brigante - crossbower

lynx51@hotmail.it
brigante@backtrack.it
crossbower@backtrack.it

Wireshark

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Questo documento descrive in linea teorica e pratica l' uso di quello che oggi è l'
analizzatore di traffico di rete più potente sul mercato: Wireshark.
Il documento è il frutto della collaborazione degli autori citati in copertina, contiene un'
introduzione generale a Wireshark, le sue caratteristiche principali con le opzioni e
configurazioni che più caratterizzano e rendono unico Wireshark e dei cenni al modello
OSI/ISO. Nella seconda parte invece verranno descritti degli esempi pratici, dapprima con la
descrizione di un Arp-Spoof “manuale” con cenni al protocollo ARP, l' uso del filtro in Wireshark
per tale protocollo e si assumerà e descriverà la visione di un video creato proprio per questo
scopo, inoltre verranno spiegati esempi di utilizzo di Wireshark su protocolli wireless e
bluetooth, cercando di coprire quindi alcune delle tante potenzialità che Wireshark mette a
disposizione al mondo del penetration-testing.

Introduzione

BackTrack e` il TOP tra le distribuzioni GNU/Linux live/installanti orientata alla sicurezza


informatica intesa come assessment e penetration testing e come tale non poteva non
includere il più famoso e potente analizzatore di rete: Wireshark.

Wireshark è un analizzatore di protocollo e/o packet-sniffer che ci offre la possibilità di


monitorare e analizzare il flusso di dati che circola in rete, nonché l'analisi dei vari protocolli,
cosa quindi molto importante se non fondamentale.

Perchè è così importante? La risposta è molto semplice: imparare ad usare uno sniffer è
sicuramente una delle più importanti nozioni che un esperto di sicurezza deve avere.

Wireshark presenta svariati punti di forza:

• è open source.
• ha un'interfaccia grafica molto intuitiva.
• offre molti filtri precostituiti e funzioni utili.
• multi-piattaforma.
• Lavora su varie interfacce selezionabili secondo la piattaforma in uso con opzione per la
cattura del traffico su tutte le interfacce disponibili contemporaneamente.
• dà all' utente la possibilità di creare filtri personalizzati.

Attraverso la sua interfaccia grafica Wireshark ci permette di monitorare il traffico di rete in


maniera chiara, ordinata e comprensibile. Esso infatti, cattura i pacchetti, eventualmente
filtrandoli, e li restituisce a video in tempo reale, sarà poi compito dell'utente poter salvare il
log in un file locale per un' analisi dettagliata, log inteso in modo generale, perché come
vedremo nel seguito di questo documento, i risultati dell' analisi possono essere salvati in varie
modalità in Wireshark, come ad esempio il salvataggio di frame singoli o di intere
comunicazioni, provenienti o diretti da e verso determinati indirizzi, divisi dal tipo di protocollo
o secondo ogni feature di ogni singolo filtro applicabile a Wireshark. Degno di nota è il fatto che
Wireshark per la cattura usufruisce di librerie, rispettivamente: libpcap per sistemi Unix-
Like e Winpcap per sistemi Microsoft.

-2-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

I dati possono essere acquisiti dal vivo su interfacce Ethernet, FDDI, PPP, Token Ring,
IEEE, IP classico su ATM, e interfacce di loopback, (supportate secondo il tipo di
piattaforma).

***

Prima di vedere da vicino Wireshark e il suo utilizzo, pensiamo fosse opportuno riprendere
alcuni concetti di reti/protocolli e nozioni fondamentali per una lettura ottimale del documento

***

breve cenno al modello OSI/ISO


Qando ci colleghiamo ad un sito, chattiamo, inviamo email, o qualsiasi altro tipo di attività si
svolga in internet, apriamo una comunicazione tra noi e chi ci offre le informazioni che
chiediamo. Facendo un esempio pratico, quando apriamo il browser web per connetterci ad un
sito, non facciamo altro che stabilire una comunicazione con il server su cui risiede il sito, il
quale ci invierà le pagine che il nostro browser si impegnerà a visualizzare. Per fare in modo
che due computer (host) comunichino tra di loro in maniera corretta, devono parlare la “stessa
lingua”. Quindi devono aderire ad uno standard che permette loro di scambiarsi le informazioni
a vicenda. Questo linguaggio, in senso metaforico, è definito da una struttura che prende il
nome di modello OSI.

Il modello OSI ha una natura di tipo stack, quindi presenta più layers (strati), per la
precisione è formato da 7 layers, descritti nell'immagine seguente.

***

***

Partendo dal basso incontriamo il layer 1, continuando man mano fino ad arrivare al settimo.
Ad ogni layer avviene una comunicazione tra gli host interessati attraverso un determinato
protocollo. Quindi, se abbiamo un host A e un host B, il livello n dell'host A potrà scambiare
informazioni solo con il livello n dell'host B, usando di conseguenza lo stesso protocollo ed
evitando di comunicare con livelli diversi.

In questo modo ogni livello si occupa soltanto di operare secondo le sue direttive e passare il
pacchetto dati ai livelli successivi, che a loro volta lo elaboreranno in maniera diversa.
Facciamo un po’ di chiarezza: questo sistema può essere visto come la spedizione della posta;
inizialmente la lettera viene scritta da una certa persona, la quale la immette in una busta
pronta per essere spedita.
-3-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Aquesto punto lui ha terminato il suo compito, sta al postino prendere la busta e trasportarla
altrove, per poi arrivare nel luogo di destinazione. Il mittente della lettera non si preoccupa più
degli step successivi, a lui è bastato inserire le informazioni da lui elaborate (destinatario,
luogo, ...).
Analogamente a quanto avviene in una situazione del genere, anche nel modello di
comunicazione sopra esaminato avviene un processo di incapsulamento simile. Ogni livello
infatti dopo aver lavorato i dati pone delle informazioni che rendendono possibile l’ulteriore
elaborazione del livello successivo. I dati che viaggiano in una rete vengono suddivisi e
chiamati in gergo pacchetti.
Ogni pacchetto ha una struttura diversa in base al protocollo di rete utilizzato, ma
genericamente si può affermare che ci sono sempre tre parti principali in quasi tutti i pacchetti:

Header
Corpo dati
Checksum

• L’ header (o intestazione) contiene le informazioni necessarie alla trasmissione, quindi


tutte le informazioni lasciate dai vari protocolli.

• Il checksum è sostanzialmente un codice di controllo utilizzato per controllare la


corretta ricezione dei dati.

• Il corpo dati contiene per l’appunto i dati che vengono effettivamente trasmessi

Nonostante si sia fatto questo uso generico della parola pacchetto per indicare tutti i tipi di dati
trasmessi, è bene sottolineare che per il livello di collegamento dati (data link layer) si
preferisce il termine frame al termine pacchetto. Adesso è arrivato il momento di esaminare
un po’ più nel dettaglio ogni layer o livello del modello OSI/ISO,partendo dal basso:

• Livello fisico: è il livello più basso, in realtà è il livello in cui avviene l’effettivo transito
dei dati sottoforma di bit nei cavi o nel mezzo trasmissivo in uso.

• Livello di collegamento dati: è il secondo livello, anche se potrebbe essere visto


come il primo visibile più in basso. A questo livello opera il protocollo Ethernet che
fornisce un sistema che permetta di far comunicare tutti i dispositivi hardware di rete
collegati attraverso degli indirizzi, detti indirizzi hardware, che prendono il nome di MAC
Address. Il motivo per cui un indirizzo di questo tipo è detto hardware è che
sostanzialmente ad ogni dispositivo Ethernet è assegnato un indirizzo univoco
(teoricamente a livello globale!). La forma di tale indirizzo è xx:xx:xx:xx:xx:xx, dove i
sei byte sono scritti solitamente in forma esadecimale. A questo livello opera anche il
protocollo ARP che permette la risoluzione da nomi Ethernet a indirizzi IP. Altrimenti,
non potremmo identificare una macchina attraverso un IP, in quanto è solo una
correlazione virtuale, la vera identificazione del dispositivo è il MAC.

• Livello di rete: in questo livello opera il protocollo IP e ICMP. E’ usato per trasmettere i
pacchetti.

• Livello di trasporto: una volta che i pacchetti sono trasmessi, il trasporto avviene in
questo livello da un protocollo come TCP o UDP. Non è compito di questo documento
esaminare le differenze tra i due, sostianzialemente a titolo informativo possiamo dire
che TCP offre un sistema più sicuro di trasporto a discapito di un “maggiore consumo” di
risorse, mentre UDP presenta un corpo più snello ma meno sicuro e affidabile. Ognuno
dei due ha usi diversi in base al funzionamento di un determinato sistema di rete.

-4-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

• Livello di sessione: stabilisce e mantiene la connessione tra applicazioni di rete.

• Livello di presentazione: presenta i dati all’applicazione in modo a lei comprensibile.

• Livello di applicazione: sostanzialmente è un controllo dei requisiti dell’applicazione.


E’ possibile documentarsi sui vari protocolli tramite dei documenti detti RFC liberamente
disponibili in rete. Per la lingua italiana, (non tutti ci sono tradotti sul sito), vi rimando a
http://www.rfc.altervista.org/

La Cattura
Per avviare Wireshark basta lanciare il programma dalla sezione:

BackTrack → PrivilegeEscalation-> Sniffer → ...

Una volta avviato ci si presenterà una GUI simile alla seguente:

***
Per iniziare a catturare bisognerà selezionare la propria interfaccia di rete e gestirne
successivamente le opzioni, quindi basta cliccare sulla prima icona a sinistra della toolbar in
alto. Verrà mostrata la GUI seguente (in alternativa cliccare sulla voce “Capture” del Menu
in alto, e poi “Interfaces”):

-5-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

La finestra ci mostra le nostre interfaccie di rete, il relativo indirizzo, il numero di pacchetti


che stanno transitando e due pulsanti: Start per iniziare a catturare con quella determinata
interfaccia di rete e Options per il setting delle preferenze prima di iniziare la cattura.

Per fare un esempio, premiamo Start sull’interfaccia eth0, ed effettueremo una


connessione ad un sito in rete, ecco cosa logga il software:

*Volutamente trascurati gli indirizzi MAC catturati da Wireshark.*

Come è possibile vedere, Wireshark ha cattuato tutto ciò che il mio sistema e quello del
sito a cui mi sono connesso,(google.it), con un browser si sono scambiati.Per ogni
protocollo Wireshark assegna un colore diverso nella visualizzazione, ciò facilità la
comprensione. Ogni riga corrisponde ad un pacchetto. Cerchiamo di analizzare le prime
righe, in quanto quello che avviene non si svolge effettivamente tra il client e il server,
bensì all’interno della sottorete stessa.
• Riga 1: Il dispositivo ethernet del sistema chiedente, inviata a tutta la rete LAN,
(broadcast), a chi appartiene l’indirizzo IP 192.168.1.1 (quello del router/gateway).
La richiesta avviene attraverso il protocollo ARP.
• Riga 2: Il router risponde, con lo stesso protocollo, però inviando la risposta solo al
chiedente, dicendo: 192.168.1.1 è dell’indirizzo MAC …
• Riga 3: Il dispositivo ethernet del sistema chiedente, invia una query DNS al server
DNS, sapendo che ormai si tratta di 192.168.1.1, chiedendo a quale indirizzo
appartiene l’hostname www.google.it
• Riga 4 e 5: Il router chiede a quale MAC corrisponde l’IP 192.168.1.33, ovvere l’IP
che gli ha chiesto la query DNS. Il client risponde dicendo l’IP apparteiene al MAC…
• Riga 6: A questo punto, conoscendo il router il MAC dell’IP che gli ha fornito la
richiesta, effettua una risposta, fornendogli l’IP dell’hostname chiesto dal client.
• Riga 7/8/9: Avviene una handshale TCP per stabilire una connessione (TCP/IP per
l’appunto) con il server web.

-6-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

• Riga 10: Il dispositivo del client chiede al server la dir / attraverso un comando GET
del protocollo HTTP. In questo caso il browser pescherà la pagina index.htm o la
pagina di default del sito qual’ora ce né fosse una.
• Rige successive: avviene l’invio dei file del sito da parte del server web…

Nonostante questa sia una ricostruzione semplice di quanto è avvenuto, ciò può rendere l’idea
di come sia utile e preciso uno strumento come Wireshark.

I CaptureFilters in Wireshark
Iniziando l’analisi di un flusso di rete qualsiasi attraverso Wireshark, in special modo se in
modalità promiscua, i pacchetti analizzati dal software e mostrati a video saranno
numerosissimi e soprattutto appartenenti a diversi protocolli.

Molto spesso però, c’è la necessità di studiare un particolare protocollo o solo dei particolari di
una rete, evitando di catturare anche pacchetti “spazzatura” che per il nostro scopo non hanno
nessuna rilevanza, e quindi non costituiscono nessuna informazione utile. In aiuto a tutto ciò ci
vengono incontro i CaptureFilters; attraverso il linguaggio di filtraggio della libreria libpcap
infatti, è possibile scrivere dei particolari “script” che fungono da filtri, consentendo di catturare
solo determinate parte del traffico di rete.

La selezione può avvenire per esempio analizzando solo traffico di un determinato protocollo, o
ancora solo il traffico da/verso un determinato host. Wireshark mette a disposizione una
finestra apposita per la gestione dei CaptureFilters, essa può essere raggiunta in diversi modi,
vediamone uno:

***

-7-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Quando clicchiamo sul pulsante in alto a sinistra della finestra principale per configurare un'
interfaccia, per poi in seguito clickare su Options, ci troviamo di fronte alla GUI mostrata
sopra, che ci espone alcune opzioni per la cattura che andremo ad iniziare.

In particolare sul lato sinistra è possibile notare il tasto “Capture Filter”.


Premendo quel tasto è possibile accedere all’area di gestione di tali filtri. Ad ogni modo, può
essere anche comodo usare semplicemente la textbox a fianco del tasto, dove si andrà ad
inserire lo script, nel caso soprattutto non sia troppo complesso (nella maggior parte dei casi
sono semplici e stanno perfettamente in una sola riga).

Nella finestra dei filtri, ne troverete tanti predefiniti, ma proviamo a realizzarne uno semplice
da zero: nella textbox del filtro della finestra rappresentata in figura, provate ad inserire il
testo: “arp” senza apici, e premete start. Inizierà il filtraggio, e se avete più computer collegati
nella vostra rete locale vedrete ad ogni arco di tempo relativamente piccolo (minuti) filtrare dei
pacchetti riguardanti il protocollo ARP. Ecco un esempio:

***

***

I più attenti avranno notato che le richieste ARP provengono da due differenti host:
192.168.1.33 e 192.168.1.35.

Questo si spiega facilmente, in quanto la cattura si è realizzata in modalità promiscua, quindi


è stato possibile catturare tutto il traffico ARP della nostra rete, e non solo del nostro computer.
Nella rete dell’esempio gli host collegati erano i due sopracitati e la risposta ARP riguardante
l’indirizzo dal quale si esegue la cattura sarà catturata e mostrata; la risposta diretta all’altro
host invece non sarà visibile, in quanto non avviene in broadcasting, bensì viene inviata
direttamente ed esclusivamente all’host interessato.

-8-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Comunque, facciamo un altro esempio di filtro personalizzato:

src net 192.168.1.33

Questo esempio può essere utilizzato per catturare I pacchetti che hanno come sorgente quel
determinato host, in questo caso: 192.168.1.33

Il seguente invece, prende in considerazione un’intervallo di hosts:

src net 192.168.1.33/36

La modalità promiscua
Come avete notato nell’immagine del paragrafo superiore, ho evidenziato una voce: “Modalità
promiscua”. Questa modalità, impostata quasi sempre automaticamente dai software di
cattura, (e modificabile manualmente), rende possibile al software di cattuare i dati che
viaggiano in tutta la rete, (purchè sia una rete non commutata), a cui fa parte il dispositivo di
rete, (solitamente la rete LAN).

Sbirciare nel dettaglio


Abbiamo visto come catturare, ma come fare per esaminare dettagliatamente un determinato
pacchetto?
Come avrete probabilmente notato, nell’interfaccia utente del software, in basso, c’è un’area di
colore bianco. Quell’area riporta tutti i dettagli dei pacchetti.

***

***

Come possiamo vedere l’area è divisa in due parti: la prima è una sorta di treeview dove si
possono espandere i vari layers e vedere per ognuno i dettagli di quel pacchetto specifico. Un
esempio è la prima voce Frame, poi Ethernet, poi Internet Protocol, Trasmission Control
Protocol, ognuna riferendosi a un diverso tipo di protocollo, ma facenti tutti parte chiaramente
dello stesso pacchetto. La seconda parte è quella dedicata al dump dei dati, ovvero dall’analisi
e alla loro visualizzazione sottoforma esadecimale “Hex” e il corrispondente codice ASCII.

-9-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

I display filters
Delle volte, quando si sono catturati troppi pacchetti, vi è la necessità di guardare soltanto
pacchetti di un determinato protocollo o in base ad un certo criterio. Ciò è possibile attraverso i
filtri di visualizzazione.

Durante o dopo aver fatto una cattura, digitare una stringa di filtro nella cella evidenziata, e
premere Invio. Per esempio, scrivete arp e applicate il filtro. Se nella vostra lista di catture c’è
un qualche pacchetto arp verrà visualizzato e tutti gli altri nascosti. Questa funzione è molto
comoda per individuare solo particolari dati, tra tanti catturati.

I ColorsRules
A titolo informativo, dal menu View → ColorsRules è possibile
visualizzare/modificare/importare nuovi schemi di colori. Quando si cattura, infatti, i vari
pacchetti spesso vengono visualizzati con colori differenti. Per esempio tutti i pacchetti TCP
sono differenti da quelli DNS o UDP. Questo permette una migliore lettura.

“La Sicurezza in Wireshark”

Un aspetto importante in Wireshark è la sicurezza.


Data la sua grande potenza e versatilità Wireshark non si presenta di certo come un re della
sicurezza.Anche in passato ha sofferto di diversi bug, spesso mettendo a rischio il sistema su
cui è eseguito. Vogliamo quindi esporre alcuni semplici consigli e informazioni per un uso
ottimale di quest' irrinunciabile strumento. Innanzi tutto, essendoci riferiti naturalmente a
BackTrack, non abbiamo sottolineato la differenza di utilizzo di Wireshark a livello utente,
questo perché in BackTrack si è sempre soggetti alla policy del mainuser=root, ma non
possiamo esimerci dal dire che non è necessario a volte usare Wireshark come utente root,
questa è una pratica necessaria per catturare il traffico, (quindi per poter usare le interfaccie di
rete), ma comunque non è necessaria per molte altre operazioni.
Quindi spesso è consigliabile creare un user limitato da usare solamente per questo tipo di
operazioni, come analizzare pacchetti precedentemente salvati. Un altro consiglio è tenere
sempre Wireshark alla versione più aggiornata. Non è una questione di moda, ma di sicurezza.

ˮIn recent time, Wireshark was often mentioned in security bulletins about having several security related
bugs fixed. This is caused by code reviews of individuals and interested parties and by the effort of the
Wireshark team to automatically find bugs. It is expected that this will continue - at least in the near future.

While there is currently no known exploit out there to attack Wireshark, this may change one day ...

Because of this, special care should be taken to avoid security related problems while running Wireshark or
at least to reduce the possible impact.

Whether this is a problem for yourself will depend on the situation: A small SoHo network will probably be
less critical compared to a company's 24/7 mission critical web server, capturing data from an internal
network is probably more secure than capturing internet traffic, ...

It's not the intention of this page to discuss the opinion of certain persons that the usage of Wireshark itself is
"insecure", because you can see network data like transported passwords. BTW: Security through obscurity
just doesn't work. ˮ Dalla documentazione ufficiale

-10-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Non trascuriamo le performance


Veniamo ora a quelle che sono le performance del software in discussione. E’ evidente che
quando il sistema è molto sottocarico o comunque quando si abusa di certe funzioni, può
incorrere qualche problema. Può capitare infatti che alcuni pacchetti durante la cattura (e
l’eventuale salvataggio in locale del file cap) vengano eliminati, e quindi non salvati. Un
probabile motivo è che il sistema era troppo “occupato” per elaborare correttamente tutta la
mole di dati che girava in rete. Ecco alcuni consigli, quindi, per rendere ottimali le performance
di Wireshark.

• Chiudere tutte le applicazioni possibili nel sistema (quantomeno quello che usano
la rete e che sono ritenute meno utili), in modo da ridurre il sovraccarico.

• Comprare un computer potente e veloce ;)

• Usare se possibile, un tool diverso per cattuare il traffico (i.e. tcpdump), per poi
analizzarlo successivamente

• Disabilitare il network layer DNS lookups (sotto View → Name resolution)

Il Video e la “ manipolazione dei frames ”

Eccoci ora arrivati alla seconda parte del documento, a fare quindi una descrizione di quella che
è l' analisi dettagliata dei frames che Wireshark ci mette a disposizione con la sua cattura e a
descrivere il video creato in combinazione con questo paper.

Cenni sul protocollo ARP


Il protocollo ARP, Address Resolution Protocol,è il protocollo che fornisce la mappatura tra l'
indirizzo IP ed il suo MAC-Address. Ogni sistema detiene una cache di informazioni riguardo il
protocollo ARP, l' ARP-Cache per l' appunto. I comandi per la gestione di tale cache sono simili
sulla maggiorparte delle piattaforme, nel video viene mostrato più volte il contenuto dell' ARP-
Cache di un sistema, (un WinXpPro - VITTIMA in questo caso), con l' ausilio del comando arp -
a, che ci mostrerà quindi le combinazioni IP-MAC dei sistemi in comunicazione con lo stesso. Il
protocollo ARP viene usato quando un host vuole mettersi in comunicazione con un altro host
della stessa subnet e non può oltrepassare quello che è il Gateway della LAN. Inviando un
pacchetto IP, (ARP-Request), all' host in questione, (il pacchetto viene incapsulato nel
2°livello“Data Link Layer” dello standard OSI/ISO – vedere pag.3), la richiesta viene fatta
a tutti I sistemi interni alla subnet,(in Broadcast), ogni sistema analizzando il pacchetto
verificherà se l' IP che il pacchetto “cerca” corrisponde al proprio e se sì, verrà inviata una
risposta, (ARP-Reply), contenente il proprio MAC.

Scopo del video è quello di “far credere” alla VITTIMA del caso, che l' host ATTACKER abbia lo
stesso MAC-Address del GATEWAY, procedimento che prende il nome di “ARP-Spoof”.
Il video mostra come manipolare i frames di Wireshark con l' ausilio di altri strumenti i quali
sono Hexedit e File2Cable, entrambe presenti di default nella nostra distribuzione.

Seguendo il video...

Il video mostra come fare arp-spoofing usando:

1. Wireshark – usato per la cattura e l'analisi dei frames

1. Hexedit – usato per l' editing del testo esadecimale precedentemente catturato

2. File2Cable – usato per immettere sull' interfaccia i frames manipolati

-11-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

La LAN in questione ha la topologia seguente:

prendendo l' esempio pratico di 2 dei 4 PC indicati nell' immagine, lo SCENARIO iniziale è il seguente:

GATEWAY: 192.168.1.1 00:0e:a6:60:e4:75 IpCop

VICTIM: 192.168.1.100 00:22:15:d0:db:e6 WinXpPro-Spk2

ATTACKER: 192.168.1.101 00:16:d4:d5:60:3c BackTrack

Avviando Wireshark viene selezionata l' interfaccia Ethernet, (la eth0), con opzioni di filtering
per la cattura del traffico ARP, quindi il filtro Ethernet 0x0806 ARP, filtro che nasce già
precostituito in Wireshark.

Tramite questo filtro con qualsiasi host noi saremo in comunicazione, l' unico traffico che
Wireshark ci restituirà sarà il traffico ARP, selezionato in questo caso per fare l' esempio dell
Arp-Spoofing.

Una volta avviata la cattura del traffico con lo Start, viene creato del traffico pingando
www.google.it, dopo non molto ci verranno restituiti I primi dati catturati da Wireshark,
andiamo subito a farne una breve analisi con l' ausilio di qualche immagine.

***

-12-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

L'immagine sopra ci mostra quella che è l' interrogazione che avviene tra l' host che avvia il
ping verso www.google.it e il gateway/firewall che si trova a monte della LAN che stiamo
trattando.

L' interrogazione avviene precisamente nella maniera che l' immagine indica, ovvero con i Who
As e Tell che ci sono durante la comunicazione tra il GATEWAY e l' ATTACKER,(vedere pag.6),
indicando ovviamente oltre all' indirizzo IP dei sistemi anche il rispettivo MAC address,
elencato per questo all' interno della tabella dello SCENARIO.

Per avere tutti i dati che servono per effettuare un Arp-Spoofing abbiamo ottenuto il MAC
della VITTIMA pingandola e successivamente controllando i dati nella nostra arp-cache.

Tornando all' interfaccia di Wireshark possiamo vedere che tenendo selezionata la prima riga,
(1° riquadro) , quella dell' interrogazione tra il GATEWAY e il nostro host ATTACKER, abbiamo
tutti i riferimenti dettagliati della comunicazione nel riquadro centrale,che ci mostra tramite
una treeview i dati del protocollo, opcode,l'hardware e il Sender / Target con in basso i
dettagli di tutto il frame,(o sezioni di frame secondo la selezione nel riquadro centrale),
corrispondente, che contengono di conseguenza tutti i dati in HEX – esadecimale – della nostra
comunicazione ARP, nello specifico nell' immagine sotto possiamo vedere che selezionando il
Sender MAC/IP o il Target MAC/IP nel riquadro centrale otteniamo l' evidenziazione dei dati
in Hex nel riquadro in basso, dove sono perfettamente riconoscibili sia i MAC address che gli
indirizzi IP della comunicazione.

***

***
Infatti, come riconoscibile anche dal video, ad ogni click sull' intestazione del riquadro centrale
vediamo oltre ai MAC contenuti, e facilmente ricoscibili, anche gli indirizzi IP sempre in hex,
con il corrispondente codice ASCII, basterebbe in caso di insicurezza, prendere una calcolatrice
scentifica e vedere le rispettive corrispondenze in decimale/esadecimale dei vari IP.

-13-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

***

Ecco infatti come si presenta lo SCENARIO completo:

GATEWAY: 192.168.1.1 00:0e:a6:60:e4:75 c0 a8 01 01 IpCop

VICTIM: 192.168.1.100 00:22:15:d0:db:e6 c0 a8 01 64 WinXpPro-Spk2

ATTACKER: 192.168.1.101 00:16:d4:d5:60:3c c0 a8 01 65 BackTrack

Bene, una volta inquadrato lo SCENARIO completo della nostra LAN, passiamo a salvare l'
intero frame datoci da Wireshark nella nostra /root dal nome arpv senza apporre nessuna
estensione al file, poi passiamo ad aprire il file con HexEdit, dando il comando:

root@bt~# hexedit -b arpv

questa è l' immagine iniziale dell' editing del frame:

***

Possiamo vedere che HexEdit è di semplice interpretazione, è un editor di testi per files
binari/esadecimali e quindi ideale per l' editing di frames catturati con Wireshark.

All' interno del testo sono facilmente riconoscibili gli stessi frames che abbiamo analizzato
precedentemente, che si trovavano in Wireshark visibili all' interno del riquadro inferiore,
(dump).

Avendo in mano, (vedere lo SCENARIO completo per una lettura ottimale), tutti i dati a nostra
disposizione per effettuare un Arp-Spoofing, andiamo a “cambiare” i dati contenuti all' interno
del frame.

-14-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Il primo cambiamento che dovremmo effettuare all' interno del frame è l' inserimento del
MAC della VITTIMA al posto di quello dell' ATTACKER, quindi successivamente il frame avrà l'
aspetto che vediamo nell' immagine seguente:
***

***
Questa l' immagine dopo il primo cambiamento all' interno del frame. Il secondo comporterà la
sostituzione del MAC del GATEWAY con il MAC dell' ATTACKER, ed ecco quindi anche l'
immagine del frame dopo il secondo cambiamento...

***

-15-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

***

Ora bisogna effettuare i cambiamenti: dapprima nel MAC del GATEWAY, da sostituire con
quello dell ATTACKER e poi quello della VITTIMA al posto dell' ATTACKER, per fare in modo che
l' ARP-cache della VITTIMA legga il nostro MAC, (ATTACKER),uguale a quello del GATEWAY, ed
ecco l' immagine degli ultimi due cambiamenti a livello MAC-Address:

***

***

***

-16-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Per effettuare un Arp-Spoof siamo già a buon punto, ma non alla fine, questo perché, (come
già descritto precedentemente), dobbiamo effettuare l' ultimo cambiamento, ovvero: la
sostituzione della sezione di frame rappresentante l' idirizzo IP del ATTACKER con quella della
VITTIMA, sostuiremo quindi il c0 a8 01 65 [192.168.1.101] con c0 a8 01 64
[192.168.1.100].

***

Questa l' immagine finale che assumerà il nostro frame...

***

Durante la visualizzazione del video viene mostrato il prompt dei comandi del sistema della
VITTIMA, in particolare l' ARP-Cache:
***

***

Ma torniamo al nostro sistema, con BackTrack, e salviamo il frame così come visto l' ultima
volta con il nome arpvictim, per immetterlo successivamente sull' interfaccia che ci interessa,
eth0, con l' ausilio di File2Cable, ideale per il nostro scopo.

***

L' immagine sotto mostra dapprima l' “usage”, (comando e opzioni da passare a riga di
comando), che deve essere adottato per l' utilizzo di File2Cable, poi mostra il lancio di 2
pacchetti contenenti il nostro frame modificato sull' interfaccia Ethernet eth0:

-17-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

***

***

Per precisare esponiamo comunque le opzioni passate a File2Cable:

• file2cable , comando che richiama lo script

• -v , opzione per l' output in modalità verbose

• -i , opzione che specifica l' interfaccia su cui immettere il frame

• -f , opzione che va a specificare il file contenente il frame

Dopo aver specificato le opzioni, immetteremo due volte sulla nostra eth0 il frame con
File2Cable, ed ecco quindi l' immagine dell' ARP-Cache del sistema VITTIMA con il risultato
ottenuto:

***

***

Come possiamo vedere dall' immagine l' ARP-Cache del sistema VITTIMA contiene due indirizzi
IP, rispettivamente del GATEWAY e dell' ATTACKER, entrambe però con lo stesso MAC-Address,
frutto del nostro spoofing manuale.

-18-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Wireshark e i protocolli Wireless

Dopo aver introdotto e specificato le opzioni di Wireshark all' inizio del documento, dopo aver
fatto un profondo riferimento con tanto di video ed esempio di Arp-Spoofing tramite la
manipolazione dei frames catturati con Wireshark, eccoci ora arrivati alla parte del documento
che vede al lavoo Wireshark su un altro protocollo, il Wireless.
Sebbene necessiti di qualche passaggio in piu' rispetto allo sniffing su reti ethernet, lo sniffing
delle reti wireless é piuttosto semplice da effettuare. Ancora una volta BackTrack ci semplifica
il compito, mettendoci a disposizione tutti i tools di cui abbiamo bisogno.

Sniffing 802.11 (WiFi)


Quello che segue quindi è un esempio di utilizzo di Wireshark per lo sniffing su protoccolo wifi.
Per eseguire lo sniffing di comunicazioni wifi abbiamo bisogno di una scheda di rete wireless
configurata correttamente per il monitor mode. Per fare cio' utilizzeremo airmon-ng, della
suite aircrack-ng.
Individuiamo la nostra interfaccia wireless, (in questo caso wlan0), dopodiché lanciamo
airmon-ng con l'opzione start:

***

***
Cosi, facendo abbiamo a l'interfaccia virtuale mon0 che possiamo aprire da wireshark:

***

-19-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Vediamo cosa é possibile catturare in questo modo:

Questi sono pacchetti inviati da un access point cisco. Possiamo vedere una gran quantità di
beacon frames, pacchetti usati per annunciare il punto d'ingresso per una rete wifi e le
caratteristiche della rete. Se Osserviamo meglio possiamo individuare il metodo di cifratura
della rete:

-20-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Penso che anche voi abbiate capito che é una rete protetta con WPA. Infatti come cifrario a
blocchi é usato AES, e come chiave una passphase condivisa (PSK).

Wireshark e i protocolli Bluetooth

Con la diffusione capillare dei cellulari/palmari, oggi é molto difficile non incontrare questi
dispositivi durante il giorno. E probabilmente una buona parte di essi avra' il bluetooth attivo.
É un protocollo usato in moltissimi modi: per trasmettere file, per collegare tra loro vari
dispositivi (auricolari, mouse, telecomandi), e per navigare in internet. Sapevate che
wireshark puo' aiutarci anche in questo caso?

Per catturare dati bluetooth grezzi abbiamo di un tool esterno a wireshark, hcidump (anche
questo fornito naturalmente con BackTrack). Possiamo eseguire un dump delle comunicazioni
lanciando hcidump e dicendogli di salvare I dati raw in un file, con l'opzione --save-dump.
Vediamo:

root@bt~# hcidump –save-dump=foo


HCI sniffer – Bluetooth packet analyzer ver 1.42
device: hci0 snap_len: 1028 filter: 0x0
^C
root@bt~#

Per fermare lo sniffing bloccate hcidump con un CTRL-C. Ora dovremmo avere a disposizione
un file, che wireshark sara' felice di parsare per noi:

Potete vedere un analisi di una scansione inquire per la ricerca di dispositivi bluetooth.
Ricordate che in questo modo potete ottenere tutti I dati (sms, files, ecc...) che passano in
chiaro su un canale bluetooth. Da usare in luoghi molto affollati...

-21-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Analisi grafica dei dati

Grafici Input/Output
Una delle features piu' divertenti di wireshark é la possibilità di visualizzare grafici dei dati
raccolti. Attraverso I grafici é possibile correlare gli eventi della rete ed evidenziare I momenti
di traffico piu' intensi, il tutto in modo piacevole alla vista.
Per utilizzare i Grafici basta andare nel menu' Statistiche → Grafici I/O e si aprirà una
finestrella come la seguente:

Qui possiamo utilizzare le conoscenze che abbiamo aquisito sui filtri di wireshark per
disegnare graficamente I pacchetti che ci interessano. Nella finestra sopra, si é evidenziata la
componente di traffico HTTP (linea rossa), sul totale del traffico (linea nera). Per I grafici é
possibile utilizzare molti stili diversi e variare tempo e frequenza dei pacchetti disegnati.

Grafici di flusso
Un'altro tipo di analisi é il grafico di flusso, molto istruttivo per comprendere il
funzionamento dei protocolli, e in particolare il TCP. Per utilizzare I grafici di flusso cliccate
sul menu' Statistiche → Grafici di flusso, selezionate la modalita' (noi utilizzeremo l'analisi
del TCP) e verrà generato un flusso di questo tipo:

Ed ecco a voi un TCP handshake ;)

-22-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

Wireshark
www.wireshark.org

in BackTrack:

BackTrack → PrivilegeEscalation → Sniffers → Wireshark

File2Cable
http://phenoelit-us.org/irpas/docu.html#file2cable

in BackTrack:

~file2cable

HexEdit
http://www.hexedit.com/

in BackTrack:

~hexedit

-23-

Anallizare il traffico di rete con Wireshark www.backtrack.it


Anallizare il traffico di rete con Wireshark www.backtrack.it

www.backtrack.it

***
Questo documento è da ritenersi esclusivamente per scopi informativi / didattici, gli autori del
documento e coloro che lo ospitano sul proprio spazio non sono responsabili delle azioni
commesse da terze parti
***

(c) 2009 Lynx51 - brigante & crossbower for backtrack.it published under GNU / GPL-v3

Anallizare il traffico di rete con Wireshark www.backtrack.it