871 字
4 分钟
BadUSB 攻击原理
gemini-aiAI 摘要
Gemini 2.5 Pro

USB#

在当今的数字环境中,USB 设备以其“即插即用”的便利性,已成为我们工作与生活的标配。然而,正是这种根植于 USB 协议设计中的便捷性,如今也有被恶意攻击利用的情况发生。

BadUSB 攻击正是利用了这一协议的固有缺陷。它通过HID协议的漏洞伪装成键盘、鼠标等 HID(人机接口设备)。一旦连接电脑,它便能在用户毫无察觉的情况下,模拟键盘输入恶意指令,从而轻松绕过传统杀毒软件和安全防护,实现对目标系统的完全控制。

BadUSB区别#

BadUSB 与传统 USB 攻击的原理完全不同。

  • 传统 USB 攻击:通常将 USB 存储设备(如 U 盘)作为病毒或恶意软件的载体。例如,臭名昭著的 Stuxnet 病毒就是通过感染 U 盘进行传播的。在这种情况下,USB 设备本身不具备攻击能力,它只是一个被动存储恶意代码的“硬盘”。攻击的触发依赖于用户主动运行存储设备中的恶意文件。
  • BadUSB 攻击:并非利用存储空间,而是设备本身就是一个武器。一旦将这个USB设备连接到电脑,它会主动欺骗操作系统,将自己伪装成一个受信任的 HID 设备(如键盘),并立即开始执行预设的攻击指令。整个过程无需用户任何操作,攻击在设备插入的瞬间就已发生。

工作原理#

BadUSB 攻击之所以能够成功,其根源在于 USB 协议的设计机制和操作系统对 HID 设备的“无条件信任”。

当 USB 设备连接到主机时,会经历一个枚举过程。在这个过程中,设备会向主机发送一系列“描述符”(Descriptor),告知主机“我是谁”、“我能做什么”。主机根据这些描述符来加载相应的驱动程序。

BadUSB 利用的漏洞就出在这里:操作系统对枚举过程缺乏有效的安全验证

攻击者通过特殊工具重写 USB 设备的固件,可以伪造这些描述符。例如,一个原本是单片机的设备,可以在插入电脑时,向主机发送一个“键盘”的描述符。操作系统看到这个描述符后,会毫不怀疑地将其识别为一个新键盘,并准备接收它的“按键输入”。

攻击流程如下:

  1. 固件重写:攻击者获取一个支持固件重写的 USB 设备,将恶意固件刷入其中。
  2. 设备伪装:恶意固件中包含了伪造的 HID 描述符。
  3. 自动执行:当该设备插入目标电脑时,操作系统在枚举过程中被欺骗,将其识别为 HID 设备(如键盘)。
  4. 恶意输入:设备开始模拟键盘输入,以极快的速度(远超人类打字速度)自动打开powershell并执行预设的恶意命令。

结语#

键盘、鼠标、充电宝等,都可以被植入恶意代码,目前我们的生活高度依赖USB,以至于这种攻击方式成功率极高。也许就是上个洗手间的工夫,攻击者拿了一个U盘几秒钟就入侵了你的电脑。

BadUSB 攻击原理
https://tianhw.top/posts/badusb/
作者
THW
发布于
2025-09-07
许可协议
CC BY-NC-SA 4.0