Paket-Sniffing mit Extcap

Quelle auf GitHub ansehen

In diesem Leitfaden wird beschrieben, wie Wireshark so konfiguriert wird, dass Wireshark Pakete aus einem Thread-Netzwerk ausfindig machen kann.

Weitere Informationen zur Verwendung von Pyspinel für das Paket-Sniffing ohne Erweiterung finden Sie unter Paket-Sniffing mit Pyspinel.

Sniffer-Umgebung einrichten

Führen Sie zuerst die folgenden Schritte aus:

Bestätigung

Dieser Leitfaden wurde vom Zolertia Firefly (Texas Instruments CC2538 SoC) auf den folgenden Hostsystemen überprüft:

  • Debian 4.19.37 – Wireshark 3.0.4
  • macOS Mojave 10.14.6 – Wireshark 3.0.5
  • 64-Bit Windows 10 Version 17134 – Wireshark 3.0.6

Den Sniffer bauen und blinken lassen

Build- und Flash-Anweisungen variieren je nach Plattform.

Eine Anleitung zum Erstellen und Flashen der CC2538 finden Sie in der CC2538-Beispiel-README-Datei auf GitHub.

Allgemeine Build-Anweisungen finden Sie unter OpenThread erstellen.

Sniffer verwenden

Der Bildschirm zur Erfassung von Wireshark wird angezeigt, wenn Wireshark zum ersten Mal gestartet wird. Sie sollten Hardwareschnittstellen auflisten, die mit einem OpenThread-Sniffer verbunden sind.

Aufnahmen über eine einzige Benutzeroberfläche erstellen

Wenn Sie die Oberfläche zum ersten Mal verwenden, klicken Sie links neben dieser auf die Schaltfläche Optionen:

OT Sniffer Wireshark Extcap-Aufnahme

  1. Legen Sie für Channel den gewünschten Wert fest.
  2. Prüfen Sie IEEE 802.15.4 TAP, um sicherzustellen, dass die Kanalinformationen in der pcap-Ausgabe enthalten sind und in der Wireshark-GUI angezeigt werden können.
  3. Klicken Sie das Kästchen Parameter zu Beginn der Erfassung speichern an, damit diese Parameter nach dem Start der Erfassung gespeichert werden. So müssen Sie die Parameter bei der nächsten Verwendung der Schnittstelle nicht noch einmal festlegen, es sei denn, Sie müssen den Kanal ändern.
  4. Klicken Sie auf Starten.

OT Sniffer Wireshark Extcap-Optionen

Wenn deine Parameter bereits gespeichert sind, kannst du mit dem Sniffing beginnen, indem du die Hardwareschnittstelle auswählst und oben links auf das Wireshark-Symbol klickst.

Aufnahmen über mehrere Schnittstellen erstellen

Wählen Sie alle Hardwareschnittstellen aus, die auf dem Erfassungsbildschirm angezeigt werden, und klicken Sie oben links auf das Wireshark-Symbol.

Verwenden Sie die folgenden Felder, um einzelne Sniffers beim Erfassen über mehrere Schnittstellen zu identifizieren:

  • Interface ID (Schnittstelles-ID) (frame.schnittstellen_id) – Schnittstellenkennung, die von Wireshark zur Identifizierung einer Erfassungsschnittstelle verwendet wird.
  • Schnittstellenname (frame.schnittstellenname) – Schnittstellenname, der von Wireshark zur Identifizierung einer Erfassungsschnittstelle verwendet wird.
  • Kanal (wpan-tap.ch_num) – Erfassungskanal IEEE 802.15.4 (Bereich: 11–26)

OT Sniffer Wireshark Extcap-Pakete

Fehlerbehebung

Der OpenThread-Sniffer wird nicht als Wireshark-Schnittstelle aufgeführt

  1. Wenn Sie mehrere Python-Interpreter installiert haben, achten Sie darauf, dass der Python 3-Interpreter vom extcap-Skript verwendet wird. Pyspinel unterstützt Python 2 nicht.
  2. Prüfen Sie, ob die Hardware über USB auflistet und die Treiber geladen sind.
  3. Prüfen Sie, ob die richtige Firmware (NCP oder RCP) auf die Hardware geladen wurde.
  4. Prüfen Sie, ob das Python-Skript im extcap-Pfad ausführbar ist.
    • Für OS X und Linux:
      1. Prüfen Sie, ob die Ausführungsberechtigung für die Datei extcap_ot.py vorhanden ist:
        ls -l extcap_ot.py
        
      2. Wenn die Berechtigung „Ausführen“ (x) fehlt, ändern Sie die Berechtigungen:
        chmod +x extcap_ot.py
        
      3. Prüfen Sie, ob die Schnittstelle aufgeführt ist:
        extcap_ot.py --extcap-interfaces
        
    • Für Windows:
      1. Prüfen Sie, ob die Schnittstelle aufgeführt ist:
        extcap_ot.bat --extcap-interfaces
        
      2. Wenn dies mit einem Python-Fehler beendet wird, prüfen Sie, ob die Python-Version 3.x ist:
        py -3 --version
        

Wireshark erlaubt dem Root-Nutzer nur, Pakete zu erfassen

Während der Wireshark-Installation auf Ubuntu wird der Nutzer aufgefordert, eine der folgenden Optionen auszuwählen:

  1. Erstellen Sie die Nutzergruppe wireshark und erlauben Sie allen Mitgliedern dieser Gruppe, Pakete zu erfassen.
  2. Erlauben Sie dem Nutzer root nur, Pakete zu erfassen.

Es wird dringend davon abgeraten, Wireshark als root-Nutzer zu verwenden. Wenn Sie diese Option ausgewählt haben, ändern Sie die Einstellung:

sudo dpkg-reconfigure wireshark-common

Wenn Wireshark so konfiguriert wurde, dass die Erfassung auf Mitglieder der Gruppe wireshark beschränkt wird, müssen Sie der Gruppe möglicherweise den richtigen Nutzer hinzufügen:

sudo usermod -a -G wireshark user

Fügen Sie der Gruppe dialout auch den richtigen Nutzer hinzu:

sudo usermod -a -G dialout user

Schließen Sie Wireshark und starten Sie es neu, um die neuen Einstellungen für die Nutzergruppe zu übernehmen.

Fehler im Wireshark-Format bei der Erfassung über mehrere USB-Schnittstellen unter Windows

Dies ist ein bekanntes Problem bei einigen älteren Versionen von Wireshark. Achten Sie darauf, dass Sie Wireshark 3.0.6 oder höher verwenden.