Search Code

$34 USB嗅探器教學:用Wireshark捕捉滑鼠移動同鍵盤按鍵

$34 USB嗅探器教學:用Wireshark捕捉滑鼠移動同鍵盤按鍵

USB 偵測器教學:用 Wireshark 捕捉滑鼠移動同鍵盤按鍵

喺呢個項目入面,我哋探討點樣用 USB 偵測器裝置去監控同分析電腦同常見輸入裝置(好似滑鼠同鍵盤)之間嘅 USB 通訊。透過將 USB 偵測器串聯喺 USB 裝置同電腦之間,所有經過嘅 USB 封包都可以即時被捕捉同用 Wireshark 分析。

usb_sniffter-12

呢個教學示範咗滑鼠移動、按鈕點擊,甚至鍵盤按鍵(包括密碼)點樣可以喺 USB 協定層面被觀察到。呢個項目係為咗教育目的,用嚟了解 USB 人機介面裝置(HID)內部點樣運作,同埋點解實體安全同軟件安全一樣咁重要。

咩係 USB 偵測器?

USB 偵測器係一個硬件裝置,放喺 USB 周邊裝置(好似滑鼠或鍵盤)同主機電腦之間。佢會透明咁傳遞數據,令到裝置正常運作,同時透過另一個獨立嘅監控介面捕捉同暴露 USB 數據封包。

喺呢個項目入面,USB 偵測器扮演一個穿透式裝置嘅角色:

  • USB 滑鼠或鍵盤連接去偵測器
  • 偵測器連接去電腦
  • 偵測器另一個獨立 USB 連接去一部運行 Wireshark 嘅監控電腦

所有喺裝置同電腦之間經過嘅 USB 流量都可以被捕捉同解碼,而唔會影響正常運作 :contentReference[oaicite:0]{index=0}。

主要使用嘅組件

USB 偵測器硬件

呢個項目用嘅 USB 偵測器係基於 Alex Tarasov 設計嘅 FPGA 方案。完整設計包括韌體、PCB 檔案同軟件工具。呢度用嘅商用裝置已經預載咗韌體,所以使用前唔需要刷寫或配置。

內部嚟講,偵測器會截取 USB 差動數據線,並將封包鏡像到另一個獨立嘅 USB 介面,等 Wireshark 可以監控。

usb_sniffter-4

滑鼠同鍵盤(USB HID 裝置)

滑鼠同鍵盤都係 USB 人機介面裝置(HID)。呢啲裝置會定期向主機電腦發送報告,描述佢哋嘅狀態:

  • 滑鼠:按鈕狀態、X 移動、Y 移動
  • 鍵盤:修飾鍵同按鍵掃描碼

呢啲報告係以明文、未加密嘅形式透過 USB 傳輸,所以先至可以被偵測器捕捉到。

裝咗 Wireshark 嘅電腦

Wireshark 用嚟捕捉同分析 USB 封包。喺 Windows 上,捕捉 USB 需要額外組件先可以喺驅動程式層面存取 USB 流量。

接線同連接

USB 偵測器係串聯連接喺 USB 裝置同電腦之間。

usb-sniffer-wiring-mouse
usb-sniffer-wiring-keyboard
usb-sniffer-wiring-mouse
  • 將滑鼠或鍵盤連接去偵測器嘅 USB 輸入埠
  • 將偵測器嘅 USB 輸出埠連接去電腦
  • 將偵測器嘅監控 USB 埠連接去同一部或另一部運行 Wireshark 嘅電腦

USB 裝置會繼續正常運作,同時佢嘅流量會被鏡像到監控埠。

安裝所需軟件

Wireshark 安裝

Wireshark 必須安裝喺監控電腦上。喺 Windows 安裝期間,一定要啟用 USB 捕捉支援組件。冇咗呢個驅動程式,就無法捕捉 USB 流量。

安裝完成之後,Wireshark 會喺網絡介面旁邊列出 USB 捕捉介面。

USB 偵測器驅動程式(Windows)

喺 Windows 上需要一個細小嘅輔助執行檔,等 Wireshark 可以從硬件存取 USB 偵測數據。呢個執行檔必須放喺系統路徑入面(例如直接放喺 C:\Program Files\Wireshark\extcap  或者你安裝 Wireshark 嘅任何位置),咁 Wireshark 先可以同偵測器通訊。

喺 Wireshark 入面捕捉 USB 數據

啟動 Wireshark 之後,選擇 USB 偵測器介面並開始捕捉。最初可能會出現大量無關嘅 USB 流量。

usb_sniffter-11

套用 USB 過濾器

為咗只專注喺相關嘅 USB 數據,會套用一個顯示過濾器:

usbll

呢個過濾器只會顯示 USB Link Layer 封包,入面包含咗裝置同主機之間交換嘅原始 USB 交易。

因為 USB 產生嘅數據量非常大,所以需要進一步過濾。

按封包 ID(PID)過濾

滑鼠同鍵盤嘅數據封包可以透過特定嘅封包 ID(PID)嚟識別。喺呢個項目入面,觀察到嘅相關 PID 包括:

  • 0xC3
  • 0x4B

呢啲可以用Wireshark咁樣過濾:

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

呢個過濾器會隔離嚟自滑鼠或者鍵盤嘅HID報告封包。

了解滑鼠數據

當滑鼠移動或者撳掣嗰陣,HID報告會持續發送。每個報告包含幾個位元組:

  • 報告ID
  • 按鈕狀態(左、右、中)
  • X軸移動
  • Y軸移動

透過觀察Wireshark入面位元組值嘅變化,可以推斷到滑鼠移動方向同速度。就算冇撳掣,淨係移動本身都會產生可見嘅USB活動。

了解鍵盤數據

鍵盤數據係以HID報告形式發送,包含掃描碼而唔係ASCII值。每個按鍵對應一個特定嘅HID用途ID。

例如:

  • 0x04 → 字母A
  • 0x05 → 字母B
  • 0x0E → 字母K

大寫同細寫字母係由Shift呢啲修飾鍵決定,佢哋會出現喺報告嘅獨立位元組入面。

F12呢啲功能鍵都會產生獨特嘅掃描碼,可以直接喺捕獲嘅封包入面觀察到。

安全影響

呢個項目清楚證明咗USB HID流量係冇加密嘅。如果一個惡意裝置被物理上放喺鍵盤同電腦之間,佢可以捕獲每一次按鍵,包括用戶名同密碼。

呢個就係點解喺敏感環境入面,USB安全、可信硬件同物理存取控制係咁重要。

示範總結

喺呢個示範入面,以下項目成功被捕獲同解碼:

  • 滑鼠移動同按鈕活動
  • 個別鍵盤按鍵
  • 功能鍵同修飾鍵
  • 喺鍵盤上打出嘅完整字詞

USB嗅探器係透明運作嘅,冇物理檢查嘅話好難偵測到。

結論

呢個USB嗅探器項目提供咗一個強勁嘅動手示範,展示USB通訊喺最低層面係點樣運作。透過結合專用嘅嗅探硬件同Wireshark,就可以確切睇到輸入裝置點樣同電腦通訊。

呢個項目好適合學習USB協議、HID報告結構同現實世界嘅安全考慮。雖然今次用滑鼠同鍵盤做示範,但同樣嘅原理適用於好多其他USB裝置。

軟件下載

用嚟配合Wireshark捕獲USB數據嘅Windows輔助應用程式usb_sniffer_win.exe可以喺呢篇文章下面下載。

圖片

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
请提供需要翻译的文本。

你可能需要嘅嘢

資源與參考資料

文件📁

用户手册

其他文件