Ten przewodnik opisuje, jak skonfigurować Wireshark i uruchomić Pyspinel do wykrywania pakietów z sieci Thread.
Aby użyć wtyczki Wireshark extcap do przechwytywania pakietów, przeczytaj artykuł Przechwytywanie pakietów przy użyciu rozszerzenia extcap.
Konfigurowanie środowiska sniffera
Zanim zaczniesz, wykonaj te czynności:
- Zapoznaj się z wymaganiami dotyczącymi wykrywania pakietów.
- Zainstaluj i skonfiguruj program Wireshark.
- Zainstaluj Pyspinel i zależności bez rozszerzenia extcap.
Stwórz sniffera
Użyj wyjścia binarnego ot-rcp
, aby utworzyć i zainstalować urządzenie NCP, które pełni rolę sniffera.
Nordycki nRF52840
Aby skonfigurować skandynawski przykład nRF52840 do użycia jako sniffer, skopiuj
openthread/ot-nrf528xx
i skonfiguruj środowisko kompilacji:
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
Ustaw szybkość transmisji na 460 800. Znajdź linię #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
w src/nrf52840/transport-config.h
i zastąpić go elementem #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800
.
Skompiluj plik binarny:
./script/build nrf52840 UART_trans
Przekonwertuj dane wyjściowe binarne ot-rcp
na wartości szesnastkowe:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
Wyślij plik ot-rcp.hex
na płytkę nRF52840 zgodnie z opisem w tym artykule:
Błysk nRF52840
Wyłącz urządzenie masowe (MSD) w nRF52840, aby uniknąć problemów z danymi może zostać uszkodzony lub zniknie podczas używania portu debugowania:
expect <<EOF
spawn JLinkExe
expect "J-Link>"
send "msddisable\n"
expect "Probe configured successfully."
exit
EOF
spawn JLinkExe SEGGER J-Link Commander V6.42b (Compiled Feb 5 2019 17:35:31) DLL version V6.42b, compiled Feb 5 2019 17:35:20 Connecting to J-Link via USB...O.K. Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jan 7 2019 14:07:15 Hardware version: V1.00 S/N: 683411111 VTref=3.300V Type "connect" to establish a target connection, '?' for help J-Link>msddisable Probe configured successfully.
Właściwości sieci Thread
Zanim przejdziesz dalej, pobierz te właściwości sieci Thread, które chcesz wąchać. Będą potrzebne do konfiguracji programu Wireshark i uruchomienia systemu Pyspinel węchem.
Lokalny prefiks sieci typu mesh
Aby uzyskać lokalny prefiks sieci typu mesh z urządzenia w docelowej sieci Thread:
Za pomocą interfejsu wiersza poleceń OpenThread:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64Używanie identyfikatora
wpanctl
z NCP:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"W GUI OTBR Web GUI wybierz opcję Stan. Lokalny prefiks sieci typu mesh jest wymieniony jako IPv6:MeshLocalPrefix (podobne do
wpanctl
).
Kanał
Aby pobrać kanał z urządzenia w docelowej sieci Thread:
Za pomocą interfejsu wiersza poleceń OpenThread:
channel
15Używanie identyfikatora
wpanctl
z NCP:wpanctl getprop NCP:Channel
NCP:Channel = 15W GUI OTBR Web GUI wybierz opcję Stan. Kanał jest podany jako NCP:Kanał podobny do parametru
wpanctl
.
Klucz sieciowy
Klucz sieci Thread jest używany przez Wireshark do odszyfrowywania pakietów po zdjęcia. Aby uzyskać klucz sieciowy z urządzenia w docelowej sieci Thread:
Za pomocą interfejsu wiersza poleceń OpenThread:
networkkey
33334444333344443333444433334444Używanie identyfikatora
wpanctl
z NCP:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
Klucz sieciowy Thread nie jest dostępny w interfejsie internetowym OTBR.
Opcje sniffera
Opcje | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
Uruchom sniffera
Pamiętaj, aby użyć konkretnej ścieżki urządzenia dla NCP oraz kanału dla Sieć Thread, którą próbujesz wykryć.
Jeśli postępujesz zgodnie z tym przewodnikiem, do hosta należy podłączyć kontroler nRF52840 DK przez
i port debugowania, zgodnie z opisem w sekcji Flash
nRF52840. Aby uruchomić sniffera Pyspinel,
użyj flagi -b
, aby określić szybkość transmisji (jeśli została zmieniona z domyślnej).
i pominąć flagę --no-reset
.
Jeśli konfigurujesz program Wireshark, aby wyświetlać RSSI, musisz także dodać --rssi
po uruchomieniu narzędzia sniffer. Na przykład do wąchania Channel 15 za pomocą
urządzenie podłączone do źródła danych /dev/ttyACM0
z RSSI dołączonym do danych wyjściowych programu Wireshark:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
Powinny być teraz widoczne pakiety i powiązane z nimi protokoły Konfiguracja w programie Wireshark:
Zobacz Spinel Sniffer referencyjnym znajdziesz więcej informacji na temat uruchamiania sniffera Pyspinel.
Natywne połączenie USB
Używanie portu USB nRF52840 DK wymaga pliku binarnego OpenThread ot-rcp
do
utworzona za pomocą usługi USB_trans
:
./script/build nrf52840 USB_trans
--no-reset
ale pomiń flagę -b
przy uruchamianiu sniffera:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
Zasoby
Informacje o dodatkowych narzędziach nordyckich znajdziesz na stronie Nordic Semiconductor – Thread Sniffer oparty na modelu nRF52840 w programie Wireshark.