คู่มือนี้ครอบคลุมวิธีกําหนดค่า Wireshark และเรียกใช้ Pysapisl เพื่อดักจับแพ็กเก็ตจากเครือข่ายเทรด
หากต้องการใช้ปลั๊กอิน Wireshark extcap สําหรับการดักจับแพ็กเก็ต โปรดดูการดักจับแพ็กเกจโดยใช้ Extcap
ตั้งค่าสภาพแวดล้อมสําหรับกรอง
ก่อนที่จะเริ่มต้น โปรดทําตามขั้นตอนต่อไปนี้
- อ่านข้อกําหนดในการดักขยะ
- ติดตั้งและกําหนดค่า Wireshark
- ติดตั้ง Pyspitl และทรัพยากร Dependency โดยไม่มีส่วนขยาย
สร้างดม
สร้างและแฟลชอุปกรณ์ NCP เพื่อใช้เป็นนักตรวจจับ โดยใช้เอาต์พุตไบนารีของ ot-rcp
นอร์ดิก NRF52840
หากต้องการตั้งค่าตัวอย่าง Nordic nRF52840 สําหรับใช้เป็นดม ให้โคลน
openthread/ot-nrf528xx
และตั้งค่าสภาพแวดล้อมของบิลด์
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
กําหนดอัตรา Conversion เป็น 460800 ค้นหาบรรทัด #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
ใน src/nrf52840/transport-config.h
และแทนที่ด้วย #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800
สร้างไบนารี
./script/build nrf52840 UART_trans
แปลงเอาต์พุตไบนารี ot-rcp
เป็นเลขฐานสิบหก:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
แฟลชไฟล์ ot-rcp.hex
ไปยังกระดาน nRF52840 ตามรายละเอียดในแฟลช nRF52840
ปิดใช้ Mass Storage Device (MSD) ใน nRF52840 เพื่อหลีกเลี่ยงการเสียหายของข้อมูลหรือการลดลงเมื่อใช้พอร์ตแก้ไขข้อบกพร่อง ดังนี้
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.
พร็อพเพอร์ตี้เครือข่ายเทรด
ก่อนที่จะดําเนินการต่อ ให้ตรวจสอบพร็อพเพอร์ตี้ต่อไปนี้สําหรับเครือข่ายเทรดที่คุณต้องการกรอง คุณจะต้องใช้การกําหนดค่า Wireshark และเรียกใช้การเรียกใช้ Pysapisl
คํานําหน้า Mesh ในเครื่อง
วิธีนําคํานําหน้า Mesh ในเครื่องจากอุปกรณ์ในเครือข่ายชุดข้อความเป้าหมาย
การใช้ OpenThread CLI:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64การใช้
wpanctl
กับ NCP:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"ใช้ UI ของ OTBR Web คํานําหน้าภายในของ Mesh จะแสดงเป็น IPv6:MeshLocalPrefix ที่คล้ายกับ
wpanctl
ช่อง
วิธีรับช่องจากอุปกรณ์ในเครือข่ายชุดข้อความเป้าหมาย
การใช้ OpenThread CLI:
channel
15การใช้
wpanctl
กับ NCP:wpanctl getprop NCP:Channel
NCP:Channel = 15ใช้ UI ของ OTBR Web ช่องจะแสดงเป็น NCP:Channel คล้ายกับ
wpanctl
คีย์เครือข่าย
Wireshark ใช้คีย์เครือข่ายเทรดเพื่อถอดรหัสแพ็กเก็ตหลังจากจับภาพ วิธีรับคีย์เครือข่ายจากอุปกรณ์ในเครือข่ายชุดข้อความเป้าหมาย
การใช้ OpenThread CLI:
networkkey
33334444333344443333444433334444การใช้
wpanctl
กับ NCP:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
คีย์เครือข่ายเทรดไม่พร้อมใช้งานใน GUI ของ OTBR บนเว็บ
ตัวเลือก Sniffer
ตัวเลือก | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
เรียกใช้ดม
โปรดใช้เส้นทางอุปกรณ์ที่เฉพาะเจาะจงสําหรับ NCP และแชแนลสําหรับเครือข่ายเทรดที่คุณพยายามกรอง
หากทําตามคู่มือนี้ พอร์ตแก้ไขข้อบกพร่อง nRF52840 DK ควรเชื่อมต่อกับเครื่องโฮสต์ตามที่อธิบายไว้ในแฟลช nRF52840 หากต้องการเรียกใช้ Sniffer Sniffer ให้ใช้แฟล็ก -b
เพื่อระบุอัตรา Baud (หากเปลี่ยนจากค่าเริ่มต้น) และละเว้นแฟล็ก --no-reset
หากกําหนดค่า Wireshark ให้แสดง RSSI คุณจะต้องรวมแฟล็ก --rssi
ด้วยเมื่อเรียกใช้เครื่องมือ Sniffer เช่น หากต้องการสแนปช่อง 15 โดยใช้อุปกรณ์ที่ติดตั้งอยู่ที่ /dev/ttyACM0
พร้อมด้วย RSSI ที่รวมอยู่ในเอาต์พุต Wireshark ให้ทําดังนี้
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
ตอนนี้คุณควรดูแพ็กเก็ตและโปรโตคอลที่เกี่ยวข้องสําหรับการกําหนดค่านี้ใน Wireshark ได้แล้ว
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน Sniffl Sniffer ได้ที่ข้อมูลอ้างอิงของ Savenl Sniffer
การเชื่อมต่อ USB ในเครื่อง
การใช้พอร์ต USB nRF52840 DK ต้องสร้างไบนารี OpenThread ot-rcp
ที่สร้างด้วย USB_trans
ดังนี้
./script/build nrf52840 USB_trans
แฟลช nRF52840 DK แล้วเชื่อมต่อกับพอร์ตโฮสต์ด้วยพอร์ต USB จากนั้นใช้แฟล็ก --no-reset
ยกเว้นแฟล็ก -b
เมื่อเรียกใช้ sniffer:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
ทรัพยากร
สําหรับเครื่องมืออื่นๆ ของนอร์ดิก โปรดดู Nordic Semiconductor — Thread Sniffer ตาม nRF52840 ด้วย Wireshark