USB Army Knife – 渗透测试人员和红队人员的终极近距离接触工具。
🚀 USB Army Knife v2 正在酝酿中——它将是一头猛兽
在 v1 上进行了两年的积极开发之后,v2 计划将 USB Army Knife 打造成一个完整的口袋里的红队平台。今年秋天将发布重大公告,但我还是想先透露一下:
- 全新的 Web UI——更小巧、更快速、更精致且支持多语言,内置 VNC 查看器,可直接从浏览器观看并操控目标。它不会像现在这样绑定任何 Web 工具,因此任何人都可以对其进行修改。
- 全新的 UAK 脚本引擎——兼容 DuckyScript v3,但在完整字符串和返回码支持方面远超 DuckyScript 3 所能做到的一切。这使得编写更整洁、更健壮的 payload 变得容易得多。
- 全新的跨平台 Agent,支持 Windows、Linux 和 macOS——实时 VNC、麦克风采集,甚至可能通过 USB 串行链路实现网络访问。
- 众多新功能——涵盖网络、文件、强制门户、蓝牙等领域的全新功能!USB 2.0 提供更快的吞吐量,并支持只读和读写容器!
- 为 AI 就绪——一个带有真实 UAK 脚本验证器的 MCP 服务器,让你的 AI 在 payload 到达设备之前就能编写并检查它们。
这项工作已有大量内容完成,我一直在忙于寻找足够强大的硬件来运行这个新平台。显而易见的是,当初启动这个项目的加密狗将无法处理更新的 V2 功能。但我个人非常喜欢它的外形。 我确信的是,v2 将让 UAK 变成一根极小的棒子,它能自行编写脚本、选择目标、控制设备、监听房间,甚至可能还能与它的同类设备通信……
这款设备紧凑且功能多样,凭借其广泛的能力而威力十足,包括 USB HID 攻击、大容量存储仿真、网络设备伪装以及 WiFi/蓝牙漏洞利用(这要归功于我们分叉的 ESP32 Marauder 版本)。
你可以完全控制 payload 的运行方式和时机。即插即执行、遗留后通过 WiFi 触发、按定时器运行,或构建好莱坞风格的 UI。只需使用手机,通过用户友好的 Bootstrap Web 界面即可轻松管理和部署你的攻击。
想要更多?部署 agent,即使在机器处于锁定状态时也能执行命令。通过串行接口进行外传极其难以被检测。你甚至可以通过设备专用的 WiFi 连接查看受害者的屏幕。
用 USB Army Knife 装备自己,将你的本地访问工具包提升到新的水平。
“你的设备是邪恶的。你在做邪恶的事。” - Mr. Peoples 于 X
当今的物理访问/USB 攻击存在一个问题。单独来看,每种攻击都无法提供足够的解决方案来满足大多数目标。
我们需要的是一种物理访问平台,它能让合适的恶意攻击者取每种攻击的最佳部分,并用另一种攻击来规避各自的问题。理想情况下,这个平台应该足够便宜且隐蔽,以至于丢失一个也不是问题。
这就是我决定创建 USB Army Knife 的原因。
https://github.com/user-attachments/assets/f373e18e-5cad-4871-9f2a-17523fa33398
此视频展示了 USB PCAP 功能,并简要展示了 Web 界面
https://github.com/user-attachments/assets/0d5b1485-b808-46c6-aaf7-7cf016088b8f
https://github.com/user-attachments/assets/3c866d29-ef26-4eaf-943b-1206b8c40101
本项目实现了基于易于隐藏的 USB/WiFi/BT 加密狗的各种攻击。这些攻击包括发送 BadUSB(使用 DuckyScript 的 USB HID 命令)、伪装成大容量存储设备、伪装成 USB 网络设备,以及使用 ESP32 Marauder 执行 WiFi 和蓝牙攻击。攻击使用你可能已经熟悉并喜爱的类 Ducky 语言进行部署。该语言已通过大量自定义命令得到增强,甚至包含完整的 ESP32 Marauder 功能(已改进)。攻击包括:
首先请查看 wiki 获取分步指南以及各种入门建议。
有两种方法可以将 USB Army Knife 固件刷写到你的设备上:
基于 ESP-S2 的设备支持 WiFi,但没有 Web 界面。攻击通过 DuckyScript 文件进行管理。 RP2040 设备不具备 ESP32 Marauder 功能
USB Army Knife 没有理由不能以 USB 主机模式运行。这与计算机工作的模式相同。这样,USB Army Knife 就可以像计算机一样发出命令。由于大多数智能手机支持 PTP(图片传输协议),这意味着理论上你可以将 USB Army Knife(带 USB 适配器)插入手机,让它拉取照片。Espressif 提供了 USB 主机模式的文档,同时也有示例代码。但他们没有提供 PTP 协议的示例。 你可以使用 USB PCAP 通过 PTP 采集手机的 PCAP 数据,甚至还有一个 WireShark 解析器。
欢迎贡献!请 fork 本仓库并提交拉取请求。
如果您有任何问题或建议,欢迎随时联系我们:
本项目采用 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
| 名称 | 描述 |
|---|
| 隐蔽存储 | 示例展示如何伪装成两个不同的 USB 大容量存储设备。设备第一次插入时,会显示 micro SD 卡的全部内容。在之后的所有尝试中,会出现一个不同的“良性”驱动器。 |
| 进度条 | 在设备的 LCD 屏幕上显示图像,展示进度条。非常适合好莱坞风格的攻击,或者当你想要一个视觉指示器来显示攻击已部署时。 |
| 终极 RickRoll | 注入按键以显示著名的 rickroll 视频,同时还使用 ESP32 Marauder 通过 WiFi 播放歌词。 |
| USB 以太网 PCAP | 将设备变成 USB 网络适配器,并收集前几秒网络流量的 PCAP。 |
| 部署串行 agent | 如果 agent 尚未安装则进行部署,并通过串行端口发送命令。命令输出可在 Web 界面中查看 |
| 拉取屏幕 | 部署 agent,该 agent 包含一个微型 VNC 服务器。现在可以通过 Web 界面查看屏幕 |
| 简单 UI | 一个简单但强大的 UI,用于选择脚本/图像并使用硬件按钮运行它们。展示如何轻松构建复杂的 UI 交互。 |
| 通过 WiFi 流式传输麦克风音频 | M5Stack AtomS3U 有一个麦克风,你可以通过 WiFi 进行流式传输。 |
| 立即崩溃 Linux 机器 | 部署一个恶意文件系统,导致自动挂载的 Linux 机器崩溃。 |
| 恶意 USB CDROM/NIC | 伪装成 USB NIC,需要从插入 NIC 时出现的 CDROM 设备安装驱动程序。 |
| 使用不同的键盘布局 | 无需重写 payload 即可自动支持不同的键盘布局 |
| 硬件 | 支持情况 | 购买链接 |
|---|
LilyGo T-Dongle S3 (推荐)![]() | LilyGo T-Dongle S3 是一款 USB 闪存盘形状的 ESP32-S3 开发板。它配备彩色 LCD 屏幕、物理按钮、隐藏/隐蔽式 micro SD 卡适配器(位于 USB-A 连接器内部)以及 SPI 适配器。拥有 16MB 闪存。它基于 ESP32-S3 芯片组,既能作为 WiFi 站点,也支持一系列 WiFi 和蓝牙攻击。它非常便宜! 该设备有带屏幕和不带屏幕两个版本。只有带屏幕的版本经过测试。 | |
Evil Crow Cable Wind ![]() | Evil Crow Cable Wind 是一款恶意植入的 USB 线缆,内部隐藏了 ESP32-S3,有几种不同的变体。一端可用于主动 USB 攻击,另一端用于为设备充电。其独特的设计使其成为最能隐蔽运行的 USB Army Knife 设备之一。因此,该设备没有屏幕、SD 卡、LED 或良好的硬件按钮(内部有一个按钮,需要使用磁铁触发)。文件存储在闪存中而非 SD 卡上。注意 虽然可以在这些设备上运行无线接入点,但设备可能会变得非常热。为应对此问题,USB Army Knife 支持热节流,如果设备过热将关闭 WiFi。要完全避免此问题,你应该连接到现有的无线网络(而不是托管接入点)或禁用 WiFi,这样设备就不会过热。该设备有特定的安装说明 | |
T-Watch S3 ![]() | T-Watch S3 是一款智能手表平台,内部集成了大量硬件,包括屏幕、WiFi、实时时钟、麦克风、加速度计、红外、触觉反馈和 LoRa 收发器。其中大部分已得到 USB Army Knife 平台的支持。手表的表冠充当按钮,还有一个用于充电/HID 攻击的迷你 USB 端口。由于手表基于 ESP32-S3 芯片组,它可以作为 WiFi 站点,并支持一系列 WiFi 和蓝牙攻击。关键的是它没有 SD 卡插槽,文件存储在闪存中。因此,攻击脚本和任何结果限制在约 10MB。该平台的刷写稍微复杂一些,请查看 Wiki 获取如何让设备运行起来的指导。该设备有特定的安装说明 | |
Waveshare ESP32-S3 1.47inch ![]() | 该设备在设计、尺寸和功能上与 LilyGo T-Dongle S3 相似,并使用相同的芯片组。它显然是一款开发板,因为没有外壳,底部有裸露的电路。该设备优于 T-Dongle S3 的地方在于它拥有非常大且高质量的屏幕和额外的 8MB RAM。 | |
M5Stack AtomS3U ![]() | 这是一款 ESP32-S3 开发板,背面有两个外部接口。它没有屏幕或 SD 卡,但确实有 LED 和按钮。文件存储在闪存中而非 SD 卡上。不同寻常的是,它还包含一个数字麦克风和 IR LED,但目前不支持。要将设备置于刷写模式,请按住 RESET(设备侧面的按钮),直到绿色 LED 亮起。 | |
ESP32 Udisk ![]() | 能运行 USB Army Knife 代码的最基本设备是连接到 USB 端口的 ESP32-S2 芯片。你经常可以在与 T-Dongle S3 非常相似的外壳中找到这些设备,并且往往在 AliExpress 等网站上以 Playstation 4 越狱工具的名义宣传,名为“USB Dongle Udisk for P4”。这些设备缺乏 RAM、屏幕、SD 卡、蓝牙、LED 和良好的硬件按钮。文件存储在闪存中而非 SD 卡上,用于存储小文件。这些设备非常便宜,通常擅长运行 HID+WiFi payload(如 rick roll)。警告 它们性能不足,无法运行 Web 服务器。购买时请注意,它们经常与外观非常相似但包含 CH343P 芯片组且没有重置按钮的设备混淆。确保你购买的设备有一个可以用回形针按下的按钮。 请务必使用 Generic-ESP32-S2 配置刷写此设备。 | |
Pocket-Dongle-S3 ![]() | 外观与 LilyGo T-Dongle S3 非常相似,但 SD 卡和按钮的外形不同。该设备没有 LED 或 QWIIC 接口插槽。内部使用较旧的 SD 卡接口,因此传输速度会较慢。 | |
ESP32 Key ![]() | 与 ESP32 UDisk 非常相似(请参阅该描述以了解其无法做到的事情列表),这是一块电路板上的 ESP32-S2。它可能是勉强能运行 USB Army Knife 的最便宜设备,价格也与之匹配。你需要插入设备时按住按钮才能进入刷写模式。请务必使用 Generic-ESP32-S2 配置刷写此设备。 | |
Waveshare-ESP32-GEEK ![]() | ESP32-GEEK 是 Waveshare 设计的开发板。它有 USB-A、1.14 英寸 LCD 屏幕、SD 卡,并有外部端口(SWD、UART 和 I2C),没有 LED。插入设备时按住按钮以进入刷写模式。该设备存在一些 SD 卡问题(兼容性和低速度)。你可能需要使用 8GB 分区并尝试几种卡品牌以找到兼容的卡(我发现一张带 9GB 分区的 Kingston 64GB 卡可用,效果因人而异)。 | |
Waveshare-RP2040-GEEK ![]() | RP2040-GEEK 是 Waveshare 设计的开发板。它有 USB-A、1.14 英寸 LCD 屏幕、SD 卡,并有外部端口(SWD、UART 和 I2C)。该板不运行 ESP32 芯片组。USB 以太网(NCM)模式和整盘 SD 使用目前均不支持。ESP32 Marauder 无法在此设备上工作! 在 Windows 上,你可能还需要使用 Zadig 将此设备设置为使用 WinUSB 驱动程序。插入设备时按住按钮以进入刷写模式。 |