Wireshark: come catturare, ispezionare, e filtrare i pacchetti Ethernet

Wireshark sniffer ethernet

Wireshark, in precedenza noto con il termine Ethereal, è uno strumento software (liberamente utilizzabile) per la cattura, l’analisi, e l’ispezione del traffico di pacchetti Ethernet che viaggiano all’interno di una rete. In questa guida vedremo anche come sia possibile “sniffare” il traffico di rete wireless.

L’interfaccia Ethernet è oggi utilizzata non soltanto all’interno delle reti di calcolatori e personal computer, ma si sta sempre più diffondendo anche nei sistemi embedded e nei dispositivi basati su microcontrollore (un classico esempio è rappresentato dalla nota piattaforma Arduino, dotata di un apposito shield Ethernet). Wireshark permette di catturare i pacchetti Ethernet in tempo reale, e visualizzarli a video in un formato comprensibile per l’utente. Come vedremo, i diversi tipi di pacchetti sono evidenziati con colori differenti, ed è possibile applicare filtri per selezionare soltanto i pacchetti che soddisfano determinati criteri di ricerca. Wireshark è pertanto uno strumento utile per eseguire l’attività di debugging, o anche per ispezionare il traffico della rete a cui siamo connessi (se ad esempio abbiamo il sospetto di una possibile intromissione non desiderata..).

Anzitutto occorre installare sul nostro PC Wireshark. Attualmente sono disponibili versioni sia per Windows che per Mac OS X, liberamente scaricabili a questo sito. Per chi utilizza il sistema operativo Linux (in particolare la distribuzione Ubuntu), Wireshark sarà disponibile e accessibile all’interno dell’apposito repository software.

Una volta installato Wireshark, occorrerà selezionare un’interfaccia all’interno del menu: Capture->Interface List (può ovviamente trattarsi di un’interfaccia Ethernet di tipo “wired”, cioè cablata, oppure un’interfaccia Ethernet di tipo wireless, a seconda del modello di PC che stimo utilizzando). In questo modo viene attivata la cattura dei pacchetti Ethernet sull’interfaccia desiderata. Subito dopo aver attivato l’interfaccia, verrà presentata all’utente una finestra in cui vengono visualizzati i pacchetti catturati in tempo reale. Wireshark è in grado di catturare sia i pacchetti in entrata al PC (o meglio all’interfaccia di rete del PC selezionata), che quelli in uscita. E’ importante notare che, selezionando un’interfaccia di rete wireless e impostando la modalità “promiscua” tra le opzioni di cattura, è possibile catturare anche i pacchetti che provengono da altri dispositivi (in pratica, è così possibile “sniffare” il traffico presente sulla rete wireless). La schermata che si presenterà sarà simile alla seguente:

Per interrompere la cattura dei pacchetti sarà sufficiente selezionare sul menu principale: Capture->Stop (oppure, in alternativa, cliccare sull’iconcina con la croce bianca su sfondo rosso, la quarta da sinistra). Le informazioni acquisite verranno mantenute e sarà poi possibile memorizzarle in un file oppure eliminarle iniziando una nuova acquisizione. Come si può subito notare osservando la schermata di cattura, i pacchetti sono colorati in modo differente a seconda del loro tipo. Di default, Wireshark visualizza in verde i pacchetti appartenenti al traffico TCP, in blu scuro il traffico DNS, in azzurro il traffico UDP, e in nero i pacchetti TCP che hanno riscontrato dei problemi (ad esempio pacchetti trasmessi in out-of-order, oppure pacchetti che hanno dovuto subire una ritrasmissione). La seguente immagine, riferita a una sessione di accesso via browser al sito di Elettronica Open Source, mostra alcune di queste colorazioni:

Poichè il volume e la tipologia di pacchetti catturati può diventare importante, è utile avere a disposizione uno strumento con cui sia possibile selezionare soltanto specifici pacchetti, quelli a cui siamo particolarmente interessati. Ciò è possibile utilizzando la funzione filtro di Wireshark. Il modo più immediato per impostare un filtro è quello di scriverlo direttamente nella finestrella “Filter:” visibile subito sotto la barra dei menu, premendo poi il tasto Invio oppure Apply (alla destra della finestrella). Le seguenti due immagini si riferiscono a due esempi di filtro: nel primo caso si sono voluti selezionare tutti i pacchetti relativi al traffico DNS (digitando “dns” direttamente nella finestrella Filter), mentre nel secondo caso si sono voluti selezionare tutti i pacchetti che si reiferiscono all’indirizzo IP 192.168.0.1 (in questo caso il filtro è stato selezionato accedendo alla voce di menu Analyze->Display filters):

Un’altra importante funzionalità di Wireshark è la seguente: si seleziona un pacchetto tra quelli catturati, e, premendo il tasto destro del mouse, si seleziona la voce di menu “Follow TCP Stream”. Quello che si ottiene è una nuova finestra nella quale viene visualizzata tutta la conversazione (cioè lo scambio di messaggio su interfaccia Ethernet) tra il client e il server (si veda l’immagine seguente). Chiudendo poi questa finestra, si potrà osservere che Wireshark ha applicato automaticamente un filtro, proprio quello che permette di selezionare soltanto i pacchetti di quella conversazione.

Per ispezionare il contenuto di un pacchetto, è sufficiente selezionarlo cliccandoci sopra: il suo contenuto sarà visibile nel riquadro nella parte bassa dello schermo. Mentre si sta ispezionando il contenuto di un determinato pacchetto, è anche possibile applicare contestualmente un nuovo filtro. Per fare ciò, è sufficiente cliccare con il tasto destro del mouse, e premere la voce di menu “Apply as Filter”. Si hanno a questo punto a disposizione diverse opzioni, con cui è possibile creare un filtro basato sulla parte selezionata, oppure su quella non selezionata, oppure su altre opzioni ancora. Si veda al proposito un esempio nell’immagine seguente:

Wireshark è uno strumento di analisi del traffico Ethernet molto potente e versatile, grazie anche al supporto per plug-in relativi a differenti tipi di protocollo. Qui si è voluta dare solo una panoramica di alto livello del tool, ma le sue potenzionalità e caratteristiche sono molto più estese e versatili. Ricordiamo inoltre che è possibile, oltre che interessante, analizzare dei pacchetti di esempio riferiti a diversi tipi di protocolli comuni. Per fare ciò è sufficiente accedere a questa pagina web di Wireshark in cui sono riportati numerosissimi esempi di casi reali.

16 Comments

  1. Piero Boccadoro Piero Boccadoro 25 ottobre 2012
  2. Emanuele 25 ottobre 2012
  3. Emanuele 25 ottobre 2012
  4. Stefano Sivera 22 gennaio 2013
  5. Piero Boccadoro Piero Boccadoro 25 ottobre 2012
  6. Piero Boccadoro Piero Boccadoro 25 ottobre 2012
  7. Piero Boccadoro Piero Boccadoro 25 ottobre 2012
  8. Piero Boccadoro Piero Boccadoro 26 ottobre 2012
  9. slovati slovati 17 febbraio 2013
  10. Piero Boccadoro Piero Boccadoro 18 febbraio 2013
  11. Emanuele 18 febbraio 2013
  12. Stefano Sivera 18 febbraio 2013
  13. testato 15 febbraio 2013
  14. slovati slovati 15 febbraio 2013
  15. testato 15 febbraio 2013
  16. testato 16 febbraio 2013

Leave a Reply