Wireshark uno squalo nella rete
Wireshark nasce dall’ esperienza di Gerald Combs,
il quale nel 1998 scrisse per uso personale il
software ethereal, rilasciato in seguito sotto
licenza GPL, un valido analizzatore di pacchetti, o
se volete, analizzatore di traffico, packet sniffer ,
sniffer .
Cambiando lavoro nel 2006, Combs e’ stato
costretto a causa di una disputa sul nome
Ethereal registrato dall’ azienda per cui lavorava
precedentemente a realizzare un fork del progetto
e continuarlo col nome wireshark
Wireshark uno squalo nella rete
Che cosa è un analizzatore di protocollo o Sniffer?
Un analizzatore di protocollo è uno strumento hardware e/o
software atto a catturare, registrare, visualizzare,
decodificare Frames che viaggiano sulla rete.
Quindi lavora al livello 2 della pila osi! I frames cosi’ catturati
possono essere a loro volta analizzati per vedere cosa
trasportano, quindi mostrati all’ utente in un formato
intelleggibile, ed eventualmente filtrati e/o salvati su file.
Per funzionare esso spesso mette l’ interfaccia di
rete in modalita’ promiscua (monitor mode sulle
schede wireless), ossia fa’ in modo che la scheda
di rete non scarti i pacchetti destinati ad altri mac
address, ma li passi ugualmente ai livelli
superiori della pila osi
Wireshark uno squalo nella rete
Questo trucchetto , necessario se non sia la nostra stessa
macchina a generare/ricevere il traffico da analizzare, e’
dovuto al fatto che il media che stiamo usando (ethernet) e’
nativamente un supporto di trasmissione a canale
condiviso, quindi lui manda tutti i frame destinati a tutti su
tutta la rete, e poi ogni destinatario controlla l’ indirizzo mac
address di destinazione e preleva solo quelli a lui indirizzati,
il trucchetto funzionera’ correttamente solo se siamo
connessi su di un’ hub o su di uno switch managed, nel
quale avremo avuto l’ accortezza di porre in mirror la nostra
porta con quella da dove passa il traffico da analizzare, se
invece siamo connessi su di uno switch non managed,
potremo vedere solo il traffico etichettato come broadcast
oltra al nostro (utile in certi casi, ma ben poca roba)
Wireshark uno squalo nella rete
il MAC Address (Media Access Control) è l’indirizzo hardware
della scheda di rete (NIC Network Interface Card) esso e’
formato da 48 bit di cui i primi 24 bit identificano il vendor
(venditore) , mentre i secondi 24 bit sono il numero seriale
assegnato dal vendor alle NIC.
Ricordiamoci sempre che la cattura di pacchetti non da noi
generati/destinati potrebbe introdurci a problemi di
privacy, in quanto potremmo entrare in possesso di dati
sensibili quali username/password , indirizzi visitati,
contenuti di email etc etc, quindi ricordiamoci sempre che
e’ meglio catturare solo il proprio traffico oppure avere le
necessarie autorizzazioni da parte di chi amministra la
rete.
Wireshark uno squalo nella rete
Gli analizzatori di protocollo di tipo hardware normalmente sono
molto costosi, al contrario, un analizzatore di protocollo di tipo
software costituisce il tipo di packet sniffers più diffuso,
economico e conveniente. In special modo se esso è rilasciato
sotto licenza GPL. Questo permette a chiunque lo desideri di
analizzare una rete.
WIRESHARK e’ un' analizzatore open
source!!!!
Wireshark uno squalo nella rete
A cosa serve un’ analizzatore di protocollo?
L’ analizzatore di protocollo, serve per capire come funziona una
rete e cosa ci transiti sopra, come interagiscono tutti gli attori che si
affacciano sulla rete, e’ una lente d’ ingrandimento sulle
comunicazioni che transitano! Serve a capire lo stato di salute
della nostra rete, a realizzare diagnosi, o semplicemente a
monitorare la rete, permette di avere una rappresentazione visiva
del reale traffico, ed in generale consente di risolvere molti dei
problemi che possono insorgere!
Come tutti gli strumenti se ne puo’ fare un’ uso buono o cattivo,
puo’ permettere di recuperare le password di posta che abbiamo
dimenticato, o puo’ permettere a qualcun’ altro di rubarcele!
Wireshark uno squalo nella rete
Se volessimo fare un paragone , e’ uno strumento che permette di
mettere in relazione tutte le azioni fatte tra una richiesta e la sua
risposta:
io potrei chiedere a voi di andare a prendere un bicchier d’ acqua,
e vedervi ritornare col bicchiere pieno,
ma non saprei mai tutto cio’ che avete dovuto fare per darmi il
risultato del bicchiere pieno, l’ analizzatore di protocollo in questo
caso mi direbbe,
che avete dovuto spostare la sedia per alzarvi, posare la
matita che avevate in mano, camminare fino al frigo,
aprirlo, scegliere la bottiglia che risponde magari ad alcuni
requisiti particolari,aprire la dispensa, quindi scegliere il
bicchiere, aprire la bottiglia, riempire il bicchiere e tornare
col bicchiere pieno
Wireshark uno squalo nella rete
questo nel caso ottengo cio’ che voglio, e se invece tornaste
senza il bicchiere con l’ acqua?
L’ analizzatore magari mi potrebbe far sapere che lungo il tragitto
c’e’ una porta che e’ chiusa a chiave ed io dovevo fornirvi la
chiave, o che non ci sono piu’ bottiglie con acqua in frigo, ecco
quindi mi permette di avere una descrizione precisa di cio’ che e’
successo in modo da poter risolvere il problema.
Wireshark uno squalo nella rete
L’ analizzatore di protocollo, per poterci aiutare
nel nostro lavoro, ha bisogno di:



accedere alla rete, in modo da poter catturare i dati, quindi
cio’ presuppone la possibilita’ di mettere in modalita’
promiscua la scheda di rete per poter ricevere tutti i dati e
non solo i nostri, e un corretto posizionamento sulla nostra
rete.
elaborare i dati raccolti, traducendoli dal mondo dei bit nel
mondo reale.
una capacita’ di analisi e filtrazione per permetterci di
barcamenarci tra tutti i dati prelevati dalla rete
Wireshark uno squalo nella rete
Se guardiamo meglio l’ operazione
di accesso alla rete, con l’ ausilio
dell ‘ immagine seguente, ci
rendiamo conto come per poter
accedere in modo affidabile ai dati
della scheda di rete senza esser
vincolati dai livelli della pila OSI, sia
necessario l’ implementazione di un
driver di cattura dei pacchetti, quindi
una porzione di codice a livello di
kernel, che funga da interfaccia
diretta tra la scheda di rete e il software di analisi, e
contemporaneamente permetta la corretta alimentazione
della pila osi, necessaria per poter continuare ad utilizzare
le funzionalita’ di rete del sistema operativo.
Wireshark uno squalo nella rete
Perche’ usare wireshark
È possibile analizzare dati acquisiti in tempo reale su una rete
attiva ("from the wire"), come pure analizzare dati salvati
precedentemente su file di cattura (offline);


dispone di un’interfaccia grafica intuitiva;

supporta la lettura/scrittura di differenti formati;
permette di catturare dati da diverse interfacce: Ethernet,
Bluetooth, USB, Wireless, loopback ecc;

è in gradi di decifrare numerosi protocolli: SSL/TLS, WEP,
Kerberos, WPA/WPA2, IPsec, ecc;

Wireshark uno squalo nella rete
l’analisi dei dati è facilitata dalla possibilità di creare regole per
applicare una diversa colorazione ai differenti tipi di dati;

può essere generato un output in diversi formati: XML, PostScript,
CSV, testo normale

È possibile analizzare i dati sia tramite interfaccia grafica che da
linea di comando, con il programma "tshark"

I dati catturati su file possono essere facilmente modificati,
convertiti o filtrati, tramite opzioni su riga di comando del
programma "editcap".

È possibile scomporre e analizzare centinaia di protocolli di
comunicazione.

Wireshark uno squalo nella rete
Usiamo wireshark
Dopo averlo lanciato (con i privilegi di root), su ubuntu da terminale
davide@eeepc-dav:~$ sudo wireshark&
O se lo vogliamo lanciare dal menu’ a tendina, dopo aver modificato il collegamento
per inserire il comando kdesu wireshark tramite l' editor di menu KDE
Wireshark uno squalo nella rete
Avviamo la nostra prima cattura, cliccando sul primo
pulsante da sinistra
si aprira’ la schermata di selezione delle interfacce dalla
quale possiamo vedere tutte le interfacce sulle quali
possiamo andare ad operare, modificare le opzioni relative
ad ogni interfaccia o semplicemente avviare la cattura dei
pacchetti direttamente con le opzioni di default.
Wireshark uno squalo nella rete
Una volta avviata la cattura, lo schermo passera’ da un’
uniforme grigio, ad una suddivisione in tre sezioni, e ci si
presenteranno tutta una serie di righe e dati, corrispondenti al
traffico ethernet catturato, righe che di default scorrono man
mano che va’ avanti la cattura, facciamo quindi scorrere un
paio di righe e fermiamoci tramite l’ apposito pulsante (il
quarto da sinistra) e guardiamo cosa ci viene mostrato.
Wireshark uno squalo nella rete
Lo schermo e’ diviso in tre sezioni, nella prima sezione
(sommario), quella piu’ in alto,
abbiamo un’ ulteriore suddivisione in colonne, esse
rappresentano (da sinistra verso destra) :
 il numero progressivo del pacchetto
 il tempo intercorso tra l’ inizio della cattura e l’ arrivo del
pacchetto
 chi ha generato il pacchetto (mac address o indirizzo ip)
 chi e’ il destinatario del pacchetto (mac address,
indirizzo ip, broadcast)
 il protocollo utilizzato
 altre informazioni rilevanti
 in questa sezione possiamo selezionare una singola
riga in modo da esplorare meglio il suo contenuto
Wireshark uno squalo nella rete
Nella seconda sezione (protocollo)
abbiamo riportati dettagliatamente i dati relativi alla riga
selezionata nella prima sezione, possiamo quindi
meglio vedere il tipo di frame, il protocollo dal quale
proviene il frame, l’ indirizzo mac address sorgente e
destinatario in forma estesa (nella sezione precedente
era visualizzata il vendor corrispondente ai primi 24 bit)
l’ eventuale payload del frame ed altri dati utili, sempre
organizzati secondo gerarchie ispezionabili tramite un
click sul segno
a lato
Wireshark uno squalo nella rete
Nella terza sezione (dati)
invece vediamo il frame nativo, in formato hex e ascii, cosi’ per come e’
catturato dal driver di cattura direttamente sulla scheda ethernet, ed
eventualmente evidenziati i byte relativi alla sezione selezionata nella
seconda sezione.
Wireshark uno squalo nella rete
Uso un po’ piu’ avanzato
Cosi facendo possiamo riavviare la cattura (se non vogliamo
salvare il contenuto catturato in precedenza e vogliamo evitare
che ci venga richiesto, possiamo cliccare sul 5^ pulsante da
sinistra)
Mentre l’ analizzatore sta effettuando la sua cattura, passiamo
sul nostro browser e apriamo una pagina internet, subito ci
renderemo conto come il semplice caricamento di una pagina,
quale ad esempio www.google.it, generi un’ enorme quantita’ di
dati nell’ analizzatore.
Wireshark uno squalo nella rete
Se vogliamo solo curiosare, senza nessun target
specifico la cosa va’ piu’ che bene, ma se stiamo
cercando qualcosa di piu’ specifico forse e’ meglio
imparare ad usare i filtri!
Wireshark uno squalo nella rete
FILTRI
Wireshark ha due tipi di filtri:

filtri di visualizzazione

filtri di cattura
Wireshark uno squalo nella rete
con i filtri di visualizzazione, l’ analizzatore raccoglie tutti i dati
provenienti dalla rete, e poi ci permette di visualizzare solo
quelli che ci interessano, ma in ogni caso, se decidiamo di
spostare il nostro focus su qualcosaltro successo nell’
intervallo durante il quale abbiamo fatto la cattura, possiamo
farlo perche’ abbiamo tutti i pacchetti.
I filtri di cattura invece, filtrano la cattura in base al
criterio assegnatoci, in modo da diminuire
drasticamente il numero di pacchetti catturati, ma
impedendoci di spostare il nostro focus su altro , non
avremo altri pacchetti da analizzare
Wireshark uno squalo nella rete


I filtri di visualizzazione, oltre ad essere molto utili sono
anche facilitati nell’ utilizzo sia dall’ esistenza di numerosi
filtri preimpostati (pulsante Filter della barra dei filtri)
sia grazie ad un facilitatore che ci consente di scrivere con
pochi clic i nostri filtri, pulsante “+ Expression” , sia grazie
al fatto che se scriviamo nella riga dei filtri, essa cambiera’
colorazione in base alla correttezza di cio’ che stiamo
scrivendo! Quindi una volta selezionato il filtro non
ci resta che di applicarlo. Nel caso volessimo
levare un filtro basta ciccare sul pulsante “pulisci”
Wireshark uno squalo nella rete
Alcuni filtri di uso comune possono essere :

eth.addr == ff:ff:ff:ff:ff:ff

ip.addr == 192.168.1.7

ip.src == 192.168.1.17 and ip.dst == 192.168.1.19

ip.addr 192.168.1 and pop

ip.addr 192.168.1 and messenger
Wireshark uno squalo nella rete
se invece vogliamo filtrare tutti i pacchetti che non
provengono/vanno verso un’ ip , quindi l’ opposto di
ip.addr==192.168.1.1
saremmo tentati di usare:
ip.addr!=192.168.1.1 il quale pero’ non ci filtrera’ niente!!
L’ espressione giusta da usare e’ :
!(ip.addr == 192.168.0.1)
La differenza tra le due righe se pur semanticamente
giuste e’ che usando l’ operatore != chiediamo di
eliminare le righe dove abbiamo l’ indirizzo ip indicato,
ma dove, nel campo sorgente o destinatario??? Infatti
il colore della riga non e’ ne verde ne rosso ma giallo!!!
Wireshark uno squalo nella rete
Ora che abbiamo imparato a
catturare il traffico di rete , e a
filtrarlo, addentriamoci in un’ altra
peculiarita’ degli analizzatori di
rete, la possibilita’ di seguire il filo
logico che lega piu’ pacchetti e di
mostrarcelo in chiaro, torniamo all’
esempio della pagina di google
caricata in precedenza,
selezioniamo dalla prima sezione
uno dei pacchetti TCP, clicchiamo
col tasto destro del mouse e
selezioniamo “follow tcp stream”
Wireshark uno squalo nella rete
vedremo come per magia aprirsi una pagina ove abbiamo in
chiaro tutta la conversazione tra il nostro browser e il server,
potremo cosi’ vedere ad esempio che comunichiamo al server il
tipo di browser che stiamo usando e possibilmente anche che
sistema operativo (stringa User-agent)
Wireshark uno squalo nella rete
Vedremo anche se siamo arrivati a quell’ indirizzo tramite un
link, in quale sito eravamo ed in che pagina (il referer) e tante
altre cose utili, cosi’ se invece di aver catturato i dati relativi al
traffico di una pagina http, avessimo catturato i dati mentre
stavamo controllando la nostra posta col nostro programma di
posta preferito (e non abbiamo attivato la crittografica)
avremmo avuto in chiaro username e password (ecco perche’
se il traffico non e’ vostro dovete essere autorizzati!!)
Wireshark uno squalo nella rete

Altra feature molto interessante e’ quella di
poter effettuare delle ricerche all’ interno dei dati
catturati, quindi trovare in modo molto piu’ facile
cio’ che ci serve, ad esempio se volete trovare
una particolare stringa ascii o hex, basta
cliccare sulla lente d’ ingrandimento selezionare
Hex o string , inserire il valore da cercare ed il
gioco e’ fatto!!!
Wireshark uno squalo nella rete
Salvataggio su disco

Infine wireshark permette di salvare i dati per
conservarli, spedirli a qualcuno via mail etc etc,
basta cliccare su salva e scegliere il formato in cui
vogliamo salvare, e se vogliamo salvare tutti i dati
catturati, solo quelli selezionati, solo quelli filtrati, o
entro uno specifico range di pacchetti!
Wireshark uno squalo nella rete




Gli usi per i quali wireshark e' ottimo!!
In una rete cisco con CDP abilitato, ci fa' sapere
immediatamente su quale porta dello switch e su quale
switch siamo connessi
In una rete della quale non conosciamo niente, ci fa'
sapere quale e' il broadcast ed il gateway, quindi come
configurarci
Ci permette di recuperare le password di pop ed altri
servizi quando prima di formattare un computer ci
rendiamo conto che l' utente non le ricorda piu'!
Wireshark uno squalo nella rete
presentazione a cura di Davide Ammirata
Si ringrazia tutti coloro che hanno scritto i vari
tutorial disponibili in rete senza i quali non sarei
mai qui oggi!
e' possibile rivedere l' argomento nel sito
www.davidea.it
per contattarmi: [email protected]
Scarica

la presentazione in formato PPT