lameiro0x/pico-hid-security-lab
GitHub: lameiro0x/pico-hid-security-lab
基于 Raspberry Pi Pico 与 CircuitPython 的 USB HID 按键注入安全教学实验平台,提供 payload 示例与安全编辑工作流。
Stars: 0 | Forks: 0
# Raspberry Pi Pico HID Payload 实验室
本仓库包含用于在**受控和教育背景下**研究**基于 USB HID 的攻击技术**的示例 payload。这些 payload 仅供在**隔离的实验室环境**或**用户拥有的系统**中使用。
该项目基于使用 **Raspberry Pi Pico** 模拟**人机接口设备 (HID)**(例如键盘)的概念,允许出于学习、测试和安全意识目的进行脚本化键盘指令注入。
## 仓库目的
本仓库的主要目标是:
- 了解 **USB HID 设备**在底层是如何工作的。
- 在安全、符合道德规范且受控的环境中研究**键盘指令注入技术**。
- 在微控制器上实验 payload 执行逻辑。
- 获取与现实世界攻击相关的**进攻性安全概念**的实践经验,
同时保持负责任的教育态度。
本仓库旨在用于**网络安全学习**、**实验室实验**和**防御意识培养**,而非用于现实世界中的滥用。
## 重要安全提示
⚠️ **负责任地使用**
- **切勿**将此设备连接到您不拥有或未获得明确测试许可的系统。
- **切勿**在生产环境中部署 payload。
- 所有测试均应在**隔离的虚拟机**或**自有硬件**上进行。
## 设置模式(重要)
要修改 payload 或配置文件,必须以**设置模式**启动 Raspberry Pi Pico:
1. 将 **引脚 1 (GP0)** 连接到 **引脚 3 (GND)**。
2. 在连接引脚的情况下将 Pico 插入计算机。
3. 设备将以设置/配置模式启动,允许访问文件。
## Payload 修改工作流
如果 payload **不含恶意**(目前情况如此):
1. 连接 Pico 并允许 payload 执行。
2. 将 `.dd` payload 文件重命名为 `.txt`。
3. 根据需要编辑 payload 内容。
4. 将文件名改回 `.dd`。
5. 将其复制回 Pico 文件系统。
此工作流允许对 payload 逻辑进行安全的迭代和测试。
有关修改 payload 的详细说明,请参见
[`change_payload.txt`](install/change_payload.txt),包括如何以设置模式启动
设备以及安全编辑 `.dd` payload 文件。
## 仓库结构
```
.
├── README.md
└── install/
├── INSTALL.txt
├── adafruit-circuitpython-raspberry_pi_pico-en_US-8.0.0.uf2
├── adafruit-circuitpython-raspberry_pi_pico_w-en_US-8.0.0.uf2
├── boot.py
├── change_payload.txt
├── code.py
├── duckyinpython.py
├── lib
│ ├── adafruit_debouncer.mpy
│ ├── adafruit_hid
│ │ ├── __init__.mpy
│ │ ├── consumer_control.mpy
│ │ ├── consumer_control_code.mpy
│ │ ├── keyboard.mpy
│ │ ├── keyboard_layout_base.mpy
│ │ ├── keyboard_layout_us.mpy
│ │ ├── keycode.mpy
│ │ └── mouse.mpy
│ ├── adafruit_ticks.mpy
│ ├── adafruit_wsgi
│ │ ├── __init__.py
│ │ ├── request.mpy
│ │ └── wsgi_app.mpy
│ ├── asyncio
│ │ ├── __init__.mpy
│ │ ├── core.mpy
│ │ ├── event.mpy
│ │ ├── funcs.mpy
│ │ ├── lock.mpy
│ │ ├── manifest.mpy
│ │ ├── stream.mpy
│ │ └── task.mpy
│ ├── consumer_control_extended.mpy
│ ├── keyboard_layout.mpy
│ ├── keyboard_layout_mac_fr.mpy
│ ├── keyboard_layout_us_dvo.mpy
│ ├── keyboard_layout_win_br.mpy
│ ├── keyboard_layout_win_cz.mpy
│ ├── keyboard_layout_win_cz1.mpy
│ ├── keyboard_layout_win_da.mpy
│ ├── keyboard_layout_win_de.mpy
│ ├── keyboard_layout_win_es.mpy
│ ├── keyboard_layout_win_fr.mpy
│ ├── keyboard_layout_win_hu.mpy
│ ├── keyboard_layout_win_it.mpy
│ ├── keyboard_layout_win_po.mpy
│ ├── keyboard_layout_win_sw.mpy
│ ├── keyboard_layout_win_tr.mpy
│ ├── keycode_mac_fr.mpy
│ ├── keycode_win_br.mpy
│ ├── keycode_win_cz.mpy
│ ├── keycode_win_cz1.mpy
│ ├── keycode_win_da.mpy
│ ├── keycode_win_de.mpy
│ ├── keycode_win_es.mpy
│ ├── keycode_win_fr.mpy
│ ├── keycode_win_hu.mpy
│ ├── keycode_win_it.mpy
│ ├── keycode_win_po.mpy
│ ├── keycode_win_sw.mpy
│ └── keycode_win_tr.mpy
├── payload.dd
├── payload2.dd
├── payload3.dd
├── payload4.dd
├── pico-ducky-v2.0-win_es.zip
├── secrets.py
├── webapp.py
└── wsgiserver.py
```
## 免责声明
本仓库提供的内容**仅供教育目的**。
作者不对此处包含的信息或工具的任何滥用行为负责。
标签:Raspberry Pi Pico, USB HID, 安全教育, 微控制器, 按键注入, 逆向工具