USB Rubber Ducky注册表远程访问Payload完整清单:RegDoor与NSHELL详解指南
【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads
usbrubberducky-payloads 是 USB Rubber Ducky 的官方 Payload 仓库,收录了数千个由社区贡献的键盘注入载荷脚本。本文带你深入仓库中最具代表性的「远程访问」目录,完整解析RegDoor 注册表启动项载荷与NSHELL 管理员反向 Shell 载荷两大经典作品的实现原理、执行流程与配置方法,帮助新手快速理解 USB Rubber Ducky 远程访问 Payload 的工作方式。
一、为什么远程访问类 Payload 值得一学
USB Rubber Ducky 利用计算机对键盘(HID 人机接口设备)的天然信任,在插入后以超高速向目标设备注入按键序列。其中「远程访问」类 Payload 是最受安全从业者关注的类别之一——它演示了如何在一个 USB 设备插入的瞬间,让目标主机主动回连攻击者。
本仓库的远程访问载荷集中存放于 payloads/library/remote_access/ 目录下,涵盖了 Windows SMB/WinRM 后门、反向 Shell、隧道穿透等多种技术路线。下面按「由浅入深」的顺序,先看最精巧的两个:RegDoor 与 NSHELL。
二、RegDoor:一条命令写死注册表启动项
RegDoor 的源码非常简短,全部逻辑只有 5 行,文件位于 payloads/library/remote_access/RegDoor/payload.txt。
2.1 工作原理拆解
RegDoor 的核心思路是利用 Windows 注册表启动项实现持久化回连:
- 唤起运行框:
GUI R(Win+R)打开「运行」对话框; - 写入注册表:通过 PowerShell 的
New-Guid生成一个全局唯一标识符,将其写入当前用户的启动目录HKCU\Software\Microsoft\Windows\CurrentVersion\Run; - 回连载荷:注册项的值是一条
iwr(下载)+iex(执行)命令,指向带 GUID 参数的回调地址——每次植入的 GUID 都不同,方便在服务器端区分不同受害主机; - 持久生效:由于写入的是
Run启动项,目标机器每次开机/用户登录时都会自动重新执行回调。
2.2 设计亮点
- 短小隐蔽:全部动作在「运行」框完成,不留终端窗口;
- 唯一标识:GUID 作为参数拼进 URL,实现「一机一码」,这是注册表远程访问 Payload 中很实用的识别技巧;
- 教学价值:新手可以借此理解 Windows 持久化的经典机制——
HKCU Run启动项。
💡 提示:仓库规范要求提交者用
DEFINE抽象可配置项,RegDoor 中硬编码的回调地址(virus.com为占位符)在实际使用前应替换为你自己托管的地址,并遵守仓库「不将本仓库当 CDN 使用」的提交准则(见 CONTRIBUTING.md)。
三、NSHELL:任务管理器绕权限的管理员反向 Shell
NSHELL 展示了另一条更「重型」的路线:以管理员权限建立交互式反向 Shell,源码在 payloads/library/remote_access/NSHELL/Payload.txt.txt。
3.1 执行流程逐步解析
整个流程分为三个阶段:
阶段一:打开任务管理器并获取管理员命令行
GUI r+taskmgr打开任务管理器;- 按
ALT f呼出「文件」菜单,按n选择「运行新任务」; - 输入
cmd后按TAB光标跳到「以管理员身份创建此任务」复选框,按SPACE勾选,再按ENTER启动管理员权限的 CMD。
🔍 这是 Windows 上绕过 UAC 提权的经典手法之一:任务管理器的「运行新任务」默认拥有较高权限。
阶段二:隐藏环境
taskkill /IM taskmgr.exe关闭任务管理器,减少窗口残留;- PowerShell 以
-WindowStyle hidden隐藏方式运行,避免弹窗引起注意。
阶段三:建立反向 Shell
- 先关闭 Windows Defender 实时防护(
Set-MpPreference); - 下载并执行 ConPtyShell 脚本,向攻击者机器回连
[LISTENER_IP_ADDRESS]与[PORT],获得一个可交互的伪终端。
3.2 使用前的必改配置
Payload 开头的REM注释已明确标注两处占位符,使用前必须替换:
| 占位符 | 含义 |
|---|---|
[LISTENER_IP_ADDRESS] | 攻击机(监听端)IP 地址 |
[PORT] | Netcat/监听器端口 |
四、仓库内其他值得收藏的远程访问 Payload
看完 RegDoor 与 NSHELL,建议再浏览 payloads/library/remote_access/ 目录下的这些进阶作品,形成对「远程访问技术谱系」的完整认知:
4.1 WinRM / SMB 后门(持久化路线)
- win_winrm-backdoor:创建隐藏管理员账户、开启 WinRM 远程管理、放行防火墙规则,之后可用 evil-winrm 直连目标。说明文档:payloads/library/remote_access/win_winrm-backdoor/README.md
- win_smb-backdoor:同样思路的 SMB 版本,共享 C: 盘供 psexec 类工具使用。说明文档:payloads/library/remote_access/win_smb-backdoor/README.md
4.2 ReverseDuckyUltimate(加密 + 多态路线)
集成了加密证书、多层多态、自动部署监听端等特性的一站式反向 Shell 方案,支持 DuckyScript 3.0,使用文档非常完整:payloads/library/remote_access/ReverseDuckyUltimate/README.md
下图展示了在攻击机终端中一键生成证书并启动 SSL 监听器、随后接收目标回连的完整过程,是理解「远程访问 Payload 需要监听端配合」这一概念的直观示例:
4.3 PingZhellDucky(ICMP 隧道路线)
当防火墙封禁 TCP 但放行 ping(ICMP)时,可以借助 ICMP 协议承载 Shell 通信。该 Payload 附带 Perl 编写的监听客户端,还内置了「把 Ducky 插到攻击机上自动部署依赖」的自动化流程:payloads/library/remote_access/PingZhellDucky/README.md
4.4 Villain(ngrok 隧道路线)
无需公网 IP,通过 ngrok 隧道即可生成 Windows 后门 Payload:payloads/library/remote_access/VillainShellviaNGROKTunnel/
五、上手三步:从源码到 Ducky
- 挑选源码:所有载荷的源码即目录中的
payload.txt文件,纯文本的 DuckyScript 语言; - 编译注入:使用 Hak5 PayloadStudio 将源码编译为
inject.bin并写入设备(官方 README 强调本仓库文件均为「源码」,必须经 PayloadStudio 编译); - 匹配键盘布局:仓库 languages/ 目录提供 20+ 种键盘布局语言文件(
us.json、de.json、jp.json等),编译时选择与目标键盘一致的布局,避免中文/德语等布局下字符错乱。
六、安全与合规提醒 ⚠️
仓库 README 明确声明:所有 Payload 仅供教育、授权审计与安全分析目的,使用者需自行承担法律责任。本文对 RegDoor 注册表植入与 NSHELL 管理员 Shell 的解析,旨在帮助安全从业者理解攻击链以构建防御——例如在企业环境中,应重点监控HKCU\...\Run异常启动项、任务管理器提权行为与隐藏 PowerShell 进程。
在动手之前,请务必在自己的实验环境中验证一切行为。
【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考