การดักจับแพ็กเก็ตโดยใช้ Extcap

ดูแหล่งที่มาใน GitHub

คู่มือนี้ครอบคลุมวิธีกําหนดค่า Extcap สําหรับ Wireshark เพื่อดักจับแพ็กเก็ตจากเครือข่ายเทรด

หากต้องการใช้ Pysapisl สําหรับดักจับแพ็กเก็ตโดยไม่ใช้ส่วนขยาย โปรดดูการดักจับแพ็กเกจด้วย PysSpringl

ตั้งค่าสภาพแวดล้อมสําหรับกรอง

ก่อนที่จะเริ่มต้น โปรดทําตามขั้นตอนต่อไปนี้

การยืนยัน

คําแนะนํานี้ได้รับการยืนยันด้วย Zolertia Firefly (Texas Instruments CC2538 SoC) ในระบบโฮสต์ต่อไปนี้

  • Debian 4.19.37 — Wireshark 3.0.4
  • macOS Mojave 10.14.6 — Wireshark 3.0.5
  • Windows 10 เวอร์ชัน 14 เวอร์ชัน 17134 — Wireshark 3.0.6

สร้างและแฟลชดม

วิธีการสร้างและกะพริบจะแตกต่างกันไปตามแพลตฟอร์ม

หากต้องการดูวิธีสร้างและกะพริบ CC2538 โปรดดูตัวอย่าง CC2538 README ใน GitHub

โปรดดูวิธีสร้างทั่วไปได้ที่วิธีสร้าง OpenThread

ใช้ดมกลิ่น

หน้าจอจับภาพหน้าจอ Wireshark จะแสดงเมื่อมีการเปิดใช้งาน Wireshark ครั้งแรก ซึ่งควรแสดงอินเทอร์เฟซฮาร์ดแวร์ที่เชื่อมต่อกับตัวตรวจสอบ OpenThread ไว้

จับภาพจากอินเทอร์เฟซเดียว

หากใช้อินเทอร์เฟซเป็นครั้งแรก ให้คลิกปุ่มตัวเลือกทางด้านซ้ายของอินเทอร์เฟซ ดังนี้

จับภาพ OT Sniffer Wireshark

  1. ตั้งค่าช่องเป็นค่าที่ต้องการ
  2. ตรวจสอบ IEEE 802.15.4 TAP เพื่อให้แน่ใจว่าข้อมูลช่องรวมอยู่ในเอาต์พุต pcap และสามารถแสดงใน Wireshark GUI
  3. เลือกบันทึกพารามิเตอร์เมื่อเริ่มต้นการบันทึกเพื่อให้แน่ใจว่าระบบจะบันทึกพารามิเตอร์เหล่านี้หลังจากที่เริ่มการจับภาพแล้ว เพื่อหลีกเลี่ยงการตั้งพารามิเตอร์อีกครั้งในครั้งถัดไปที่ใช้อินเทอร์เฟซ (เว้นแต่จะต้องเปลี่ยนช่อง)
  4. คลิกเริ่ม

ตัวเลือก OT Sniffer Wireshark Extcap

หากบันทึกพารามิเตอร์ไว้แล้ว ให้เริ่มกรองโดยเลือกอินเทอร์เฟซฮาร์ดแวร์ และคลิกไอคอน Wireshark ที่ด้านซ้ายบน

จับภาพจากหลายอินเทอร์เฟซ

เลือกอินเทอร์เฟซฮาร์ดแวร์ทั้งหมดที่แสดงในหน้าจอจับภาพหน้าจอและคลิกไอคอน Wireshark ที่ด้านซ้ายบน

ใช้ช่องเหล่านี้เพื่อระบุนักตรวจจับแต่ละคนเมื่อจับภาพจากอินเทอร์เฟซหลายหน้า

  • รหัสอินเทอร์เฟซ (frame.interface_id) - ตัวระบุอินเทอร์เฟซที่ Wireshark ใช้เพื่อระบุอินเทอร์เฟซการจับภาพ
  • ชื่ออินเทอร์เฟซ (frame.interface_name) - ชื่ออินเทอร์เฟซที่ Wireshark ใช้เพื่อระบุอินเทอร์เฟซการจับภาพ
  • ช่อง (wpan-tap.ch_num) — IEEE 802.15.4 จับภาพช่อง (ช่วง: 11-26)

แพ็กเกจ OT Sniffer Wireshark Extcap

การแก้ปัญหา

โปรแกรมเปิดชุดข้อความไม่มีรายการเป็นอินเทอร์เฟซ Wireshark

  1. หากติดตั้งล่าม Python ไว้หลายรายการ ให้ตรวจสอบว่าสคริปต์ extcap มีการใช้ Python 3 Pysapisl ไม่รองรับ Python 2
  2. ตรวจสอบว่ามีการระบุฮาร์ดแวร์ใน USB และไดรเวอร์โหลดแล้ว
  3. ตรวจสอบว่าเฟิร์มแวร์ที่ถูกต้อง (NCP หรือ RCP) แฟลชไปยังฮาร์ดแวร์แล้ว
  4. ยืนยันว่าสคริปต์ Python ที่อยู่ในเส้นทาง Extcap เป็นไฟล์ปฏิบัติการ
    • สําหรับ OS X และ Linux ให้ทําดังนี้
      1. ยืนยันว่ามีการเรียกใช้สิทธิ์สําหรับไฟล์ extcap_ot.py
        ls -l extcap_ot.py
        
      2. หากสิทธิ์ดําเนินการ (x) ขาดหายไป ให้แก้ไขสิทธิ์ต่อไปนี้
        chmod +x extcap_ot.py
        
      3. ยืนยันว่าอินเทอร์เฟซแสดงอยู่
        extcap_ot.py --extcap-interfaces
        
    • สําหรับ Windows ให้ทําดังนี้
      1. ยืนยันว่าอินเทอร์เฟซแสดงอยู่
        extcap_ot.bat --extcap-interfaces
        
      2. หากออกมาพร้อมกับข้อผิดพลาด Python ให้ยืนยันว่าเวอร์ชัน Python เป็น 3.x
        py -3 --version
        

Wireshark อนุญาตเฉพาะผู้ใช้รากในการจับภาพแพ็กเก็ต

ระหว่างการติดตั้ง Wireshark ใน Ubuntu ผู้ใช้จะได้รับข้อความแจ้งให้ผู้ใช้เลือกหนึ่งในตัวเลือกต่อไปนี้

  1. สร้างกลุ่มผู้ใช้ wireshark และอนุญาตให้สมาชิกทั้งหมดของกลุ่มบันทึกแพ็กเก็ต
  2. อนุญาตให้ผู้ใช้ root บันทึกแพ็กเก็ตได้เท่านั้น

เราไม่แนะนําให้ใช้ Wireshark ในฐานะผู้ใช้ root หากเลือกตัวเลือกดังกล่าว ให้เปลี่ยนการตั้งค่า ดังนี้

sudo dpkg-reconfigure wireshark-common

หากมีการกําหนดค่า Wireshark เพื่อจํากัดการจับภาพสําหรับสมาชิกในกลุ่ม wireshark คุณอาจต้องเพิ่มผู้ใช้ที่ถูกต้องในกลุ่ม:

sudo usermod -a -G wireshark user

และเพิ่มผู้ใช้ที่ถูกต้องลงในกลุ่ม dialout ด้วย ดังนี้

sudo usermod -a -G dialout user

ปิดและรีสตาร์ท Wireshark เพื่อใช้การตั้งค่ากลุ่มผู้ใช้ใหม่

ข้อผิดพลาดรูปแบบ Wireshark เมื่อจับภาพบนอินเทอร์เฟซ USB หลายหน้าต่างใน Windows

นี่คือปัญหาที่ทราบสําหรับ Wireshark เวอร์ชันเก่าบางส่วน ตรวจสอบว่าคุณใช้ Wireshark 3.0.6 หรือรุ่นที่ใหม่กว่า