找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2128

积分

0

好友

271

主题
发表于 昨天 18:33 | 查看: 9| 回复: 0

使用前声明(教育与道德用途)

请注意:本指南仅供教育和道德目的使用。其目标是帮助安全专业人员、学生和研究人员更好地理解物理漏洞并加强系统防御。未经所有者明确书面许可,对任何计算机系统或网络进行未经授权的访问均属非法。对于本信息的任何滥用或由此产生的任何损害,本文不承担责任。请始终负责任地运用你的技能,为构建更安全的数字环境贡献力量。

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 1

背景

USB 橡皮鸭是一种功能强大的渗透测试设备,看起来是一个普通的 U 盘,但本质是一个按键注入工具。当它连接到目标系统时,会模拟 USB 键盘并快速键入预编程的命令。通常无需提升权限,就可以执行有效载荷、运行系统命令或更改配置。由于操作系统天然信任键盘这类人机接口设备,橡皮鸭往往会被立即识别为“可用的输入设备”,从而绕过许多传统安全控制。

道德黑客常用它来收集系统信息、演示“物理访问”带来的风险、利用错误配置,从而揭示终端安全中的薄弱点。它之所以流行,关键就在于“简单但有效”。本文将演示如何用 Raspberry Pi Pico 构建一个类似的按键注入器,用于安全教育与防御验证。

树莓派 Pico 是一款小巧、价格亲民的微控制器,搭载树莓派定制的 RP2040 芯片,面向创客、学生以及嵌入式/硬件项目开发者。与完整的树莓派电脑不同,Pico 不运行标准操作系统,而是使用 MicroPython 或 C/C++ 直接将程序上传至开发板。它配备双核 ARM Cortex-M0+、264KB SRAM 以及丰富的 GPIO 引脚,可外接传感器、LED、电机等外设。由于其效率与精确计时能力出色,也常用于低功耗应用、机器人、物联网项目和动手学习场景。

所需材料

  1. 树莓派 Pico(任意版本)
  2. 树莓派 Pico W:带 WiFi 和蓝牙功能的无线单板计算机(可选)

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 2

  1. USB-A 转 Micro USB 数据线(用于连接 Pico 与电脑)

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 3

  1. 代码仓库(克隆或下载)
    https://github.com/dbisu/pico-ducky?source=post_page-----5e5b4e3e7ec4---------------------------------------

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 4

安装 CircuitPython(刷入固件)

1)进入 BOOT 模式并挂载为磁盘

  1. 连接树莓派 Pico 至电脑时按下启动(boot)按钮。

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 5

  1. 连接后,“此电脑”中会出现 RPI-RP2 驱动器。

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 6

  1. 打开 RPI-RP2

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 7

2)下载并拷贝 uf2 固件

  1. 从网站下载 CircuitPython 固件:
    https://circuitpython.org/board/raspberry_pi_pico/

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 8

  1. uf2 文件复制到 RPI-RP2(E:) 驱动器。

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 9

  1. 等待片刻,设备将重启并显示另一个名称 CIRCUITPY(E:)

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 10

将 CircuitPython 配置为 USB 橡皮鸭

接下来要做的是:在 Pico 上放入 HID 相关库与脚本,让它能模拟 USB 键盘并执行预设的按键注入内容。

  1. 在树莓派 Pico 上安装“橡皮鸭转换器”(相关脚本与依赖来自项目文件)。

  2. 访问以下发布页,下载最新的 adafruit-circuitpython-bundle
    github.com/adafruit/Adafruit_CircuitPython_Bundle/releases
    注意:确保下载 9.x 版本,因为这里使用的是 CircuitPython 9.2.0

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 11

  1. 解压下载文件,进入其 lib 文件夹。找到 adafruit_hid 文件夹并复制,然后进入 Pico 的 lib 文件夹并粘贴。

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 12

  1. adafruit-circuitpython-bundle-9.x-mpy-20241108lib 文件夹中复制以下内容到 Pico 的 lib
    • asyncio
    • adafruit_debouncer.mpy
    • adafruit_wsgi.mpy
    • adafruit_ticks.mpy

完成后,Pico 上的 lib 文件应如下所示:

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 13

  1. duckyinpython.pycode.pywebapp.pywsgiserver.py 复制到 Pico 的根文件夹。

  2. pico-ducky-v2.0-us 文件中复制 boot.py 到 Pico 的根目录。

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 14

编写并验证 payload(功能自检)

  1. 用 Notepad++ 打开 payload.dd 文件,输入以下有效载荷,用于验证 DIY 橡皮鸭是否正常工作。编辑完成后务必保存 payload.dd 文件。
DELAY 1000
GUI r
DELAY 500
STRING notepad
ENTER
DELAY 1000
STRING DIY Ducky Rocks!!!
  1. 断开树莓派 Pico 的连接,然后重新插入。若一切正常,你应该会看到类似如下结果(自动打开记事本并输入内容):

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 15

这个示例有效载荷刻意设计得很简单,目的只是验证链路是否打通:设备是否能被识别为键盘、是否能按预期“打字”。如果你想查看更详细的信息与更多 payload 示例,可参考官方 USB 橡皮鸭有效载荷仓库:

https://github.com/hak5/usbrubberducky-payloads

树莓派Pico+CircuitPython自制USB橡皮鸭教程 - 图片 - 16

结论

使用树莓派 Pico 制作 DIY 按键注入器,不只是一次“把板子插上电脑就能跑”的硬件实验,更是在验证一个关键事实:现代操作系统对人机接口设备(HID)的“固有信任模型”依然是重要的物理安全边界。

当我们用一块价格亲民的微控制器去模拟键盘时,等于复刻了一条现实中的攻击路径:只要具备物理接触机会,就可能在几秒内触发一系列自动化操作,绕过一些纯软件层面的防护。理解它,才能更好地防它——这也是提升终端安全与安全意识的第一步。

如需围绕此类硬件安全与终端防护继续延伸学习,可以在 云栈社区 查找更多相关讨论与实践经验。




上一篇:Kubelet API 10250暴露:K8s节点加固实战
下一篇:Python funcy一行替代for循环:列表字典处理实战
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-14 12:42 , Processed in 0.200097 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表