wireshark (packet sniffer) - cremona.polimi.it wireshark (packet sniffer) introduzione in computing,...

5
Wireshark (packet sniffer) 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. Carlo Todeschini – [email protected] Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2008-2009 – v. 1.4 1

Upload: lyhanh

Post on 05-Jul-2018

230 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Wireshark (packet sniffer) - cremona.polimi.it Wireshark (packet sniffer) Introduzione In computing, Wireshark (ex Ethereal) is a protocol analyzer, or "packet sniffer" application,

Wireshark (packet sniffer)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.

Carlo Todeschini – [email protected] Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2008­2009 – v. 1.4

1

Page 2: Wireshark (packet sniffer) - cremona.polimi.it Wireshark (packet sniffer) Introduzione In computing, Wireshark (ex Ethereal) is a protocol analyzer, or "packet sniffer" application,

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

Carlo Todeschini – [email protected] Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2008­2009 – v. 1.4

2

Page 3: Wireshark (packet sniffer) - cremona.polimi.it Wireshark (packet sniffer) Introduzione In computing, Wireshark (ex Ethereal) is a protocol analyzer, or "packet sniffer" application,

schermo vengono riportate le codifiche esadecimali e ASCII della parte i pacchetto evidenziata nell'area appena sopra.

Esercizio 1Lanciare 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

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).

Carlo Todeschini – [email protected] Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2008­2009 – v. 1.4

3

Total Length(16 bits)

Identification (16 bits)

Header Checksum (16 bits)Time to Live

(8 bits)

Flags (3)Protocol (8 bits)

1=ICMP, 6=TCP,17=UDPSource IP Address (32 bits)

Fragment Offset (13 bits)

TOS(8 bits)

HeaderLength(4 bits)

Version(4 bits)

Destination IP Address (32 bits)Options (if any) Padding

Data Field

0100

20 byte20 byte

11 8 16 19 24 32 8 16 19 24 32

Page 4: Wireshark (packet sniffer) - cremona.polimi.it Wireshark (packet sniffer) Introduzione In computing, Wireshark (ex Ethereal) is a protocol analyzer, or "packet sniffer" application,

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

Carlo Todeschini – [email protected] Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2008­2009 – v. 1.4

4

Page 5: Wireshark (packet sniffer) - cremona.polimi.it Wireshark (packet sniffer) Introduzione In computing, Wireshark (ex Ethereal) is a protocol analyzer, or "packet sniffer" application,

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>

AttenzioneI 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

➢ Wiresharkhttp://www.wireshark.org/

➢ Filtri per la cattura:http://wiki.wireshark.org/CaptureFilters

➢ Filtri per la visualizzazione:http://wiki.wireshark.org/DisplayFilters

➢ Manuale utente:v. sito ufficiale e sito docente

Carlo Todeschini – [email protected] Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2008­2009 – v. 1.4

5