Itsmmdoha/duckLogger

GitHub: Itsmmdoha/duckLogger

一款基于 ESP32-S3 的低成本 USB 击键记录器,支持通过 Wi-Fi 远程下载日志并注入 DuckyScript Payload。

Stars: 15 | Forks: 1

# DuckLogger image DuckLogger 是一款基于 ESP32-S3 的 USB 击键记录器。它会将击键记录保存在文本文件中,并通过内置 Wi-Fi 热点提供无线访问以下载日志。 复现此项目不需要任何定制 PCB。此处使用的硬件在 Aliexpress 等地方总价不到 10 美元。 ducklogger ## 功能 * **击键记录**:记录击键并将其保存到内部 Flash 存储中的日志文件里。 * **双 Wi-Fi 模式**:支持 Wi-Fi Station 模式(连接到现有网络)和 Access Point(热点)模式。 * **Web 命令与控制中心**:访问内置 Web 界面来管理您的设备。控制中心允许您: * **下载日志**:轻松下载已保存的击键日志文件。 * **远程实时键盘**:挂载一个实时虚拟键盘,并通过 WebSocket 几乎零延迟地实时发送击键。 * **DuckyScript 注入**:远程注入并执行 DuckyScript payload。 * **设备设置**:直接从 Web UI 更新 AP/Station 模式的配置。 访问 Web UI,地址为: ``` http://192.168.4.1/ ``` *(处于 Access Point 模式时)* ducklogger_screenshot ## 所需组件 * ESP32-S3 SuperMini * CH9350 HID 模块 * 4 根母对母杜邦线 # 快速开始 ## 1. 接线图 image | ESP32-S3 | CH9350 | | -------- | ------ | | 5V | 5V | | GND | GND | | GP1 | TX | | GP2 | RX | CH9350 支持多种工作模式,通过板载 DIP 开关进行配置。 image 将 `S0` 设置到 GND 位置 (0),并将所有其他开关保持在相反位置 (1)。这将启用 USB Host 模式,该模式将 USB 键盘输入转换为通过 UART 发送的串行数据,默认波特率为 115200。 ## 2. 刷入 MicroPython DuckLogger 是使用 MicroPython 编写的。请将 MicroPython 固件刷入您的开发板。 请在此处查找刷入说明[这里](https://micropython.org/download/ESP32_GENERIC_S3/)。 刷入完成后,通过 USB 断开并重新连接开发板。 ## 3. 克隆仓库 ``` git clone https://github.com/Itsmmdoha/duckLogger.git cd duckLogger ``` ## 4. 在开发板上安装 DuckLogger 确保您的开发板已通过 USB 连接,然后运行: ``` python flasher.py ``` 刷写工具将自动: * 在开发板上安装 `mpremote` 和所需的 MicroPython 软件包 * 压缩 `index.html` 并将所有文件复制到开发板 * 重启开发板 # 使用方法 1. 将 USB 键盘插入 CH9350 HID 模块。 2. 使用 USB-C 转 USB-A 线将 ESP32-S3 SuperMini 连接到目标 PC。 3. 设备将自动: * 开始记录击键 * 根据您的设置连接到 Wi-Fi 或创建 Wi-Fi 热点 * 启动 HTTP 服务器 如果处于 Access Point 模式(默认),请连接到 Wi-Fi 热点(默认密码:`duckPass1234`)并打开: ``` http://192.168.4.1/ ``` 以访问命令与控制中心。 ## 支持的 DuckyScript 语法 DuckLogger 目前支持用于 payload 注入的核心 DuckyScript 命令集: | 命令 | 描述 | 示例 | | :--- | :--- | :--- | | `DELAY` | 暂停执行指定的毫秒数。 | `DELAY 500` | | `STRING` | 按原样输入一串字符。 | `STRING Hello, World!` | | **组合键** | 发送同时按下的按键。 | `CTRL SHIFT ESC` 或 `ALT i` | | **单个按键** | 发送单独的特殊按键。 | `ENTER` 或 `TAB` | # 仓库结构 ``` . ├── flasher.py ├── index.html ├── lib │   ├── access_point.py │   ├── api.py │   ├── duckyscript.py │   ├── keyboard.py │   ├── key_led.py │   ├── logger.py │   ├── mapper.py │   ├── microdot │   │   ├── helpers.py │   │   ├── __init__.py │   │   ├── microdot.py │   │   └── websocket.py │   ├── queue.py │   ├── settings.py │   ├── uart_buffer.py │   ├── wifi.py │   └── wifi_radio.py ├── LICENSE ├── main.py ├── README.md ├── resources.md └── settings.json ``` ## 第三方库 本项目包含 Miguel Grinberg 编写的 Microdot(MIT 许可证): https://github.com/miguelgrinberg/microdot
标签:BadUSB, C/C++, CH9350, DIY电子, DuckyScript, ESP32-S3, HID攻击, Keylogger, USB键盘记录器, WebSocket, Web界面, Wi-Fi, 事务性I/O, 代码生成, 依赖分析, 固件开发, 廉价硬件, 搜索语句(dork), 无线数据传输, 渗透测试工具, 物联网安全, 硬件安全, 远程控制, 键盘注入