i-am-shodan/USBArmyKnife

GitHub: i-am-shodan/USBArmyKnife

基于 ESP32 的多合一近场攻击平台,融合 HID 注入、网络伪装与无线攻击能力。

Stars: 2302 | Forks: 224

License [![PlatformIO CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7218035bee233504.svg)](https://github.com/i-am-shodan/USBArmyKnife/actions/workflows/main.yml) [![.NET](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/49ba6f1f1f233505.svg)](https://github.com/i-am-shodan/USBArmyKnife/actions/workflows/dotnet.yml) Twitter [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/O5O8145AVW) Buy Me A Coffee # USB Army Knife
Introducing the USB Army Knife – the ultimate tool for penetration testers and red teamers.
紧凑且多功能,该设备凭借其广泛的功能重磅出击,包括 USB HID 攻击、大容量存储模拟、网络设备伪装以及 WiFi/Bluetooth 漏洞利用(得益于我们分叉的 ESP32 Marauder 版本)。 完全控制载荷的运行方式和时机。插入即执行、留下并通过 WiFi 触发、定时运行或构建好莱坞式的 UI。只需使用手机,通过友好的 Bootstrap Web 界面即可轻松管理和部署您的攻击。 想要更多?部署 Agent,即使机器处于锁定状态也能执行命令。通过 Serial 接口进行的数据渗出极难被检测。您甚至可以通过设备的专用 WiFi 连接查看受害者的屏幕。 装备 USB Army Knife,将您的本地访问工具包提升到一个新的水平。 ## 用户评价 *“你的设备是邪恶的。你在作恶。”* - Mr. Peoples via X ## 简介 当今的物理访问/USB 攻击存在一个问题。就其本身而言,每种攻击都无法提供足够的解决方案来满足大多数目标。 * USB 键盘攻击(Ducky, HID&Run)需要已登录的机器,即使是最好的工具也无法为此提供解决方案。 * 网络攻击(poison tap 等)可能会让您获得密码哈希,但通常需要复杂的东西挂在以太网端口上,以便将其取回进行离线破解。 * 当您进入一台主机后,如果任何打开 Socket 的东西都被发送到 VT,您还有什么选项可以渗出数据。 我们需要的是一个物理访问平台,使合适的攻击者能够利用每种攻击的最佳部分,并通过另一种攻击解决各自的问题。理想情况下,这个平台应该非常便宜且隐蔽,以至于丢失一个也不是问题。 这就是我决定创建 USB Army Knife 的原因。 * 想要变成一个 USB 以太网适配器,PCAP 接口并通过 WiFi 渗出数据?USB Army Knife。 * 想要将您的攻击包装在自定义 UI 中,或者在攻击成功时仅显示一个好莱坞式的界面?USB Army Knife。 * 想要一个隐蔽的存储设备?USB Army Knife。 * 想要让 WiFi 上的所有人 Deauth(解除验证),PCAP 重新协商的过程,并在机器解锁时通过邮件发送给自己以进行离线破解?USB Army Knife。 * 想让您的攻击在被发现时自毁?USB Army Knife。 * 想要连接到其他硬件、运动传感器等设备?USB Army Knife。 * 想要通过 WiFi 查看受害者屏幕上的内容?USB Army Knife。 * 想要录制您的受害者在说什么?USB Army Knife。 ## 视频 [该视频展示了终极 Rick Roll 是如何工作的](./examples/rickroll/) https://github.com/user-attachments/assets/f373e18e-5cad-4871-9f2a-17523fa33398 [该视频展示了 USB PCAP 功能,并简要展示了 Web 界面](./examples/usb_ethernet_pcap/) https://github.com/user-attachments/assets/0d5b1485-b808-46c6-aaf7-7cf016088b8f [该视频展示了如何在 Agent 安装后拉取受害者的机器屏幕](./examples/vnc/) https://github.com/user-attachments/assets/3c866d29-ef26-4eaf-943b-1206b8c40101 ## 功能特性 该项目实现了围绕易于隐藏的 USB/WiFi/BT Dongle 的多种攻击。攻击包括发送 BadUSB(使用 DuckyScript 的 USB HID 命令)、显示为大容量存储设备、显示为 USB 网络设备,以及使用 ESP32 Marauder 执行 WiFi 和 Bluetooth 攻击。攻击是使用您可能已经了解并喜爱的类 Ducky 语言部署的。该语言已通过大量自定义命令甚至整个 ESP32 Marauder 功能(已改进)进行了增强。攻击包括: - **USB HID 攻击**:使用 DuckyScript 发送自定义 HID 命令,支持 BadUSB 和 USB HID 以及 Run 风格的攻击。支持多种键盘布局/语言。 - **大容量存储设备**:模拟 USB 大容量存储设备(USB 驱动器和 CDROM)。 - **USB 网络设备**:显示为 USB 网络设备。 - **WiFi 和 Bluetooth 攻击**:利用 ESP32 Marauder 进行 WiFi 和 Bluetooth 攻击。包括 EvilAP、Deauth 和 PCAP。 - **Hot Mic**:插入 USB 设备并通过 WiFi 流式传输音频 ## 示例 | Name | Description | | ------------- | ------------- | | [隐蔽存储](./examples/covertstorage/) | 展示如何伪装成两个不同 USB 大容量存储设备的示例。第一次插入设备时,设备会显示 Micro SD 卡的全部内容。在所有后续尝试中,会出现一个不同的“良性”驱动器。 | | [进度条](./examples/progressbar/) | 在设备 LCD 屏幕上显示进度条图像。非常适合那些好莱坞风格的攻击,或者如果您想要一个视觉指示器来显示攻击已部署。 | | [终极 RickRoll](./examples/rickroll/) | 注入击键以显示著名的 Rickroll 视频,同时也使用 ESP32 Marauder 通过 WiFi 爆发歌词。 | | [USB Ethernet PCAP](./examples/usb_ethernet_pcap/) | 将设备变成 USB 网络适配器,并收集前几秒网络流量的 PCAP。 | | [部署 Serial Agent](./examples/install_agent_and_run_command/) | 如果尚未安装,则部署 Agent 并通过 Serial Port 发送命令。命令输出可以在 Web 界面中看到。 | | [拉取屏幕](./examples/vnc/) | 部署 Agent,该 Agent 包含一个微型 VNC Server。现在可以通过 Web 界面查看屏幕。 | | [简单 UI](./examples/simple_ui/) | 一个简单但强大的 UI,用于选择脚本/图像并使用硬件按钮运行它们。展示了如何简单地构建复杂的 UI 交互。 | | [通过 WiFi 流式传输 Mic 音频](./examples/hotmic/) | M5Stack AtomS3U 有一个麦克风,您可以通过 WiFi 进行流式传输。 | | [立即使 Linux 主机崩溃](./examples/linux_panic/) | 部署一个糟糕的文件系统,导致自动挂载的 Linux 主机 Panic。 | | [恶意 USB CDROM/NIC](./examples/malicious_ethernet_adapter/) | 伪装成一个 USB NIC,它需要来自插入 NIC 时出现的 CDROM 设备的驱动程序。 | | [使用不同的键盘布局](./examples/multiple_keyboard_layouts/) | 自动支持不同的键盘布局,无需重写您的 Payloads。 | ## 支持的硬件 | Hardware | Supported | Purchase Links | | ------------ | -------------- | -------------- | | **LilyGo T-Dongle S3** (推荐)![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/ccefa74c07233507.png) | LilyGo T-Dongle S3 是一个 USB 笔状驱动器形状的 ESP32-S3 开发板。它配备了一个彩色 LCD 屏幕、物理按钮、隐藏/隐蔽的 Micro SD 卡适配器(在 USB-A 连接器内部)以及一个 SPI 适配器。它拥有 16MB Flash。它基于 ESP32-S3 芯片组,使其能够托管 WiFi Station 以及支持一系列 WiFi 和 Bluetooth 攻击。*它非常便宜!* 该设备有两个版本,带屏幕和不带屏幕。仅测试过带屏幕的版本。 |
  • [AliExpress](https://s.click.aliexpress.com/e/_DCMq0ZX)
  • [Amazon UK](https://amzn.to/3YuNCg3)
  • [Amazon US](https://amzn.to/4f4AqUk)
  • [eBay UK](https://ebay.us/3TJVed)
| | **Evil Crow Cable Wind** ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/c265eaa2fa233509.png) | Evil Crow Cable Wind 是一根植入恶意的 USB 线缆,内部隐藏着一个 ESP32-S3,它有几种不同的变体。一端可用于主动 USB 攻击,而另一端旨在为设备充电。其独特的设计使其成为最隐蔽的 USB Army Knife capable 设备之一。因此,该设备没有屏幕、SD 卡或 LED 或一个好的硬件按钮(内部有一个,需要使用磁铁)。代替 SD 卡,Flash Memory 用于存储文件。**注意** 虽然可以在这些设备上运行 Wireless Access Point,但设备可能会变得非常热。为了解决这个问题,USB Army Knife 支持热节流,如果设备过热将关闭 WiFi。为了完全避免此问题,您应该连接到现有的无线网络(而不是托管 Access Point)或禁用 WiFi,这样设备就不会过热。[该设备有特定的安装说明](https://github.com/i-am-shodan/USBArmyKnife/wiki/Installation-on-the-Evil-Crow-Cable-Wind) |
  • [USB-A to USB-C AliExpress](https://s.click.aliexpress.com/e/_EGxBPoe)
  • [USB-C to USB-C AliExpress](https://s.click.aliexpress.com/e/_Ez0U334)
| | **T-Watch S3** ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/4afe30a7cb233510.png) | T-Watch S3 是一个智能手表平台,内部封装了大量硬件,包括屏幕、WiFi、RTC、Mic、加速度计、红外、触觉反馈和 LoRa 收发器。其中大部分已由 USB Army Knife 平台支持。表冠充当按钮,还有一个用于充电/HID 攻击的 Mini USB 端口。由于该手表基于 ESP32-S3 芯片组,它可以托管 WiFi Station 以及支持一系列 WiFi 和 Bluetooth 攻击。关键是它没有 SD 卡槽,Flash Memory 用于存储文件。因此,攻击脚本和任何结果限制在约 10MB。该平台的刷写稍微复杂一些,请查看 Wiki 以获取有关如何让您的设备运行起来的指导。[该设备有特定的安装说明](https://github.com/i-am-shodan/USBArmyKnife/wiki/Installation-on-the-T%E2%80%90Watch-S3) |
  • [带 GPS AliExpress](https://s.click.aliexpress.com/e/_ExPs5dU)
  • [无 GPS(较小)推荐型号 AliExpress](https://s.click.aliexpress.com/e/_EvTEmdu)
| | **Waveshare ESP32-S3 1.47inch** ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/86312339b7233512.png) | 该设备在设计、尺寸和功能上与 LilyGo T-Dongle S3 相似,并使用相同的芯片组。它显然是一个开发板,因为它没有外壳,底部有暴露的电路。该设备优于 T-Dongle S3 的地方在于它拥有非常大且高质量的屏幕以及 8MB 的额外 RAM。 |
  • [AliExpress](https://s.click.aliexpress.com/e/_DmlJI3x)
  • [eBay UK](https://ebay.us/E4gFr5])
| | **M5Stack AtomS3U** ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/47a1526fc2233534.png) | 这是一个 ESP32-S3 开发板,后部有两个外部接口。它没有屏幕或 SD 卡,但有 LED 和按钮。代替 SD 卡,Flash Memory 用于存储文件。不寻常的是,它还包含一个数字麦克风和 IR LED,目前不受支持。要让设备进入 Boot 模式,请按住 RESET(设备侧面的按钮),直到绿色 LED 亮起。 |
  • [AliExpress](https://s.click.aliexpress.com/e/_EIAUNXX)
| | **ESP32 Udisk** ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/fb2e181490233535.png) | 可以运行 USB Army Knife 代码的最基本设备是连接到 USB 端口的 ESP32-S2 芯片。通常您会发现这些设备在与 T-Dongle S3 非常相似的外壳中出售,并且倾向于在 AliExpress 等网站上作为 Playstation 4 越狱工具做广告,名称为“USB Dongle Udisk for P4”。这些设备缺乏 RAM、屏幕、SD 卡、Bluetooth、LED 和一个好的硬件按钮。代替 SD 卡,Flash Memory 用于存储小文件。这些设备非常便宜,通常擅长运行 HID+WiFi Payloads(如 Rick Roll)。**警告** 它们的性能不足以运行 Webserver。购买时**注意**,它们经常会与外观非常相似的设备混淆,后者包含 CH343P 芯片组且没有重置按钮。**确保您购买的设备有一个可以用回形针按下的按钮。** 确保使用 Generic-ESP32-S2 配置刷写此设备。 |
  • [AliExpress](https://s.click.aliexpress.com/e/_Dn5wXe5)
  • [Amazon UK](https://amzn.to/3Y4hrCE)
  • [Amazon US](https://amzn.to/4h98Jf4)
  • [eBay UK](https://ebay.us/AVZcK0)
| | **Pocket-Dongle-S3 ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/73f25750db233536.png) | 外观与 LilyGo T-Dongle S3 非常相似的设备,但具有不同的 SD 卡和按钮外形因素。该设备没有 LED 或 QWIIC 接口槽。在内部,该设备使用较旧的 SD 卡接口,因此预计传输速度较慢。 |
  • [AliExpress](https://s.click.aliexpress.com/e/_EIZx5Sw)
| | **ESP32 Key** ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/128a9e7410233538.png) | 与 ESP32 UDisk 非常相似(请参阅该描述以了解它不能做的事情列表),这是一个电路板上的 ESP32-S2。它可能是可以运行 USB Army Knife 的最便宜的设备,价格也相匹配。插入时您需要按住按钮才能让设备进入刷写模式。确保使用 Generic-ESP32-S2 配置刷写此设备。 |
  • [AliExpress](https://s.click.aliexpress.com/e/_EyliW13)
| | **Waveshare-ESP32-GEEK** ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7fd9d73776233539.png) | ESP32-GEEK 是由 Waveshare 设计的开发板。它具有 USB-A、1.14 英寸 LCD 屏幕、SD 卡和外部端口(SWD、UART 和 I2C),它没有 LED。插入时按住按钮即可让设备进入刷写模式。该设备有一些 SD 卡问题(兼容性和低速)。您可能需要使用 8GB 分区并尝试几张卡品牌以找到兼容的东西(我发现 Kingston 64gb 卡配合 9GB 分区有效,YMMV)。 |
  • [AliExpress](https://s.click.aliexpress.com/e/_EJsjVAc)
  • [Amazon UK](https://amzn.to/41hLVnn)
  • [Amazon US](https://amzn.to/3QnV9rW)
| | **Waveshare-RP2040-GEEK** ![screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7eacea5641233540.jpg) | RP2040-GEEK 是由 Waveshare 设计的开发板。它具有 USB-A、1.14 英寸 LCD 屏幕、SD 卡和外部端口(SWD、UART 和 I2C)。**此开发板不运行 ESP32 芯片组。USB Ethernet (NCM) 模式和整个磁盘 SD 使用目前均不受支持。ESP32 Maurader 无法在此设备上工作!** 在 Windows 上,您可能还需要使用 [Zadig](https://zadig.akeo.ie/) 将此设备设置为使用 WinUSB 驱动程序。插入时按住按钮即可让设备进入刷写模式。 |
  • [AliExpress](https://s.click.aliexpress.com/e/_EvdfVGH)
  • [Amazon UK](https://amzn.to/3YZvD1f)
  • [Amazon US](https://amzn.to/3YY4Ouy)
| ## 入门指南 首先请查看 [Wiki](https://github.com/i-am-shodan/USBArmyKnife/wiki) 以获取分步指南和各种入门建议。 ### 安装 将 USB Army Knife 固件安装到您的设备上有两个选项: * [使用 Web 浏览器刷写预构建固件(最简单的途径)]([https://github.com/i-am-shodan/USBArmyKnife/wiki/Installation#using-a-web-browser](https://github.com/i-am-shodan/USBArmyKnife/wiki/Installation#flashing-with-a-web-browser)) * [使用 Visual Studio Code 构建和刷写源代码(更强大)]([https://github.com/i-am-shodan/USBArmyKnife/wiki/Installation#using-visual-studio-code](https://github.com/i-am-shodan/USBArmyKnife/wiki/Installation#flashing-with-visual-studio-code-and-platformio)) ### 用法 1. 将 USB Dongle 连接到您的计算机。 2. 连接到 WiFi Access Point (iPhone14),密码为 'password'。 3. 通过浏览器导航到 URL (http://4.3.2.1:8080) 访问 Web 界面。 4. 确保 Web 界面已正确加载。您应该看到当前运行的状态和运行时间。如果没有,请刷新页面。 5. 使用 Web 界面通过 DuckyScript 创建和管理您的攻击。 *基于 ESP-S2 的设备支持 WiFi,但没有 Web 界面。攻击通过 DuckyScript 文件管理。* *RP2040 设备没有 ESP32 Maurader 功能* ## 如何获取帮助 * 有关于 DuckyScript 的问题? * [DuckyScript 快速参考](https://docs.hak5.org/hak5-usb-rubber-ducky/duckyscript-tm-quick-reference) * [USB Army Knife 命令参考](https://github.com/i-am-shodan/USBArmyKnife/wiki) * 入门遇到问题? * 查看示例 * [讨论页面](https://github.com/i-am-shodan/USBArmyKnife/discussions) * 发现了 Bug? * [创建 Issue](https://github.com/i-am-shodan/USBArmyKnife/issues) ## 未来计划 ### USB Host 模式 / 移动设备支持 没有理由 USB Army Knife 不能在 USB Host 模式下运行。也就是计算机工作的模式。通过这种方式,USB Army Knife 可以像计算机一样发出命令。由于大多数智能手机支持 PTP(图片传输协议),这意味着理论上您可以将 USB Army Knife(带有 USB 适配器)插入手机并让其提取照片。 [Espressif 有 USB Host 模式的文档](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/usb_host.html) 以及 [示例代码](https://github.com/espressif/esp-idf/tree/master/examples/peripherals/usb/host)。他们没有 PTP 协议的示例。 您可以使用 [USB PCAP](https://desowin.org/usbpcap/) 收集您手机使用 PTP 的 PCAP,甚至还有一个 WireShark [解析器](https://wiki.wireshark.org/USB-PTP) ## 联系方式 如果您有任何问题或建议,请随时联系我们: - 在仓库中提出 Issue:[GitHub Repository](https://github.com/i-am-shodan/usb-army-knife) - 在 Twitter 上联系我们:[@therealshodan](https://twitter.com/therealshodan) ## 许可证 该项目根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。 ## 致谢 - 灵感来源于各种 BadUSB 项目和 ESP32 Marauder 项目。 ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=i-am-shodan/USBArmyKnife&type=Date)](https://star-history.com/#i-am-shodan/USBArmyKnife&Date)
标签:BadUSB, C2代理, ESP32, HID攻击, PE 加载器, UML, USB攻击, WiFi攻击, 屏幕监控, 物理安全, 硬件植入, 网络模拟, 蓝牙攻击, 近源攻击