VexilonHacker/OverQuack
GitHub: VexilonHacker/OverQuack
一款面向 Raspberry Pi Pico 全系列的开源 Rubber Ducky 式 HID 注入工具,支持无线远程控制、自定义脚本语言和 Web IDE。
Stars: 20 | Forks: 1
✨ 功能 • 🖥️ 演示 • 🏁 快速开始 • ⚙️ 配置 • 🌐 无线 • 🖥️ IDE • 📜 语言 • 🗺️ 路线图
## 🤔 为什么选择 OverQuack? **OverQuack** 专为希望获得一个紧凑、灵活且透明的脚本化 HID 自动化平台的用户而打造。 它集成了本地 payload 执行、无线管理、现代化的 Web IDE,以及易于检查和修改的可扩展代码库。 | OverQuack 提供的功能 | 典型的商业 USB payload 平台 | |-----------------------|------------------------------------------| | **经济实惠的硬件:** 运行在 Raspberry Pi Pico 开发板及其变体上 | 通常作为专用设备以更高的价格出售 | | **开源,GPLv2:** 完全可审计、可修改且由社区驱动 | 通常是闭源的或仅有部分文档 | | **完整的脚本语言:** 变量、函数、循环、数学运算、随机化等 | 功能集因平台和固件而异 | | **内置 Wi-Fi 远程控制:** 无线上传、执行和管理 payload | 无线控制可能需要额外硬件或额外设置 | | **基于 Web 的 IDE:** 实时错误检查、自动补全、模板、代码片段和 Vim 模式 | 一些平台提供编辑器或配套工具,但工作流通常较窄 | | **一键安装程序:** 跨平台的简化设置 | 安装可能更偏向手动且特定于设备 | | **USB 模式切换:** 无需重新插拔即可更改设备行为 | 支持程度因平台和固件而异 | | **多种键盘布局:** 随时切换布局 | 通常支持布局,但往往不够灵活 | | **鼠标和消费者控制:** 移动、点击、滚动和媒体键 | 通常受支持,尽管实现方式有所不同 | | **可 hack 且可扩展:** 易于检查、修改和在其基础上进行构建 | 可扩展性取决于平台是开放还是锁定 | | **专为教育和研究设计:** 行为清晰且代码透明 | 许多工具旨在进行测试,但提供的内部可见性较低 | ## ✨ 功能概览 - 🧠 **完整的 DuckyScript 扩展** 变量、条件语句、循环、函数、数学运算、随机化 - 📡 **无线控制** 内置 Wi-Fi 接入点和 TCP 服务器,可远程部署和触发 payload - 🔌 **即插即用 HID 注入** 键盘、鼠标、消费者控制(媒体键)。无需驱动程序 - 🖱 **完整的鼠标支持** 移动、点击、滚动、抖动以及后台鼠标抖动器 - 🔄 **USB 模式切换** 无需拔下即可切换至 HID、存储或 HID+存储模式 - 🖥️ **跨平台 payload** 适用于 Windows、macOS 和 Linux - ⚙️ **一键设置** 引导式跨平台安装程序 - 🛠️ **模块化且可 hack** 可通过新的 payload、布局和工具进行扩展;采用 GPLv2.0 许可 - ✅ **完全可配置** 所有设置均存在于 `config.json` 中 - 🌐 **功能丰富的桌面客户端** 具备自动补全、历史记录和进度条的交互式 shell - 🖥️ **基于 Web 的 IDE** 带有语法高亮、实时验证、模板和代码片段的 Monaco 编辑器 ## 🖥️ 跨平台演示| 🪟 Windows | 🍏 macOS |
Windows 10: classic Notepad payload |
macOS: Opening a Rick Roll in safari browser |
| 🐧 Linux | 📱 Android |
Arch Linux (bspwm): >:^] |
Android (OTG): Opening a Rick Roll in brave browser |
OverQuack 可运行于整个 Raspberry Pi Pico 家族:
Pico · Pico W · Pico 2 · Pico 2 W
Pico: 264 KB RAM andnbsp;|andnbsp; Pico W: 264 KB RAM andnbsp;|andnbsp; Pico 2: 520 KB RAM andnbsp;|andnbsp; Pico 2 W: 520 KB RAM
## 📦 组件 ``` Overquack/ ├── OverQauckInstaller.py # Cross-platform setup wizard ├── OverQuack_src/ # Pico firmware (runs on the board) │ ├── boot.py # USB config and ATTACKMODE switching │ ├── code.py # Startup and payload dispatcher │ ├── overquackify.py # DuckScript interpreter (the brain) │ ├── quackd.py # Wi-Fi TCP server │ ├── config.json # Device configuration │ ├── payload.oqs # Default payload (demo) │ ├── settings.toml # CircuitPython runtime settings │ └── lib/ # HID libraries, keycodes, layouts ├── OverQuack_Client/ # Desktop TCP client │ ├── overquack_client.py │ ├── pyproject.toml │ └── uv.lock ├── OverquackWebStudio/ # Browser IDE │ ├── oqws_static │ ├── oqws_template │ ├── OverquackWebStudio.py │ ├── pyproject.toml │ └── uv.lock ├── OverQuack_Cirpy_firmwaresen_10.2.1/ # Precompiled CircuitPython firmwares ├── assets/ └── README.md ``` ## 🏁 快速开始 ### 自动安装(推荐) 运行跨平台安装程序: ``` python OverQauckInstaller.py ``` 然后按照交互式向导操作。它将引导您完成开发板选择、固件刷写,并自动复制 OverQuack 源文件。  ### 手动安装 1. **下载仓库** 克隆或下载 [OverQuack 仓库](https://github.com/VexilonHacker/OverQuack)。 2. **进入 BOOTSEL 模式** - 断开 Pico 与 USB 的连接。 - 按住开发板上的 **BOOTSEL** 按钮。 - 在按住 BOOTSEL 的同时,将 Pico 插入您的计算机。 - 3 秒后,松开按钮。 - 将出现一个 USB 驱动器: - **Pico / Pico W**:名为 **`RPI-RP2`** 的驱动器 - **Pico 2 / Pico 2 W**:名为 **`RP2350`** 的驱动器 3. **清除闪存** *(擦除所有以前的数据 —— 这对于全新安装至关重要)* - 在仓库中打开 `OverQuack_Cirpy_firmwaresen_10.2.1/` 文件夹。 - 将文件 `flash_nuke_all_boards.uf2` 复制到 BOOTSEL 驱动器(`RPI-RP2` 或 `RP2350`)中。 - 开发板将自动弹出并重启**回到 BOOTSEL 模式**(相同的驱动器会再次出现)。 4. **刷入 CircuitPython** - 从相同的固件文件夹中,为您的开发板复制**匹配的 CircuitPython UF2** 文件。 | 开发板 | UF2 文件 | |-------------|----------| | Pico | `adafruit-circuitpython-raspberry_pi_pico-en_US-10.2.1.uf2` | | Pico W | `adafruit-circuitpython-raspberry_pi_pico_w-en_US-10.2.1.uf2` | | Pico 2 | `adafruit-circuitpython-raspberry_pi_pico2-en_US-10.2.1.uf2` | | Pico 2 W | `adafruit-circuitpython-raspberry_pi_pico2_w-en_US-10.2.1.uf2` | - 将正确的 UF2 文件拖到 BOOTSEL 驱动器中。开发板将再次重启,现在它将显示为 **`CIRCUITPY`**。 5. **安装 OverQuack** - 将 `OverQuack_src/` 目录中的**所有文件和文件夹**直接复制到 `CIRCUITPY` 驱动器的根目录。 - 该驱动器现在应该包含 `boot.py`、`code.py`、`overquackify.py`、`quackd.py`、`config.json`、`payload.oqs`、`settings.toml` 以及 `lib/` 文件夹。 6. **完成!** - 安全弹出 `CIRCUITPY` 驱动器,或者稍等片刻,开发板就会准备就绪。 - 您的 OverQuack 设备现已准备就绪。拨动开关并将其连接到目标机器,它将运行默认的 payload。  ## ⚙️ 配置 所有设备设置都位于 `CIRCUITPY/OVERQUACK` 驱动器上的 **`config.json`** 中。您可以在 Pico 处于存储模式时直接对其进行编辑。 ``` { "DEFAULT_PAYLOAD" : "payload.oqs", "DRIVE_LABEL": "OVERQUACK", "desc_DRIVE_LABEL": "Drive label will only change when you switch to attack mode", "ENABLE_SERIAL_DEBUG" : true, "desc_ENABLE_SERIAL_DEBUG": "Set to true for debug output on serial, false for silent operation", "BOARD" : { "controll_mode_pin": 5, "desc_controll_mode_pin" : "Setting GPIO pin that will change from keystroke mode to storage mode as example pin 2, 6, 10, 13...", "enable_auto_switch_mode" : true, "desc_enable_auto_switch_mode" : "switch attack mode without need to replug usb", "enable_auto_reload" : false, "desc_enable_auto_reload" : "when editing a file in PICO and saving it, it will auto reboot PICO" }, "AP" : { "ssid": "1984", "password": "OverQuackItBrother1984", "channel": "RANDOM", "desc_channel" : "You can set random channel value by using RANDOM or specify channel value as int in range [1,13]", "ip_address": "10.10.5.1", "ports": 1084, "desc_ports" : "TCP server port" }, "USB_IDENTIFICATION": { "manufacturer": "CHICONY", "product": "HP Basic USB Keyboard", "vid": "0x03F0", "pid": "0x0024" } } ``` ### 🔄 USB 模式:大容量存储 ⇄ HID 键盘 默认情况下,GPIO 引脚 **`controll_mode_pin`**(示例中为 GP5)决定了 USB 的行为模式: - **引脚连接到 GND** -> HID 攻击模式(键盘 + 鼠标,无驱动器) - **引脚悬空(断开)** -> 大容量存储模式(驱动器可见,用于编辑)
标签:HID攻击, IoT安全, Raspberry Pi Pico, 并发处理, 硬件安全, 自定义脚本, 逆向工具