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:
- Zapoznaj się z wymaganiami dotyczącymi przechwytywania pakietów.
- Zainstaluj i skonfiguruj Wireshark.
- Zainstaluj Pyspinel i zależne od niego pakiety za pomocą extcap.
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:
- Ustaw Kanał na odpowiednią wartość.
- 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.
- 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ł).
- Kliknij Start.
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)
Rozwiązywanie problemów
Sniffing OpenThread nie jest widoczny jako interfejs Wireshark
- Jeśli masz zainstalowane kilka interpreterów Pythona, sprawdź, czy skrypt extcap używa interpretera Python 3. Pyspinel nie obsługuje Pythona 2.
- Sprawdź, czy sprzęt jest wyliczany przez USB i czy sterowniki są wczytane.
- Sprawdź, czy na sprzęcie został wgrany odpowiedni firmware (NCP lub RCP).
- Sprawdź, czy skrypt Pythona znajdujący się na ścieżce extcap jest skompilowany.
- W przypadku OS X i Linux:
- Sprawdź, czy uprawnienie do wykonania jest obecne w pliku
extcap_ot.py
:ls -l extcap_ot.py
- Jeśli brakuje uprawnienia wykonywania (x), zmień uprawnienia:
chmod +x extcap_ot.py
- Sprawdź, czy interfejs jest wyświetlany:
extcap_ot.py --extcap-interfaces
- Sprawdź, czy uprawnienie do wykonania jest obecne w pliku
- Windows:
- Sprawdź, czy interfejs jest wyświetlany:
extcap_ot.bat --extcap-interfaces
- Jeśli pojawi się błąd Pythona, sprawdź, czy jest to wersja 3.x:
py -3 --version
- Sprawdź, czy interfejs jest wyświetlany:
- W przypadku OS X i Linux:
Wireshark pozwala przechwytywać pakiety tylko użytkownikowi root.
Podczas instalacji Wiresharka w Ubuntu użytkownik zobaczy prośbę o wybranie jednej z tych opcji:
- Utwórz grupę użytkowników
wireshark
i zezwól wszystkim jej członkom na przechwytywanie pakietów. - 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.