Przechwytywanie pakietów za pomocą ExtCap

Wyświetl źródło w GitHubie

Z tego przewodnika dowiesz się, jak skonfigurować extcap w Wireshark, aby przechwytywać pakiety z sieci Thread.

Aby używać Pyspinel do skanowania pakietów bez extcap, zapoznaj się z artykułem Skanowanie pakietów za pomocą Pyspinel.

Konfigurowanie środowiska sniffera

Zanim zaczniesz, wykonaj te czynności:

Weryfikacja

Ten przewodnik został zweryfikowany w przypadku modułu Zolertia Firefly (kontroler SoC CC2538 firmy Texas Instruments) w ramach tych systemów hosta:

  • Debian 4.19.37 – Wireshark 3.0.4
  • macOS Mojave 10.14.6 – Wireshark 3.0.5
  • 64-bitowa wersja Windows 10 (17134) – Wireshark 3.0.6

Tworzenie i flashowanie sniffera

Instrukcje kompilacji i flashowania różnią się w zależności od platformy.

Instrukcje tworzenia i flashowania modułu CC2538 znajdziesz w pliku CC2538 przykład README na GitHubie.

Ogólne instrukcje kompilacji znajdziesz w artykule Jak skompilować OpenThread.

Używanie sniffera

Po pierwszym uruchomieniu Wiresharka wyświetla się ekran przechwytywania Wiresharka. powinna zawierać listę interfejsów sprzętowych połączonych z snifferem OpenThread.

Przechwytywanie w jednym interfejsie

Jeśli po raz pierwszy korzystasz z interfejsu, po lewej stronie kliknij przycisk Opcje:

OT Sniffer Wireshark Extcap Capture

  1. Ustaw Kanał na odpowiednią wartość.
  2. Sprawdź IEEE 802.15.4 TAP, aby upewnić się, że informacje o kanale są uwzględnione w danych wyjściowych pcap i mogą być wyświetlane w interfejsie graficznym Wireshark.
  3. Zaznacz pole wyboru Zapisz parametry po rozpoczęciu rejestrowania, aby parametry były zapisywane po rozpoczęciu rejestrowania. Dzięki temu nie będziesz musiał ich ponownie ustawiać przy następnym użyciu interfejsu (chyba że musisz zmienić kanał).
  4. Kliknij Start.

Opcje Wiresharka w OT Sniffer

Jeśli parametry są już zapisane, rozpocznij skanowanie, wybierając interfejs sprzętowy i klikając ikonę Wiresharka w lewym górnym rogu.

Przechwytywanie z wielu interfejsów

Wybierz wszystkie interfejsy sprzętowe wymienione na ekranie przechwytywania i w lewym górnym rogu kliknij ikonę Wireshark.

Aby identyfikować poszczególne sniffery podczas przechwytywania z wielu interfejsów, użyj tych pól:

  • Identyfikator interfejsu (frame.interface_id) – identyfikator interfejsu używany przez Wireshark do identyfikowania interfejsu przechwytywania.
  • Nazwa interfejsu (frame.interface_name) – nazwa interfejsu używana przez Wireshark do identyfikacji interfejsu przechwytywania.
  • Kanał (wpan-tap.ch_num) – kanał rejestrowania IEEE 802.15.4 (zakres: 11–26)

Pakiety OT Sniffer Wireshark Extcap

Rozwiązywanie problemów

Sniffing OpenThread nie jest widoczny jako interfejs Wireshark

  1. Jeśli masz zainstalowane kilka interpreterów Pythona, sprawdź, czy skrypt extcap używa interpretera Python 3. Pyspinel nie obsługuje Pythona 2.
  2. Sprawdź, czy sprzęt jest wyliczany przez USB i czy sterowniki są wczytane.
  3. Sprawdź, czy na sprzęcie został wgrany odpowiedni firmware (NCP lub RCP).
  4. Sprawdź, czy skrypt Pythona znajdujący się na ścieżce extcap jest skompilowany.
    • W przypadku OS X i Linux:
      1. Sprawdź, czy uprawnienie do wykonania jest obecne w pliku extcap_ot.py:
        ls -l extcap_ot.py
        
      2. Jeśli brakuje uprawnienia wykonywania (x), zmień uprawnienia:
        chmod +x extcap_ot.py
        
      3. Sprawdź, czy interfejs jest wyświetlany:
        extcap_ot.py --extcap-interfaces
        
    • Windows:
      1. Sprawdź, czy interfejs jest wyświetlany:
        extcap_ot.bat --extcap-interfaces
        
      2. Jeśli pojawi się błąd Pythona, sprawdź, czy jest to wersja 3.x:
        py -3 --version
        

Wireshark pozwala przechwytywać pakiety tylko użytkownikowi root.

Podczas instalacji Wiresharka w Ubuntu użytkownik zobaczy prośbę o wybranie jednej z tych opcji:

  1. Utwórz grupę użytkowników wireshark i zezwól wszystkim jej członkom na przechwytywanie pakietów.
  2. Zezwalaj na przechwytywanie pakietów tylko użytkownikowi root.

Nie zalecamy używania Wiresharka jako użytkownika root. Jeśli wybierzesz tę opcję, zmień ustawienie:

sudo dpkg-reconfigure wireshark-common

Jeśli Wireshark został skonfigurowany tak, aby ograniczyć przechwytywanie do członków grupy wireshark, konieczne może być dodanie odpowiedniego użytkownika do grupy:

sudo usermod -a -G wireshark user

Dodaj też prawidłowego użytkownika do grupy dialout:

sudo usermod -a -G dialout user

Aby zastosować nowe ustawienia grupy użytkowników, zamknij i ponownie uruchom Wireshark.

Błąd formatu Wireshark podczas przechwytywania na wielu interfejsach USB w systemie Windows

Jest to znany problem w przypadku niektórych starszych wersji Wireshark. Upewnij się, że używasz Wiresharka w wersji 3.0.6 lub nowszej.