Panduan ini membahas cara mengkonfigurasi Wireshark dan menjalankan Pyspinel untuk mengendus paket dari jaringan Thread.
Untuk menggunakan plugin extcap Wireshark untuk penyadapan paket, lihat Pengendalian Paket menggunakan extcap.
Menyiapkan lingkungan sniffer
Sebelum memulai, selesaikan langkah-langkah berikut:
- Tinjau Persyaratan Penyadapan Paket.
- Instal dan Konfigurasi Wireshark.
- Menginstal Pyspinel dan dependensi tanpa extcap.
Membuat sniffer
Bangun dan flash perangkat NCP untuk berfungsi sebagai sniffer, menggunakan output biner ot-rcp
.
NRF52840 Nordik
Untuk menyiapkan contoh nRF52840 Nordic yang akan digunakan sebagai sniffer, clone
openthread/ot-nrf528xx
dan siapkan lingkungan build:
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
Setel kecepatan baud sebagai 460800. Temukan jalur #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
di src/nrf52840/transport-config.h
, dan menggantinya dengan #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800
.
Bangun biner:
./script/build nrf52840 UART_trans
Konversikan output biner ot-rcp
ke heksadesimal:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
Lakukan flash file ot-rcp.hex
ke board nRF52840 seperti yang dijelaskan dalam
Flash nRF52840.
Nonaktifkan Mass Storage Device (MSD) pada nRF52840 untuk menghindari masalah dengan data rusak atau drop saat menggunakan port debug:
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.
Properti jaringan thread
Sebelum melanjutkan, dapatkan properti berikut untuk jaringan Thread yang Anda inginkan untuk diendus. Anda akan membutuhkannya untuk konfigurasi Wireshark dan menjalankan Pyspinel sniffer.
Awalan Lokal Mesh
Untuk mendapatkan Mesh Local Prefix dari perangkat di jaringan Thread target:
Menggunakan CLI OpenThread:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64Menggunakan
wpanctl
dengan NCP:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"Menggunakan GUI Web OTBR, pilih Status. Mesh Local Prefix dicantumkan sebagai IPv6:MeshLocalPrefix yang mirip dengan
wpanctl
.
Saluran
Untuk mendapatkan Saluran dari perangkat di jaringan Thread target:
Menggunakan CLI OpenThread:
channel
15Menggunakan
wpanctl
dengan NCP:wpanctl getprop NCP:Channel
NCP:Channel = 15Menggunakan GUI Web OTBR, pilih Status. Saluran tercantum sebagai NCP:Channel mirip dengan
wpanctl
.
Kunci Jaringan
Kunci Jaringan Thread digunakan Wireshark untuk membongkar enkripsi paket setelah rekam video. Untuk mendapatkan Kunci Jaringan dari perangkat di jaringan Thread target:
Menggunakan CLI OpenThread:
networkkey
33334444333344443333444433334444Menggunakan
wpanctl
dengan NCP:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
Kunci Jaringan Thread tidak tersedia di GUI Web OTBR.
Opsi sniffer
Opsi | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
Jalankan sniffer
Pastikan untuk menggunakan jalur perangkat spesifik untuk NCP Anda dan saluran untuk Jaringan Thread yang Anda coba endus.
Jika mengikuti panduan ini, DK nRF52840 harus dipasang ke mesin {i>host<i} dengan
porta debug, seperti yang dijelaskan dalam Flash
nRF52840. Untuk menjalankan alat sniffer Pyspinel,
gunakan flag -b
untuk menentukan kecepatan baud (jika diubah dari default)
dan hapus flag --no-reset
.
Jika Mengonfigurasi Wireshark untuk menampilkan RSSI, Anda juga harus menyertakan --rssi
penanda saat Anda
menjalankan alat sniffer. Misalnya, untuk mengendus Saluran 15 menggunakan
perangkat yang dipasang di /dev/ttyACM0
dengan RSSI yang disertakan dalam output Wireshark:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
Anda sekarang dapat melihat paket dan protokol terkait untuk ini di Wireshark:
Lihat sniffer Spinel referensi untuk informasi lebih lanjut tentang cara menjalankan sniffer Pyspinel.
Koneksi USB native
Penggunaan port USB nRF52840 DK memerlukan biner ot-rcp
OpenThread untuk
dibuat dengan USB_trans
:
./script/build nrf52840 USB_trans
--no-reset
tetapi menghilangkan flag -b
saat menjalankan sniffer:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
Resource
Untuk alat Nordic tambahan, lihat Nordic Semiconductor — Thread Sniffer berdasarkan nRF52840 dengan Wireshark.