Wireshark (packet sniffer) - Cremona

Transcript

Wireshark (packet sniffer) - Cremona
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. 2010-2011 – v. 1.5
1
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 riguardanti 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. 2010-2011 – v. 1.5
2
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
Version
(4 bits)
Header
length
(4 bits)
16
TOS
(8 bits)
24
32
Total Length
(16 bits)
Identification (16 bits)
Time to Live
(8 bits)
19
Flags (3) Fragment Offset (13 bits)
Protocol (8 bits)
1=ICMP, 6=TCP,
17=UDP
Header Checksum (16 bits)
Source IP Address (32 bits)
Destination IP Address (32 bits)
Options (if any)
20 byte
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).
Carlo Todeschini – [email protected]
Reti di Comunicazione e Internet – Politecnico di Milano sede di Cremona – A.A. 2010-2011 – v. 1.5
3
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 determinato IP:
dst host <IP>
➢
per catturare il traffico per una determinata 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. 2010-2011 – v. 1.5
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/
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. 2010-2011 – v. 1.5
5

Documenti analoghi

slides - Linux Day Torino

slides  - Linux Day Torino  i pacchetti che ricadono nel filtro vengono passati all'applicazione chiamante, gli altri non vengono neanche trattati  poca espressività semantica  alta velocità  semplici da impostare fino a...

Dettagli

Network Tools in Linux

Network Tools in Linux performance di una rete •  Consente di misurare la massima larghezza di banda utilizzata in connessioni di tipo TCP o UDP, attraverso la modulazione di vari parametri. Fornisce in uscita dei rappor...

Dettagli

Protocollo SMTP - Cremona

Protocollo SMTP - Cremona allowing it can be a security hole. VRFY commands can be used to probe for login names on a system. See the security section below for information about turning off this feature. EXPN aliasname EXP...

Dettagli