$34 USB Sniffer บทช่วยสอน: จับภาพการเคลื่อนไหวของเมาส์และการกดแป้นพิมพ์โดยใช้ Wireshark
บทช่วยสอน USB Sniffer: จับภาพการเคลื่อนไหวของเมาส์และการกดแป้นพิมพ์โดยใช้ Wireshark
ในโปรเจกต์นี้ เราจะสำรวจว่าอุปกรณ์ USB sniffer สามารถใช้ตรวจสอบและวิเคราะห์การสื่อสาร USB ระหว่างคอมพิวเตอร์กับอุปกรณ์อินพุตทั่วไป เช่น เมาส์และคีย์บอร์ดได้อย่างไร โดยการวาง USB sniffer แทรกอยู่ระหว่างอุปกรณ์ USB กับคอมพิวเตอร์ แพ็กเก็ต USB ทั้งหมดที่ส่งผ่านจะถูกจับและวิเคราะห์แบบเรียลไทม์โดยใช้ Wireshark
บทช่วยสอนนี้สาธิตวิธีการสังเกตการเคลื่อนไหวของเมาส์ การคลิกปุ่ม และแม้แต่การกดแป้นพิมพ์ (รวมถึงรหัสผ่าน) ในระดับโปรโตคอล USB โปรเจกต์นี้มีวัตถุประสงค์เพื่อการศึกษาเพื่อทำความเข้าใจว่าอุปกรณ์ Human Interface Devices (HID) ของ USB ทำงานภายในอย่างไร และเหตุใดความปลอดภัยทางกายภาพจึงสำคัญพอๆ กับความปลอดภัยของซอฟต์แวร์

USB Sniffer คืออะไร?
USB sniffer คืออุปกรณ์ฮาร์ดแวร์ที่อยู่ระหว่างอุปกรณ์ต่อพ่วง USB (เช่น เมาส์หรือคีย์บอร์ด) กับคอมพิวเตอร์โฮสต์ โดยจะส่งผ่านข้อมูลอย่างโปร่งใสเพื่อให้อุปกรณ์ทำงานได้ตามปกติ ขณะเดียวกันก็จับและเปิดเผยแพ็กเก็ตข้อมูล USB ผ่านอินเทอร์เฟซการตรวจสอบแยกต่างหาก
ในโปรเจกต์นี้ USB sniffer ทำหน้าที่เป็นอุปกรณ์แบบ pass-through:
- เมาส์หรือคีย์บอร์ด USB เชื่อมต่อกับ sniffer
- sniffer เชื่อมต่อกับคอมพิวเตอร์
- การเชื่อมต่อ USB แยกจาก sniffer ไปยังคอมพิวเตอร์สำหรับตรวจสอบที่รัน Wireshark
การรับส่งข้อมูล USB ทั้งหมดที่ส่งผ่านระหว่างอุปกรณ์กับคอมพิวเตอร์สามารถจับและถอดรหัสได้โดยไม่กระทบต่อการทำงานปกติ :contentReference[oaicite:0]{index=0}

ส่วนประกอบหลักที่ใช้
ฮาร์ดแวร์ USB Sniffer
USB sniffer ที่ใช้ในโปรเจกต์นี้อิงจากการออกแบบ FPGA ที่สร้างโดย Alex Tarasov การออกแบบทั้งหมดรวมถึงเฟิร์มแวร์ ไฟล์ PCB และเครื่องมือซอฟต์แวร์ หน่วยเชิงพาณิชย์ที่ใช้ที่นี่มาพร้อมเฟิร์มแวร์ที่โหลดไว้ล่วงหน้าแล้ว จึงไม่จำเป็นต้องเขียนหรือกำหนดค่าก่อนใช้งาน
ภายใน sniffer จะแตะสายข้อมูลดิฟเฟอเรนเชียล USB และสะท้อนแพ็กเก็ตไปยังอินเทอร์เฟซ USB แยกที่ Wireshark สามารถตรวจสอบได้
เมาส์และคีย์บอร์ด (อุปกรณ์ USB HID)
ทั้งเมาส์และคีย์บอร์ดเป็นอุปกรณ์ Human Interface Devices (HID) ของ USB อุปกรณ์เหล่านี้ส่งรายงานเป็นระยะไปยังคอมพิวเตอร์โฮสต์เพื่ออธิบายสถานะของตน:
- เมาส์: สถานะปุ่ม การเคลื่อนที่แกน X การเคลื่อนที่แกน Y
- คีย์บอร์ด: ปุ่มตัวปรับแต่งและรหัสสแกนคีย์
รายงานเหล่านี้ถูกส่งในรูปแบบข้อความธรรมดาที่ไม่มีการเข้ารหัสผ่าน USB ซึ่งเป็นเหตุผลว่าทำไมจึงสามารถจับได้ด้วย sniffer
คอมพิวเตอร์ที่ใช้ Wireshark
Wireshark ใช้สำหรับจับและวิเคราะห์แพ็กเก็ต USB บน Windows การจับ USB ต้องใช้ส่วนประกอบเพิ่มเติมเพื่อเปิดใช้งานการเข้าถึงการรับส่งข้อมูล USB ในระดับไดรเวอร์
การเดินสายและการเชื่อมต่อ
USB sniffer เชื่อมต่อแบบอินไลน์ระหว่างอุปกรณ์ USB กับคอมพิวเตอร์

- เชื่อมต่อเมาส์หรือคีย์บอร์ดเข้ากับพอร์ตอินพุต USB ของ sniffer
- เชื่อมต่อพอร์ตเอาต์พุต USB ของ sniffer เข้ากับคอมพิวเตอร์
- เชื่อมต่อพอร์ต USB สำหรับตรวจสอบของ sniffer เข้ากับคอมพิวเตอร์เครื่องเดียวกันหรือเครื่องอื่นที่รัน Wireshark
อุปกรณ์ USB ยังคงทำงานได้ตามปกติในขณะที่การรับส่งข้อมูลถูกสะท้อนไปยังพอร์ตตรวจสอบ
การติดตั้งซอฟต์แวร์ที่จำเป็น
การติดตั้ง Wireshark
ต้องติดตั้ง Wireshark บนคอมพิวเตอร์สำหรับตรวจสอบ ระหว่างการติดตั้งบน Windows จำเป็นอย่างยิ่งที่จะต้องเปิดใช้งานส่วนประกอบการรองรับการจับ USB หากไม่มีไดรเวอร์นี้ จะไม่สามารถจับการรับส่งข้อมูล USB ได้
เมื่อติดตั้งเสร็จ Wireshark จะแสดงอินเทอร์เฟซการจับ USB พร้อมกับอินเทอร์เฟซเครือข่าย
ไดรเวอร์ USB Sniffer (Windows)
จำเป็นต้องมีไฟล์ปฏิบัติการตัวช่วยขนาดเล็กบน Windows เพื่อให้ Wireshark เข้าถึงข้อมูลการดมกลิ่น USB จากฮาร์ดแวร์ได้ ไฟล์ปฏิบัติการนี้ต้องวางในพาธของระบบ (เช่น ใต้ C:\Program Files\Wireshark\extcap หรือตำแหน่งที่คุณติดตั้ง Wireshark) เพื่อให้ Wireshark สามารถสื่อสารกับ sniffer ได้
การจับข้อมูล USB ใน Wireshark
หลังจากเปิด Wireshark ให้เลือกอินเทอร์เฟซ USB sniffer และเริ่มจับข้อมูล ในตอนแรก อาจมีการรับส่งข้อมูล USB ที่ไม่เกี่ยวข้องจำนวนมากปรากฏขึ้น
การใช้ตัวกรอง USB
เพื่อโฟกัสเฉพาะข้อมูล USB ที่เกี่ยวข้อง จะใช้ตัวกรองการแสดงผล:
usbll
ตัวกรองนี้แสดงเฉพาะแพ็กเก็ต USB Link Layer ซึ่งมีธุรกรรม USB ดิบที่แลกเปลี่ยนระหว่างอุปกรณ์กับโฮสต์
จำเป็นต้องกรองเพิ่มเติมเนื่องจาก USB สร้างข้อมูลปริมาณมาก
การกรองตามรหัสแพ็กเก็ต (PID)
แพ็กเก็ตข้อมูลเมาส์และคีย์บอร์ดสามารถระบุได้ด้วยรหัสแพ็กเก็ต (PID) เฉพาะ ในโปรเจกต์นี้ PID ที่เกี่ยวข้องที่สังเกตได้คือ:
0xC30x4B
สามารถกรองข้อมูลเหล่านี้ใน Wireshark ได้โดยใช้:
usbll.pid == 0xC3 || usbll.pid == 0x4B
ตัวกรองนี้จะแยกรายงาน HID ที่มาจากเมาส์หรือคีย์บอร์ด
ทำความเข้าใจข้อมูลเมาส์
เมื่อมีการเคลื่อนย้ายหรือคลิกเมาส์ รายงาน HID จะถูกส่งอย่างต่อเนื่อง แต่ละรายงานประกอบด้วยหลายไบต์:
- รหัสรายงาน
- สถานะปุ่ม (ซ้าย ขวา กลาง)
- การเคลื่อนที่แกน X
- การเคลื่อนที่แกน Y
โดยการสังเกตค่าไบต์ที่เปลี่ยนแปลงใน Wireshark สามารถอนุมานทิศทางและความเร็วของการเคลื่อนที่ของเมาส์ได้ แม้ไม่มีการคลิก การเคลื่อนที่เพียงอย่างเดียวก็สร้างกิจกรรม USB ที่มองเห็นได้
ทำความเข้าใจข้อมูลคีย์บอร์ด
ข้อมูลคีย์บอร์ดถูกส่งเป็นรายงาน HID ที่ประกอบด้วยสแกนโค้ดแทนค่า ASCII แต่ละปุ่มสอดคล้องกับรหัสการใช้งาน HID ที่เฉพาะเจาะจง
ตัวอย่างเช่น:
0x04→ ตัวอักษร A0x05→ ตัวอักษร B0x0E→ ตัวอักษร K
ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กถูกกำหนดโดยปุ่มปรับแต่ง เช่น Shift ซึ่งปรากฏในไบต์แยกต่างหากของรายงาน
ปุ่มฟังก์ชัน เช่น F12 ก็สร้างสแกนโค้ดที่ไม่ซ้ำกันซึ่งสามารถสังเกตได้โดยตรงในแพ็กเก็ตที่จับได้
ผลกระทบด้านความปลอดภัย
โปรเจกต์นี้แสดงให้เห็นอย่างชัดเจนว่าการรับส่งข้อมูล USB HID ไม่ได้ถูกเข้ารหัส หากอุปกรณ์ที่เป็นอันตรายถูกวางไว้ทางกายภาพระหว่างคีย์บอร์ดและคอมพิวเตอร์ อุปกรณ์นั้นสามารถจับทุกการกดแป้นพิมพ์ รวมถึงชื่อผู้ใช้และรหัสผ่าน
นี่คือเหตุผลที่ความปลอดภัยของ USB ฮาร์ดแวร์ที่เชื่อถือได้ และการควบคุมการเข้าถึงทางกายภาพมีความสำคัญอย่างยิ่งในสภาพแวดล้อมที่ละเอียดอ่อน
สรุปการสาธิต
ในการสาธิตนี้ สิ่งต่อไปนี้ถูกจับและถอดรหัสได้สำเร็จ:
- การเคลื่อนที่ของเมาส์และกิจกรรมปุ่ม
- การกดปุ่มคีย์บอร์ดแต่ละปุ่ม
- ปุ่มฟังก์ชันและปุ่มปรับแต่ง
- คำที่พิมพ์บนคีย์บอร์ดอย่างสมบูรณ์
อุปกรณ์ดักจับ USB ทำงานอย่างโปร่งใส ทำให้การตรวจจับทำได้ยากหากไม่มีการตรวจสอบทางกายภาพ
บทสรุป
โปรเจกต์อุปกรณ์ดักจับ USB นี้ให้การสาธิตเชิงปฏิบัติที่ทรงพลังว่าการสื่อสาร USB ทำงานในระดับต่ำสุดอย่างไร โดยการรวมฮาร์ดแวร์ดักจับเฉพาะกับ Wireshark ทำให้สามารถเห็นได้อย่างชัดเจนว่าอุปกรณ์อินพุตสื่อสารกับคอมพิวเตอร์อย่างไร
โปรเจกต์นี้เหมาะสำหรับการเรียนรู้โปรโตคอล USB โครงสร้างรายงาน HID และข้อพิจารณาด้านความปลอดภัยในโลกจริง แม้จะสาธิตด้วยเมาส์และคีย์บอร์ด แต่หลักการเดียวกันนี้ใช้ได้กับอุปกรณ์ USB อื่น ๆ อีกมากมาย
ดาวน์โหลดซอฟต์แวร์
แอปพลิเคชันตัวช่วยสำหรับ Windows usb_sniffer_win.exe ที่จำเป็นสำหรับการจับข้อมูล USB ด้วย Wireshark สามารถดาวน์โหลดได้ด้านล่างบทความนี้
สิ่งที่คุณอาจต้องการ
-
อเมซอนPurchase USB sniffer from Amazonamzn.to
-
อีเบย์Purchase USB sniffer from eBayebay.us
-
อาลีเอ็กซ์เพรสPurchase USB sniffer from AliExpresss.click.aliexpress.com
-
แบงกูดPurchase USB sniffer from Banggoodbanggood.com
แหล่งข้อมูลและเอกสารอ้างอิง
-
ดาวน์โหลดDownload Wiresharkwireshark.org
ไฟล์📁
คู่มือผู้ใช้
-
USB Sniffer User's manual_english
usb_sniffer_manual_english-1.pdf1.06 MB -
USB Sniffer Manual EnglishUser manual for a USB sniffer device. It explains how to set up and use the sniffer to capture and analyze USB traffic between a host and a device.
usb_sniffer_manual_english.pdf1.06 MB
ไฟล์อื่น ๆ
-
usb_sniffer_win.exe
usb_sniffer_win.zip0.29 MB