
SamDumpDucky原理详解USB Rubber Ducky如何转储Windows本地账户哈希的完整指南【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloadsSamDumpDucky 是 USB Rubber Ducky 官方载荷库中的一款经典凭据提取载荷它能在 Windows 目标机器上自动转储 SAM 与 SYSTEM 注册表蜂巢hive并把文件直接回收到 Ducky 本体的存储中。拿到这两个文件后再用 pypykatz、samdump2 等工具离线提取本地账户的 NTLM 密码哈希即可完成一次典型的“离线取哈希”操作。本文面向新手拆解它的完整攻击原理、每个脚本阶段的作用以及你需要如何部署。SamDumpDucky 是什么一图看懂攻击链路SamDumpDucky 的思路其实非常朴素Windows 把所有本地账户的凭据信息用户列表、密码哈希都保存在注册表的HKLM\SAM和HKLM\SYSTEM两个蜂巢中。SAM里存着哈希但解密哈希还需要SYSTEM蜂巢里的启动密钥Boot Key所以必须两个一起拿。它的执行链路可以概括为五步阶段动作依赖技术1等待系统就绪DETECT_READY扩展 按键回显2提权打开 PowerShellWINDOWS_ELEVATED_EXECUTION扩展 UAC3转储 SAM/SYSTEM 蜂巢reg save命令4文件回收到 DuckyATTACKMODE HID STORAGE双模式5离线提取密码哈希pypykatz / samdump2整个载荷源码只有 120 多行完整文件见 payload.txt官方说明文档在 README.md。上图从 Ducky 存储中回收到目标机器后提取出的 Administrator 账户 NTLM 哈希第 1 步ATTACKMODE 双模式同时当键盘和存储载荷的第一行就声明了ATTACKMODE HID STORAGE这是新版 DuckyScript 3.0 的关键能力HID 模式Ducky 模拟键盘向目标注入按键——负责“打字干活”STORAGE 模式Ducky 挂载成一个名为DUCKY的 U 盘——负责“带回赃物”。两种模式可以并存这正是 SamDumpDucky 能“边执行边外传”的基础。第 2 步DETECT_READY 扩展动态等待系统就绪插拔 U 盘后Windows 启动、桌面加载、输入法就绪的时间并不固定。如果 Ducky 抢在系统准备好之前开始按键字符就会丢失。DETECT_READY 扩展 的解法是按键回显Keystroke Reflection它循环按下CAPSLOCK键并检查$_CAPSLOCK_ON变量——如果主机把这次按键“反射”回来状态变为 ON说明系统已经能响应键盘输入可以立即开始如果不支持回显则最多等待 120 × 25ms 3 秒后兜底继续。这个机制把“固定盲等”变成了“动态探测”既快又稳。第 3 步WINDOWS_ELEVATED_EXECUTION自动点穿 UAC读取HKLM\SAM需要管理员权限。普通用户权限下的 PowerShell 执行reg save会失败所以载荷必须先提权。WINDOWS_ELEVATED_EXECUTION 扩展 的Elevated_Execution()函数做了三件事按CTRL-SHIFT ENTER——这是 Windows 上“以管理员身份运行 PowerShell”的标准快捷键会弹出 UAC 确认框等待 2 秒让 UAC 窗口就绪按ALT y英语、ALT j德语或ALT s西班牙语点选“是”——不同语言布局下 UAC“是”按钮的默认快捷键不同作者把三种都内置了只需切换一处 DEFINE。⚠️ 部署前记得把扩展里的语言配置改成目标机器的键盘语言README 特别提醒默认值是德语。上图USB Rubber Ducky 凭据提取类载荷面对的典型 Windows 认证场景SamDumpDucky 正是围绕本地账户凭据展开第 4 步一行 PowerShell 完成转储与回收提权成功后载荷在 PowerShell 里执行的核心命令其实很精炼对应 payload.txt 中的两行STRINGLNcd (gwmi win32_volume -f labelDUCKY).Name reg save hklm\sam DuckySam reg save hklm\system DuckySysgwmi win32_volume -f labelDUCKY找到标签为DUCKY的卷也就是 Ducky 自己挂载的存储区cd进去让后续文件直接落在 U 盘上reg save hklm\sam DuckySam把 SAM 蜂巢导出为DuckySam文件reg save hklm\system DuckySys同理导出 SYSTEM 蜂巢为DuckySys。⏱️ 注意Ducky 存储写入速度较慢这一步可能超过 2 分钟README 明确提示“请耐心等到过程结束”。最后还会优雅地弹出 U 盘InvokeVerb(Eject)并发送一次CAPSLOCK作为“我干完了”的信号——主程序通过WAIT_FOR_CAPS_ON感知这个信号再由 DETECT_FINISHED 扩展 连敲四次 CapsLock 闪灯提示操作者任务完成最后ATTACKMODE OFF结束整个载荷。第 5 步用 pypykatz 离线提取 NTLM 哈希拔下 Ducky插到你自己的分析机上你会得到DuckySam和DuckySys两个文件。此时用 pypykatz 的 registry 模块即可离线解析pypykatz registry DuckySys --sam DuckySam输出中每个本地账户的 NTLM 哈希都会列出来形如Administrator:500:xxxxxxxx...可以拿去跑 hashcat 等破解工具。README 也提供了一个备选samdump2 DuckySys DuckySam但作者特别提醒 samdump2 近期可靠性不佳推荐优先使用 pypykatz。部署清单从零跑通 SamDumpDucky修改语言打开 payload.txt把WINDOWS_ELEVATED_EXECUTION扩展中的确认快捷键改成目标机器的语言英语ALT y/ 德语ALT j/ 西班牙语ALT s编译用 Hak5 的 PayloadStudio 将载荷编译为inject.bin并写入 Ducky插入目标把 Ducky 插入 Windows 机器等待过程结束受存储写入速度限制可能需要数分钟离线提取把 Ducky 拿回自己机器用 pypykatz 或 samdump2 解析两个 hive 文件得到所有本地账户的密码哈希。原理小结为什么这个载荷值得学习SamDumpDucky 麻雀虽小五脏俱全几乎集齐了 DuckyScript 3.0 的核心特性攻击模式切换、扩展复用、按键回显、变量与信号同步、存储外传。它演示的“注册表蜂巢转储 离线破解”也是 Windows 本地账户凭据获取的经典范式——理解了它你就掌握了绝大多数 Ducky 凭据类载荷的骨架。最后照例提醒本载荷仅供在自己拥有或已获书面授权的机器上做安全测试与教学使用。未经授权在他人系统上执行将构成违法犯罪风险自负。【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考