Search Code

$34 USB Sniffer บทช่วยสอน: จับภาพการเคลื่อนไหวของเมาส์และการกดแป้นพิมพ์โดยใช้ Wireshark

$34 USB Sniffer บทช่วยสอน: จับภาพการเคลื่อนไหวของเมาส์และการกดแป้นพิมพ์โดยใช้ Wireshark

บทช่วยสอน USB Sniffer: จับภาพการเคลื่อนไหวของเมาส์และการกดแป้นพิมพ์โดยใช้ Wireshark

ในโปรเจกต์นี้ เราจะสำรวจว่าอุปกรณ์ USB sniffer สามารถใช้ตรวจสอบและวิเคราะห์การสื่อสาร USB ระหว่างคอมพิวเตอร์กับอุปกรณ์อินพุตทั่วไป เช่น เมาส์และคีย์บอร์ดได้อย่างไร โดยการวาง USB sniffer แทรกอยู่ระหว่างอุปกรณ์ USB กับคอมพิวเตอร์ แพ็กเก็ต USB ทั้งหมดที่ส่งผ่านจะถูกจับและวิเคราะห์แบบเรียลไทม์โดยใช้ Wireshark

usb_sniffter-12

บทช่วยสอนนี้สาธิตวิธีการสังเกตการเคลื่อนไหวของเมาส์ การคลิกปุ่ม และแม้แต่การกดแป้นพิมพ์ (รวมถึงรหัสผ่าน) ในระดับโปรโตคอล 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_sniffter-4

เมาส์และคีย์บอร์ด (อุปกรณ์ USB HID)

ทั้งเมาส์และคีย์บอร์ดเป็นอุปกรณ์ Human Interface Devices (HID) ของ USB อุปกรณ์เหล่านี้ส่งรายงานเป็นระยะไปยังคอมพิวเตอร์โฮสต์เพื่ออธิบายสถานะของตน:

  • เมาส์: สถานะปุ่ม การเคลื่อนที่แกน X การเคลื่อนที่แกน Y
  • คีย์บอร์ด: ปุ่มตัวปรับแต่งและรหัสสแกนคีย์

รายงานเหล่านี้ถูกส่งในรูปแบบข้อความธรรมดาที่ไม่มีการเข้ารหัสผ่าน USB ซึ่งเป็นเหตุผลว่าทำไมจึงสามารถจับได้ด้วย sniffer

คอมพิวเตอร์ที่ใช้ Wireshark

Wireshark ใช้สำหรับจับและวิเคราะห์แพ็กเก็ต USB บน Windows การจับ USB ต้องใช้ส่วนประกอบเพิ่มเติมเพื่อเปิดใช้งานการเข้าถึงการรับส่งข้อมูล USB ในระดับไดรเวอร์

การเดินสายและการเชื่อมต่อ

USB sniffer เชื่อมต่อแบบอินไลน์ระหว่างอุปกรณ์ USB กับคอมพิวเตอร์

usb-sniffer-wiring-mouse
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-mouse
  • เชื่อมต่อเมาส์หรือคีย์บอร์ดเข้ากับพอร์ตอินพุต 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_sniffter-11

การใช้ตัวกรอง USB

เพื่อโฟกัสเฉพาะข้อมูล USB ที่เกี่ยวข้อง จะใช้ตัวกรองการแสดงผล:

usbll

ตัวกรองนี้แสดงเฉพาะแพ็กเก็ต USB Link Layer ซึ่งมีธุรกรรม USB ดิบที่แลกเปลี่ยนระหว่างอุปกรณ์กับโฮสต์

จำเป็นต้องกรองเพิ่มเติมเนื่องจาก USB สร้างข้อมูลปริมาณมาก

การกรองตามรหัสแพ็กเก็ต (PID)

แพ็กเก็ตข้อมูลเมาส์และคีย์บอร์ดสามารถระบุได้ด้วยรหัสแพ็กเก็ต (PID) เฉพาะ ในโปรเจกต์นี้ PID ที่เกี่ยวข้องที่สังเกตได้คือ:

  • 0xC3
  • 0x4B

สามารถกรองข้อมูลเหล่านี้ใน Wireshark ได้โดยใช้:

usbll.pid == 0xC3 || usbll.pid == 0x4B

ตัวกรองนี้จะแยกรายงาน HID ที่มาจากเมาส์หรือคีย์บอร์ด

ทำความเข้าใจข้อมูลเมาส์

เมื่อมีการเคลื่อนย้ายหรือคลิกเมาส์ รายงาน HID จะถูกส่งอย่างต่อเนื่อง แต่ละรายงานประกอบด้วยหลายไบต์:

  • รหัสรายงาน
  • สถานะปุ่ม (ซ้าย ขวา กลาง)
  • การเคลื่อนที่แกน X
  • การเคลื่อนที่แกน Y

โดยการสังเกตค่าไบต์ที่เปลี่ยนแปลงใน Wireshark สามารถอนุมานทิศทางและความเร็วของการเคลื่อนที่ของเมาส์ได้ แม้ไม่มีการคลิก การเคลื่อนที่เพียงอย่างเดียวก็สร้างกิจกรรม USB ที่มองเห็นได้

ทำความเข้าใจข้อมูลคีย์บอร์ด

ข้อมูลคีย์บอร์ดถูกส่งเป็นรายงาน HID ที่ประกอบด้วยสแกนโค้ดแทนค่า ASCII แต่ละปุ่มสอดคล้องกับรหัสการใช้งาน HID ที่เฉพาะเจาะจง

ตัวอย่างเช่น:

  • 0x04 → ตัวอักษร A
  • 0x05 → ตัวอักษร B
  • 0x0E → ตัวอักษร K

ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กถูกกำหนดโดยปุ่มปรับแต่ง เช่น Shift ซึ่งปรากฏในไบต์แยกต่างหากของรายงาน

ปุ่มฟังก์ชัน เช่น F12 ก็สร้างสแกนโค้ดที่ไม่ซ้ำกันซึ่งสามารถสังเกตได้โดยตรงในแพ็กเก็ตที่จับได้

ผลกระทบด้านความปลอดภัย

โปรเจกต์นี้แสดงให้เห็นอย่างชัดเจนว่าการรับส่งข้อมูล USB HID ไม่ได้ถูกเข้ารหัส หากอุปกรณ์ที่เป็นอันตรายถูกวางไว้ทางกายภาพระหว่างคีย์บอร์ดและคอมพิวเตอร์ อุปกรณ์นั้นสามารถจับทุกการกดแป้นพิมพ์ รวมถึงชื่อผู้ใช้และรหัสผ่าน

นี่คือเหตุผลที่ความปลอดภัยของ USB ฮาร์ดแวร์ที่เชื่อถือได้ และการควบคุมการเข้าถึงทางกายภาพมีความสำคัญอย่างยิ่งในสภาพแวดล้อมที่ละเอียดอ่อน

สรุปการสาธิต

ในการสาธิตนี้ สิ่งต่อไปนี้ถูกจับและถอดรหัสได้สำเร็จ:

  • การเคลื่อนที่ของเมาส์และกิจกรรมปุ่ม
  • การกดปุ่มคีย์บอร์ดแต่ละปุ่ม
  • ปุ่มฟังก์ชันและปุ่มปรับแต่ง
  • คำที่พิมพ์บนคีย์บอร์ดอย่างสมบูรณ์

อุปกรณ์ดักจับ USB ทำงานอย่างโปร่งใส ทำให้การตรวจจับทำได้ยากหากไม่มีการตรวจสอบทางกายภาพ

บทสรุป

โปรเจกต์อุปกรณ์ดักจับ USB นี้ให้การสาธิตเชิงปฏิบัติที่ทรงพลังว่าการสื่อสาร USB ทำงานในระดับต่ำสุดอย่างไร โดยการรวมฮาร์ดแวร์ดักจับเฉพาะกับ Wireshark ทำให้สามารถเห็นได้อย่างชัดเจนว่าอุปกรณ์อินพุตสื่อสารกับคอมพิวเตอร์อย่างไร

โปรเจกต์นี้เหมาะสำหรับการเรียนรู้โปรโตคอล USB โครงสร้างรายงาน HID และข้อพิจารณาด้านความปลอดภัยในโลกจริง แม้จะสาธิตด้วยเมาส์และคีย์บอร์ด แต่หลักการเดียวกันนี้ใช้ได้กับอุปกรณ์ USB อื่น ๆ อีกมากมาย

ดาวน์โหลดซอฟต์แวร์

แอปพลิเคชันตัวช่วยสำหรับ Windows usb_sniffer_win.exe ที่จำเป็นสำหรับการจับข้อมูล USB ด้วย Wireshark สามารถดาวน์โหลดได้ด้านล่างบทความนี้

ภาพ

usb_sniffter-3
usb_sniffter-3
usb_sniffter-4
usb_sniffter-4
usb_sniffter-5
usb_sniffter-5
usb_sniffter-6
usb_sniffter-6
USB Sniffer
USB Sniffer
usb_sniffter-10
usb_sniffter-10
usb_sniffter-11
usb_sniffter-11
usb_sniffter-12
usb_sniffter-12
usb_sniffter-8_software
usb_sniffter-8_software
usb_sniffter-9
usb_sniffter-9
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-mouse
usb-sniffer-wiring-mouse
ไม่มีรหัสแนบมา

สิ่งที่คุณอาจต้องการ

แหล่งข้อมูลและเอกสารอ้างอิง

ไฟล์📁

คู่มือผู้ใช้

ไฟล์อื่น ๆ