You are on page 1of 5

Wireshark (packet sniffer)

Introduzione

In computing, Wireshark (ex Ethereal) is a protocol analyzer, or "packet sniffer" application, used
for network troubleshooting, analysis, software and protocol development, and education. It has all
of the standard features of a protocol analyzer.

The functionality Wireshark provides is very similar to tcpdump (c.f.), but it has a GUI front-end,
and many more information sorting and filtering options. It allows the user to see all traffic being
passed over the network (usually an Ethernet network but support is being added for others) by
putting the network card into promiscuous mode.

Wireshark is released under an open source license, and it runs on most Unix and Unix-compatible
systems, including Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X and Windows, as it
uses the cross-platform GTK+ widget toolkit (although GTK+ only works with X11 on Mac OS X,
so the user will need to run an X server such as X11.app).

Wireshark is software that "understands" the structure of different network protocols. Thus it's able
to display encapsulation and single fields and interpret their meaning. Ethereal doesn't have its own
code to capture packets. It uses libpcap/WinPcap for this task, so it can only capture on networks
supported by libcap/WinPcap.

Fonte: Wikipedia

Nota: nelle versioni di Knoppix precedenti a quella utilizzata nei laboratori il software da utilizzare
Ethereal mentre nelle versioni pi recenti questo ha cambiato nome in Wireshark

Utilizzo

E' possibile lanciare l'esecuzione di Wireshark sia tramite menu (K >> Internet >> Wireshark (as
root)) che tramite console (scrivere nella shell wireshark, tutto in minuscolo, e premere invio). Si
ricorda che il programma Wireshark, per essere completamente operativo, va lanciato come utente
root, vista la necessit che ha il software di settare la scheda ethernet in modalit promiscua,
condizione necessaria per effettuare lo sniffing dei pacchetti.

CarloTodeschinitode@cremona.polimi.it 1
RetidiComunicazioneeInternetPolitecnicodiMilanosedediCremonaA.A.20082009v.1.4
Fig. 1: La schermata di Wireshark

Appena sotto la barra dei menu presentata una serie di icone che permettono di accedere alle
funzionalit pi utili. La prima icona apre una nuova finestra che visualizza le interfacce dalle quali
possibile catturare il traffico. Oltre all'interfaccia eth0 e al loopback selezionabili singolarmente,
possibile catturare il traffico di entrambi i device contemporaneamente.
Cliccando sul pulsante Options possibile accedere ai settaggi relativi alla cattura che si intende
eseguire.
Si selezioni quindi di configurare la cattura per l'interfaccia eth0.
Tramite le opzioni in Display options possibile settare la visualizzazione in tempo reale dei
pacchetti catturati (evita di aspettare la fine della cattura per analizzare i pacchetti); dalle opzioni in
Name resolution possibile rendere pi leggibile i dati catturati a livello di identificazione dei
mac address e degli IP address.
E' possibile fermare in ogni momento la cattura dei pacchetti cliccando sull'apposito pulsante
Stop (Ferma).

La finestra principale di Wireshark viene suddivisa orizzontalmente in tre parti principali; nella
parte pi in alto vengono elencati i frame fino a quel momento catturati dal programma, riportando
le informazioni principali che lo contraddistinguono (indirizzo IP sorgente e destinazione, tipo di
protocollo). Subito sotto, una volta evidenziato con il mouse un frame particolare, vengono riportati
i dettagli del frame che si intende esaminare; in base al tipo di pacchetto vengono interpretati e
visualizzati una serie di dati riguadanti il contenuto del pacchetto stesso. Nell'ultima parte dello

CarloTodeschinitode@cremona.polimi.it 2
RetidiComunicazioneeInternetPolitecnicodiMilanosedediCremonaA.A.20082009v.1.4
schermo vengono riportate le codifiche esadecimali e ASCII della parte i pacchetto evidenziata
nell'area appena sopra.

Esercizio 1
Lanciare la cattura di traffico sulla interfaccia eth0 (ad esempio mentre si naviga in rete) e analizzare
un pacchetto tra quelli catturati:
verificare che a livello ethernet vengono specificati in modo corretto i MAC address relativi
alle due schede di rete in comunicazione tra loro
verificare la corrispondenza dei campi del pacchetto a livello IP con quanto riportato nella
figura che segue

0100
1 8 16 19 24 32

Header
Version TOS Total Length
Length
(4 bits) (8 bits) (16 bits)
(4 bits)
Identification (16 bits) Flags (3) Fragment Offset (13 bits)
Protocol (8 bits) 20 byte
Time to Live
1=ICMP, 6=TCP, Header Checksum (16 bits)
(8 bits)
17=UDP
Source IP Address (32 bits)
Destination IP Address (32 bits)
Options (if any) Padding
Data Field

Fig. 2: La trama di un pacchetto IP

Esercizio 2

Nel pacchetto catturato identificare il parametro relativo al TTL.

In Wireshark possibile creare dei filtri di cattura che restringono il numero dei pacchetti catturati
in base a vari parametri. E' necessario, per impostarli, utilizzare la schermata che compare prima di
iniziare ogni cattura ed in particolare la voce Capture filter (v. Fig. 3).

CarloTodeschinitode@cremona.polimi.it 3
RetidiComunicazioneeInternetPolitecnicodiMilanosedediCremonaA.A.20082009v.1.4
Fig. 3: Impostazione dei filtri di cattura in Wireshark

Ad esempio:

per catturare il traffico in/out verso un dato host:

host <IP>

per catturare il traffico destinato solo ad un certo IP:

dst host <IP>

per catturare il traffico per una certa porta:

port <PORT_#>

per catturare solo traffico ICMP:

ip proto \icmp

CarloTodeschinitode@cremona.polimi.it 4
RetidiComunicazioneeInternetPolitecnicodiMilanosedediCremonaA.A.20082009v.1.4
E' anche possibile, alla fine della cattura, stabilire dei filtri di visualizzazione nella toolbar Filter.
I filtri vanno impostati alla fine della cattura, nella schermata principale alla voce Filter:

per visualizzare solo il traffico web:

tcp.port eq 80

per visualizzare solo il traffico relativo ai protocolli HTTP e ARP:

HTTP || ARP

per visualizzare solo il traffico tra due particolari host:

ip.src == <SRC_HOST> or ip.dst == <DST_HOST>

Attenzione
I filtri di cattura intervengono durante la cattura del traffico di rete mentre i filtri di
visualizzazione sono utilizzati per visualizzare porzioni di traffico di interesse una volta che le
informazioni sono state acquisite.
La sintassi dei due tipi di filtri differente!

Esercizio 3

Eseguire delle catture con filtri sia per traffico destinato a un host della rete LAN interna sia per
traffico destinato alla rete Internet esterna.

Esercizio 4

Spiegare per quale motivo non possibile sniffare tutto il traffico generato da altri host (a meno che
il traffico sia tra l'host su cui gira Wireshark e l'host che si vuole monitorare oppure si tratti di
traffico di tipo broadcast)
Hint: http://en.wikipedia.org/wiki/Network_switch#Layer-1_hubs_versus_higher-layer_switches

Approfondimenti

Wireshark
http://www.wireshark.org/
Filtriperlacattura:
http://wiki.wireshark.org/CaptureFilters
Filtriperlavisualizzazione:
http://wiki.wireshark.org/DisplayFilters
Manualeutente:
v.sitoufficialeesitodocente

CarloTodeschinitode@cremona.polimi.it 5
RetidiComunicazioneeInternetPolitecnicodiMilanosedediCremonaA.A.20082009v.1.4