Sniffing dei pacchetti con Extcap

Visualizza il codice sorgente su GitHub

Questa guida illustra come configurare extcap per Wireshark in modo da sniffare i pacchetti da una rete Thread.

Per utilizzare Pyspinel per lo sniffing dei pacchetti senza extcap, consulta Sniffing dei pacchetti con Pyspinel.

Configura l'ambiente dello sniffer

Prima di iniziare, completa i seguenti passaggi:

Verifica

Questa guida è stata verificata con Zolertia Firefly (Texas Instruments CC2538 SoC) sui seguenti sistemi host:

  • Debian 4.19.37 - Wireshark 3.0.4
  • macOS Mojave 10.14.6 - Wireshark 3.0.5
  • Windows 10 a 64 bit, versione 17134 - Wireshark 3.0.6

Crea e esegui il flashing dello sniffer

Le istruzioni per la compilazione e il flashing variano in base alla piattaforma.

Per le istruzioni su come compilare e eseguire il flashing del CC2538, consulta il file README dell'esempio CC2538 su GitHub.

Per istruzioni generali sulla compilazione, consulta Come compilare OpenThread.

Utilizzare lo sniffer

La schermata di acquisizione di Wireshark viene visualizzata alla prima esecuzione di Wireshark. Deve elencare le interfacce hardware collegate a uno sniffer OpenThread.

Acquisisci da un'unica interfaccia

Se è la prima volta che utilizzi un'interfaccia, fai clic sul pulsante Opzioni a sinistra dell'interfaccia:

OT Sniffer Wireshark Extcap Capture

  1. Imposta Canale sul valore desiderato.
  2. Seleziona IEEE 802.15.4 TAP per assicurarti che le informazioni sul canale siano incluse nell'output pcap e possano essere visualizzate nella GUI di Wireshark.
  3. Seleziona Salva parametri all'avvio della cattura per assicurarti che questi parametri vengano salvati dopo l'avvio della cattura, in modo da non doverli impostare di nuovo la volta successiva che utilizzi l'interfaccia (a meno che non debba cambiare canale).
  4. Fai clic su Avvia.

Opzioni Extcap di Wireshark per sniffer OT

Se i parametri sono già salvati, avvia lo sniffing selezionando l'interfaccia hardware e facendo clic sull'icona di Wireshark in alto a sinistra.

Acquisisci da più interfacce

Seleziona tutte le interfacce hardware elencate nella schermata di acquisizione e fai clic sull'icona di Wireshark in alto a sinistra.

Utilizza questi campi per identificare i singoli sniffer durante l'acquisizione da più interfacce:

  • ID interfaccia (frame.interface_id): identificatore di interfaccia utilizzato da Wireshark per identificare un'interfaccia di acquisizione
  • Nome interfaccia (frame.interface_name): il nome dell'interfaccia utilizzato da Wireshark per identificare un'interfaccia di acquisizione
  • Canale (wpan-tap.ch_num): canale di acquisizione IEEE 802.15.4 (intervallo: 11-26)

Pacchetti Extcap di Wireshark per sniffer OT

Risoluzione dei problemi

Lo sniffer OpenThread non è elencato come interfaccia Wireshark

  1. Se hai installato più interpreti Python, assicurati che lo script extcap utilizzi l'interprete Python 3. Pyspinel non supporta Python 2.
  2. Controlla se l'hardware è elencato su USB e se i driver sono caricati.
  3. Verifica che il firmware corretto (NCP o RCP) sia stato caricato nell'hardware.
  4. Verifica che lo script Python nel percorso extcap sia eseguibile.
    • Per OS X e Linux:
      1. Verifica che l'autorizzazione di esecuzione sia presente per il file extcap_ot.py:
        ls -l extcap_ot.py
        
      2. Se l'autorizzazione di esecuzione (x) non è presente, modifica le autorizzazioni:
        chmod +x extcap_ot.py
        
      3. Verifica che l'interfaccia sia elencata:
        extcap_ot.py --extcap-interfaces
        
    • Per Windows:
      1. Verifica che l'interfaccia sia elencata:
        extcap_ot.bat --extcap-interfaces
        
      2. Se esce con un errore di Python, verifica che la versione di Python sia 3.x:
        py -3 --version
        

Wireshark consente solo all'utente root di acquisire i pacchetti

Durante l'installazione di Wireshark su Ubuntu, all'utente verrà chiesto di scegliere una delle seguenti opzioni:

  1. Crea il gruppo di utenti wireshark e consenti a tutti i membri di quel gruppo di acquisire i pacchetti.
  2. Consenti solo all'utente root di acquisire i pacchetti.

L'utilizzo di Wireshark come utente root è vivamente sconsigliato. Se hai scelto questa opzione, modifica l'impostazione:

sudo dpkg-reconfigure wireshark-common

Se Wireshark è stato configurato per limitare la cattura ai membri del gruppowireshark, potrebbe essere necessario aggiungere l'utente corretto al gruppo:

sudo usermod -a -G wireshark user

Aggiungi anche l'utente corretto al gruppo dialout:

sudo usermod -a -G dialout user

Chiudi e riavvia Wireshark per applicare le nuove impostazioni del gruppo di utenti.

Errore di formato di Wireshark durante l'acquisizione su più interfacce USB su Windows

Si tratta di un problema noto per alcune versioni precedenti di Wireshark. Assicurati di utilizzare Wireshark 3.0.6 o versioni successive.