RDTUTORIAL/GhostUSB

GitHub: RDTUTORIAL/GhostUSB

GhostUSB 是一款基于 ESP32-S2/S3 的实验性 USB 安全测试框架,通过 HID 键盘模拟和 WiFi C2 通信实现 BadUSB 攻击链的授权安全研究。

Stars: 0 | Forks: 0


   ____ _               _   _   _ ____  ____  

  / ___| |__   ___  ___| |_| | | / ___|| __ ) 

 | |  _| '_ \ / _ \/ __| __| | | \___ \|  _ \ 

 | |_| | | | | (_) \__ \ |_| |_| |___) | |_) |

  \____|_| |_|\___/|___/\__|\___/|____/|____/

  

GhostUSB v1.0.0

实验性 USB 安全测试框架

Platform Framework License Status

功能快速开始硬件部署模式文档

## 概述 GhostUSB 是一个实验性的基于 USB 的安全测试框架,通过键盘模拟来执行操作。它结合了 BadUSB 功能(AMSI bypass、CVE exploitation、payload delivery)与 WiFi C2 通信,全部运行在通用的 ESP32 硬件上。 该固件实现了一个非阻塞状态机,通过 ESP32 原生 USB 协议栈 (TinyUSB) 处理 USB HID 键盘模拟,利用枚举时序启发式方法进行目标 OS 检测,并提供可配置的部署模式,涵盖了从快速一次性 payload 投递到具有 C2 持久化的全链路 exploitation。 ## 功能 ### USB HID 键盘 通过 ESP32 原生 USB 协议栈模拟键盘。可配置的输入速度支持击键间类似人类的随机延迟,隐身模式支持扩展的随机暂停,快速模式可将键间延迟降至最低。支持多修饰键组合(Win+R、Ctrl+Alt+T、Ctrl+Shift+Esc)。 ### AMSI Bypass 引擎 通过 USB HID 作为 PowerShell payload 投递的四种 AMSI bypass 技术: | 层级 | 技术 | 向量 | |-------|-----------|--------| | 1 | Reflection | 通过 .NET reflection 实现 `amsiInitFailed` | | 2 | 内存补丁 | 覆盖 `AmsiScanBuffer` prologue | | 3 | VEH HWBP | 硬件断点 + Vectored Exception Handler | | 4 | Write Raid | 覆盖 CLR 可写条目 | 后备链:Write Raid -> Reflection。 ### CVE-2026-20817 利用 板载的 WER ALPC LPE payload,针对 `wersvc.dll` 中的 `SvcElevatedLaunch`。该 exploit 创建一个带有恶意命令行的共享内存部分,连接到 WER ALPC 端口,并发送方法 `0x0D` 以 SYSTEM 权限启动 `WerFault.exe`。带有 30 秒编译超时的非阻塞执行器。 ### 12 个板载 Payload | ID | Payload | 目标 | |----|---------|--------| | 0 | Reverse TCP shell | Windows | | 1 | Reverse HTTPS shell | Windows | | 2 | Bind TCP shell | Windows | | 3 | MSF stager | Windows | | 4 | Keylogger | Windows | | 5 | Screenshot capture | Windows | | 6 | WMI persistence | Windows | | 7 | Reverse shell | Linux | | 8 | Bind shell | Linux | | 9 | Cron persistence | Linux | | 10 | Cleanup | Windows | | 11 | CIM persistence | Windows | 所有 payload 均以 USB HID 击键的方式投递。C2 地址为编译时常量。 ### WiFi C2 通信 基于 TCP 并使用 AES-256-GCM(mbedtls 硬件加速)的加密 beacon 协议。支持配置带有抖动(jitter)的 beacon 间隔。STA 模式支持自动 AP 回退。每个 beacon 以 JSON 格式携带设备身份、目标 OS 信息和会话状态,并使用由 PSK + 芯片 ID 派生的设备专用密钥进行加密。 ### 反取证 目标清理命令,通过 `wevtutil` 清除 Windows 事件日志,通过 PowerShell 进行 timestomping,以及带有 NVRAM 标志并在下次启动时擦除 Flash 的自毁机制。 ## 快速开始 ``` # 安装 PlatformIO pip install platformio # 构建固件 cd firmware/esp32 pio run -e s2mini # 刷入设备 pio run -e s2mini -t upload ``` ### C2 Server ``` cd c2_server/python pip install -r ../requirements.txt python c2_server.py ``` Metasploit handler 和辅助模块可在 `c2_server/msf/` 中找到。 ## 硬件 | 开发板 | Flash | PSRAM | 核心数 | BLE | |-------|-------|-------|-------|-----| | ESP32-S2 Mini | 4MB | 2MB | 1 (LX7) | No | | ESP32-S3 SuperMini | 4-8MB | 2-8MB | 2 (LX7) | Yes | USB HID 使用原生 USB 控制器(GPIO 19/20,无需外部接线)。GPIO0 作为安全待命按钮。 ## 部署模式 | 模式 | HID | AMSI | CVE | C2 | 描述 | |------|-----|------|-----|----|-------------| | Quick Strike | 是 | 是 | 否 | 否 | 一次性 payload 投递 | | Full Chain | 是 | 是 | 是 | 是 | 完整入侵链 | | Silent Drop | 否 | 否 | 否 | 是 | 仅 C2 植入 | | Dead Drop | 是 | 否 | 否 | 是 | 定时延迟执行 | | MSF Relay | 是 | 是 | 否 | 是 | MSF stager 投递 | ## 配置 `firmware/esp32/src/config.h` 中的关键设置: | 设置 | 默认值 | 描述 | |---------|---------|-------------| | `DEFAULT_MODE` | `MODE_FULL_CHAIN` | 启动部署模式 | | `WIFI_SSID` | GhostNet | 目标 WiFi 网络 | | `C2_HOST` | 192.168.1.50 | C2 server 地址 | | `C2_PORT_TCP` | 4444 | C2 TCP 端口 | | `C2_PSK` | GhostUSB2026! | AES 预共享密钥 | | `USB_VID` | 0x046D | 伪造的 USB 供应商 (Logitech) | | `USB_PID` | 0xC52B | 伪造的 USB 产品 | | `SAFETY_LAB_MODE` | 1 | 启动时需要按键 | ## 工具 - **`payloads/encoders/ps_obfuscator.py`** — PowerShell 混淆:字符串分割、变量重命名、垃圾代码注入、Base64 编码。 - **`tools/build_flash.py`** — PlatformIO 环境的构建和烧录助手。 ## 文档 | 文件 | 内容 | |------|----------| | `firmware/esp32/README.md` | 固件构建、配置、payload 参考 | | `docs/DESIGN.md` | 架构、状态机、内存模型 | | `docs/DEVELOPMENT.md` | 源码布局、构建、固件扩展 | | `docs/SAFETY_NOTES.md` | 安全机制和操作说明 | | `docs/CHANGELOG.md` | 版本历史和修复日志 | ## 许可证 MIT — 仅用于教育和授权的安全研究。详见 [LICENSE](LICENSE)。
标签:BadUSB, ESP32, UML, USB HID, 嵌入式开发, 物联网安全, 逆向工具