duckNet项目深度解析:USB Rubber Ducky的远程访问新框架
【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads
duckNet 是 usbrubberducky-payloads 仓库remote_access分类下的一个开源载荷框架,专为 USB Rubber Ducky 这类 HID 键盘设备设计。它让你能够一键创建、编码、注入并批量管理多台目标机器的持久化反向 shell,配合 duckNetManager 命令行工具,把单点攻击升级为可编排的"集群式"远程访问能力。🦆
duckNet 是什么?为什么值得关注
普通的 USB Rubber Ducky 载荷通常只面向"一台目标、一个 IP、一个端口",写死在 DuckyScript 里。而 duckNet 的作者是站在"运维者"的角度重新设计了整个流程:
duckNet 是一批被 persistentReverseDucky 感染的系统组成的集群,由 duckNetManager 统一调度管理。
它把"改 IP、改端口、编码、记录目标"这些重复劳动全部交给了工具,你只需要在菜单里做选择。
核心组件拆解:4 个文件撑起整个框架
整个项目结构非常轻量,位于 payloads/library/remote_access/duckNet/ 目录下:
| 组件 | 相对路径 | 作用 |
|---|---|---|
| 主载荷 | payload | DuckyScript 脚本,植入持久化反向 shell |
| 管理工具 | duckNetManager | Bash 编写的命令行管理台 |
| 编码器 | Encoder/ | 将载荷编译为可写入 Duck 的 inject.bin |
| 安装脚本 | install.sh | 一键部署 duckNetManager |
主载荷:一条 DuckyScript 完成"无痕驻留"
打开 payload 可以看到它的执行流程被REM注释划分得非常清晰:
- 清理现场—— 打开终端后立即关闭并清空 shell 历史记录,避免留下操作痕迹;
- 创建反向 shell—— 在隐藏目录
/var/tmp/.system/写入一个循环脚本:先ping检测网络,网络恢复就通过 PHP 的fsockopen回连攻击机(默认 IP 为0.0.0.0、端口4444); - 注册非 root 的 systemd 服务—— 利用
~/.config/systemd/user目录创建systemBUS.service,命名为"System BUS handler"极具迷惑性,实现开机自启与崩溃自恢复; - 注入 shell 启动项—— 向
.zshrc/.bashrc追加服务启动命令,确保每次打开终端都会触发。
💡 设计亮点:非特权(non-root)systemd 用户级服务意味着载荷无需 root 权限即可持久化,而"断线重连"的 ping 探测逻辑让它能在目标断网重启后自动恢复连接。
duckNetManager:把攻击目标当作"数据库"来管理
duckNetManager 是一个菜单驱动的 Bash 脚本,通过~/.config/duckNet/duckNet.db文件记录所有目标(名称、IP、端口三元组),提供 5 个功能:
- Connect—— 调用
nc在指定端口监听,接收目标回连; - Create—— 输入目标名、服务器 IP、端口(1500–65535),自动把模板载荷中的
0.0.0.0和4444替换成你的参数,并登记入库; - List—— 表格化列出所有已登记目标;
- Remove / Update—— 删除目标、或修改已有目标的 IP 与端口。
安装只需运行 install.sh,它会创建~/.config/duckNet/配置目录、初始化数据库文件,并把管理器放到/bin/下。
快速上手:三步部署你的第一张 duckNet
第一步:克隆仓库
git clone https://link.gitcode.com/i/4f4cc9d639371ba680e8e41fa287ecf8第二步:安装管理工具
cd usbrubberducky-payloads/payloads/library/remote_access/duckNet bash install.sh第三步:创建目标并注入
duckNetManager # 选择 2] Create new target → 填入名称、服务器 IP、端口 # 确认编码 → 生成 inject.bin,用 PayloadStudio 写入你的 Duck之后每次选择1] Connect with target即可在对应端口收 shell。若目标换了 IP 或端口,用5] Update target修改记录即可。
安全启示:如何防御这类 HID 持久化威胁
duckNet 虽然是攻击工具,但它揭示的防御要点同样适用于日常安全排查:
- 🔍审计 systemd 用户级服务:重点检查
~/.config/systemd/user/下有无来源不明的.service文件(如伪装成 "System BUS handler" 的服务); - 🔍检查 shell 启动项:
.bashrc、.zshrc中追加的systemctl --user enable命令是典型驻留痕迹; - 🔍关注异常回连:目标主动向固定 IP:Port 发起
nc/socket 连接,可通过 IDS 规则(如检测高频fsockopen外连)发现; - 🛡️物理层防护:USB 端口管控、设备白名单策略是抵御 HID 攻击的第一道防线。
写在最后
duckNet 用不到 200 行代码展示了 HID 攻击框架化的思路:模板载荷 + 参数化生成 + 目标数据库 + 菜单化操作。它与同目录下的 persistentReverseDucky(单机版持久化反向 shell)、ReverseDuckyUltimate 等载荷一脉相承,共同构成了仓库中完整的远程访问学习路径。
⚠️法律声明:本项目所有载荷仅供安全研究与教育用途,Hak5 官方不提供功能保证。请遵守当地法律法规,切勿对未授权系统使用。
【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考