Paket-Sniffing mit Extcap

Quellcode auf GitHub ansehen

In diesem Leitfaden erfahren Sie, wie Sie extcap für Wireshark konfigurieren, um Pakete aus einem Thread-Netzwerk zu sniffen.

Informationen zur Verwendung von Pyspinel für das Paket-Sniffen ohne extcap finden Sie unter Paket-Sniffen mit Pyspinel.

Sniffer-Umgebung einrichten

Führen Sie zuerst die folgenden Schritte aus:

Überprüfung

Diese Anleitung wurde mit dem Zolertia Firefly (Texas Instruments CC2538 SoC) auf den folgenden Hostsystemen geprü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

Sniffer erstellen und flashen

Die Anleitung zum Erstellen und Flashen variiert je nach Plattform.

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

Allgemeine Anleitungen zum Erstellen finden Sie unter OpenThread erstellen.

Sniffer verwenden

Der Wireshark-Aufnahmebildschirm wird angezeigt, wenn Wireshark zum ersten Mal gestartet wird. Es sollten Hardwareschnittstellen aufgeführt sein, die mit einem OpenThread-Sniffer verbunden sind.

Daten über eine einzige Oberfläche erfassen

Wenn Sie eine Benutzeroberfläche zum ersten Mal verwenden, klicken Sie links neben der Benutzeroberfläche auf die Schaltfläche Optionen:

OT Sniffer Wireshark Extcap Capture

  1. Legen Sie für Channel den gewünschten Wert fest.
  2. Aktivieren Sie IEEE 802.15.4 TAP, damit die Kanalinformationen in der pcap-Ausgabe enthalten sind und in der Wireshark-GUI angezeigt werden können.
  3. Aktivieren Sie die Option Parameter beim Start der Aufnahme speichern, damit diese Parameter nach Beginn der Aufnahme gespeichert werden. So müssen Sie sie nicht bei der nächsten Verwendung der Benutzeroberfläche neu festlegen, es sei denn, Sie müssen den Kanal wechseln.
  4. Klicken Sie auf Start.

OT Sniffer Wireshark Extcap Options

Wenn Ihre Parameter bereits gespeichert sind, beginnen Sie mit dem Analysieren, indem Sie die Hardwareschnittstelle auswählen und links oben auf das Wireshark-Symbol klicken.

Daten von mehreren Schnittstellen erfassen

Wählen Sie alle Hardwareschnittstellen aus, die auf dem Erfassungsbildschirm aufgeführt sind, und klicken Sie oben links auf das Wireshark-Symbol.

Verwenden Sie diese Felder, um einzelne Sniffer zu identifizieren, wenn Sie von mehreren Schnittstellen erfassen:

  • Schnittstellen-ID (frame.interface_id): Schnittstellen-ID, die von Wireshark zur Identifizierung einer Erfassungsschnittstelle verwendet wird
  • Schnittstellenname (frame.interface_name): Schnittstellenname, der von Wireshark zur Identifizierung einer Erfassungsschnittstelle verwendet wird
  • Channel (wpan-tap.ch_num): IEEE 802.15.4-Aufnahmekanal (Bereich: 11–26)

OT Sniffer Wireshark Extcap-Pakete

Fehlerbehebung

Der OpenThread-Sniffer wird nicht als Wireshark-Oberfläche aufgeführt

  1. Wenn mehrere Python-Interpreter installiert sind, muss das extcap-Script den Python 3-Interpreter verwenden. Pyspinel unterstützt Python 2 nicht.
  2. Prüfen Sie, ob die Hardware über USB aufgezählt und die Treiber geladen werden.
  3. Prüfen Sie, ob die richtige Firmware (NCP oder RCP) auf die Hardware geflasht wurde.
  4. Prüfen Sie, ob das Python-Script 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 Benutzeroberfläche aufgeführt ist:
        extcap_ot.py --extcap-interfaces
        
    • Für Windows
      1. Prüfen Sie, ob die Benutzeroberfläche aufgeführt ist:
        extcap_ot.bat --extcap-interfaces
        
      2. Wenn dies mit einem Python-Fehler endet, prüfen Sie, ob die Python-Version 3.x ist:
        py -3 --version
        

Wireshark erlaubt nur dem Root-Nutzer, Pakete zu erfassen

Während der Installation von Wireshark unter 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 nur dem Nutzer root, Pakete zu erfassen.

Die Verwendung von Wireshark als root-Nutzer wird dringend abgeraten. 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 ist, 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 anzuwenden.

Wireshark-Formatfehler beim Erfassen auf mehreren USB-Schnittstellen unter Windows

Dies ist ein bekanntes Problem bei einigen alten Wireshark-Versionen. Sie müssen Wireshark 3.0.6 oder höher verwenden.