
USBCoercer turns an ESP32 development board with native USB-OTG into an Ethernet-over-USB gadget capable of coercing proxy configuration via WPAD.
| 支持的目标平台 | ESP32-S3 |
|---|
USBCoercer 将具备原生USB-OTG功能的ESP32开发板转变为以太网-over-USB 设备,能够通过WPAD强制代理配置。它基于 TinyUSB 网络控制模型(NCM) 示例构建,并添加了一个极简的DHCP服务器,用于注入 DHCP 选项 252(WPAD/PAC),此外还可以根据需要注入无类别静态路由(选项 121)以阻止EDR遥测。
该项目适用于安全测试和实验室演示。使用前务必获得明确授权。
install.sh/export.sh 脚本安装的ESP-IDF工具链和Python环境espressif/esp_tinyusb 的 1.x 分支开发,尚未移植到 2.x 分支。使用 2.x 分支会导致编译错误。最高支持版本为 espressif/esp_tinyusb 1.6.0。. $HOME/esp/esp-idf/export.sh
idf.py menuconfig
USBCoercer Configuration 菜单,调整本地IP、DHCP池、WPAD设置等。idf.py build
idf.py flash
项目在 idf.py menuconfig 中提供专门的 USBCoercer Configuration 菜单:
目的地/前缀,网关 语法提供以分号分隔的路由列表(例如 3.121.6.180/32,192.168.7.1)。留空列表则省略该选项。sdkconfig.defaults 提供了一个适合实验室的配置:
192.168.7.1/24,无默认网关。192.168.7.2 – 192.168.7.4)。badnet。http://192.168.7.1/wpad.dat。在配置的源上托管 PAC 文件,或根据需要调整 URL。调整 sdkconfig.defaults 或使用 menuconfig 来适应您的测试环境。更改参数后重新编译固件(idf.py build)。
DISCOVER/REQUEST 消息。目前,部署需要外部服务器提供经过NTLM认证的代理并强制进行身份验证。Responder 可用于此任务。提供WPAD.DAT文件的外部服务器是可选的。
本固件已在 M5Stack AtomS3U 上测试并正常工作。
祝您(且负责任地)快乐黑客!