873 字
5 分鐘
💻 BadUSB 攻擊原理

USB
在當今的數字環境中,USB 設備以其“即插即用”的便利性,已成為我們工作與生活的標配。然而,正是這種根植於 USB 協議設計中的便捷性,如今也有被惡意攻擊利用的情況發生。
BadUSB 攻擊正是利用了這一協議的固有缺陷。它通過HID協議的漏洞偽裝成鍵盤、鼠標等 HID(人機介面設備)。一旦連接電腦,它便能在用戶毫無察覺的情況下,模擬鍵盤輸入惡意指令,從而輕松繞過傳統殺毒軟體和安全防護,實現對目標系統的完全控制。
BadUSB 與傳統 USB 攻擊的原理完全不同。
- 傳統 USB 攻擊:通常將 USB 存儲設備(如 “隨身碟”)作為病毒或惡意軟體的載體。例如,臭名昭著的 Stuxnet 病毒就是通過感染 “隨身碟”進行傳播的。在這種情況下,USB 設備本身不具備攻擊能力,它只是一個被動存儲惡意代碼的“硬盤”。攻擊的觸發依賴於用戶主動運行存儲設備中的惡意文件。
- BadUSB 攻擊:並非利用存儲空間,而是設備本身就是一個武器。一旦將這個USB設備連接到電腦,它會主動欺騙操作系統,將自己偽裝成一個受信任的 HID 設備(如鍵盤),並立即開始執行預設的攻擊指令。整個過程無需用戶任何操作,攻擊在設備插入的瞬間就已發生。
工作原理
BadUSB 攻擊之所以能夠成功,其根源在於 USB 協議的設計機制和操作系統對 HID 設備的“無條件信任”。
當 USB 設備連接到主機時,會經歷一個枚舉過程。在這個過程中,設備會向主機發送一系列“描述符”(Descriptor),告知主機“我是誰”、“我能做什麼”。主機根據這些描述符來加載相應的驅動程式。
BadUSB 利用的漏洞就出在這里:操作系統對枚舉過程缺乏有效的安全驗證
攻擊者通過特殊工具重寫 USB 設備的韌體,可以偽造這些描述符。例如,一個原本是單片機的設備,可以在插入電腦時,向主機發送一個“鍵盤”的描述符。操作系統看到這個描述符後,會毫不懷疑地將其識別為一個新鍵盤,並準備接收它的“按鍵輸入”。
攻擊流程如下:
- 韌體重寫:攻擊者獲取一個支持韌體重寫的 USB 設備,將惡意韌體刷入其中。
- 設備偽裝:惡意韌體中包含了偽造的 HID 描述符。
- 自動執行:當該設備插入目標電腦時,操作系統在枚舉過程中被欺騙,將其識別為 HID 設備(如鍵盤)。
- 惡意輸入:設備開始模擬鍵盤輸入,以極快的速度(遠超人類打字速度)自動打開powershell並執行預設的惡意命令。
結語
鍵盤、鼠標、行充等,都可以被植入惡意代碼,目前我們的生活高度依賴USB,以至於這種攻擊方式成功率極高。也許就是上個洗手間的工夫,攻擊者拿了一個U盤幾秒鐘就入侵了你的電腦。
💻 BadUSB 攻擊原理
https://illumi.love/posts/資安向/badusb-攻擊原理/ 參與討論
使用 GitHub 帳號登入參與討論