用途
本项目是一份网络安全技能文档,主题为滥用 Windows 数据保护 API(DPAPI)进行凭据访问。它面向授权的渗透测试、红队演练与教育场景,说明如何在已获得授权据点后,从 Windows 主机中恢复受 DPAPI 保护的明文机密。文档明确提示:在未拥有系统所有权或缺乏明确书面授权的情况下提取凭据属于违法行为,可能违反计算机欺诈与滥用法;所有操作应限定在已签署的交战规则内并留存记录。
背景与主要能力
Windows DPAPI 是操作系统内置的对称加密服务,应用程序用它保护静态机密,包括保存的 RDP 与 Windows 凭据管理器凭据、Credential Vault 中的 Web 与 Wi-Fi 凭据、浏览器保存的登录信息与 Cookie(Chrome/Edge)、KeePass 密钥、证书私钥以及计划任务密码。DPAPI 从用户密码(或机器账户机密)派生每用户(或每机器)主密钥,再由主密钥加密各个「DPAPI blob」。加密的主密钥存放于 %APPDATA%\Microsoft\Protect<SID>\(用户)与 %WINDIR%\System32\Microsoft\Protect\(机器)。
文档归纳了三条主要解密路径:
- 在线/基于上下文——以目标用户身份运行,DPAPI API(CryptUnprotectData)可透明解密该用户的 blob,SharpDPAPI 的 /unprotect 标志即用此方式。
- 使用用户密码或 NTLM 哈希离线解密——先以 /password: 或 /ntlm: 解密用户主密钥,再离线解密 blob,适合从主机取出的取证文件。
- 使用域 DPAPI 备份密钥全域解密——域管理员可一次性提取域的 RSA DPAPI 备份密钥(.pvk),此后可长期在线或离线解密任意域用户的主密钥,使用 /pvk:。
工具与使用方式
核心工具为 Windows 平台的 SharpDPAPI(GhostPack,Mimikatz DPAPI 功能的 C# 移植版)、用于浏览器机密的 SharpChrome,以及原始实现 Mimikatz(dpapi::*)。Linux 平台可使用 Impacket 的 dpapi.py 与 DonPAPI 进行远程/离线排查。文档给出从源码构建的方式(如克隆 SharpDPAPI 仓库并用 msbuild 构建 Release),并强调工具仅应从官方上游获取。
典型工作流包括:使用 SharpDPAPI triage /unprotect 在用户上下文排查并解密凭据、Vault、RDG/RDP 与证书;使用 machinetriage 处理机器范围 blob(需本地管理员/SYSTEM);用 masterkeys /password: 或 /ntlm: 生成 {GUID}:SHA1 映射;用 credentials、vaults、rdg、keepass、certificates 等命令解密各类机密;用 SharpChrome logins/cookies/statekeys 解密 Chromium 登录、Cookie 与现代 App-Bound「state key」;域管理员可用 backupkey 通过 MS-BKRP RPC 提取域备份密钥 .pvk,再以 masterkeys /pvk: 离线解密任意用户主密钥;Linux 操作端可用 impacket-dpapi masterkey/credential 与 donpapi collect 进行远程批量收集。
适用场景
- 攻陷 Windows 主机后,主机上存在值得为横向移动收集的已保存 RDP、浏览器或保管库凭据。
- 已持有用户密码或 NTLM 哈希,希望离线解密其 DPAPI 保护机密。
- 具备域管理员权限,希望获取域 DPAPI 备份密钥以解密全域任意用户受保护数据。
- 对从磁盘镜像中提取的 Credentials、Vault 或 Protect 目录进行取证排查。
- 紫队演练中验证对 DPAPI 主密钥访问及 LSASS/Protect 目录读取的检测能力。
限制与检测注意事项
文档指出,主密钥访问以及对 \Microsoft\Protect\ 与 \Microsoft\Credentials\ 的读取是可被检测的;backupkey 会触发对域控制器的 MS-BKRP RPC 调用。在线 /unprotect 路径在单主机场景中最为隐蔽,但仅能以活动用户身份使用。防御方应监控对 LSASS 的进程访问以及 Protect/Credentials 目录的异常访问(DE.CM-01)。文档还给出了验证标准,包括主机排查、主密钥解密、凭据管理器与 Vault 机密恢复、RDP/KeePass/证书机密提取、浏览器登录与 Cookie 解密、域备份密钥获取与离线复用,以及所有恢复机密的来源主机/用户记录与交战规则遵守确认。
前置条件
需要对目标 Windows 主机具备授权据点(交互式会话、beacon 或远程管理权限);需知道目标用户 SID,并具备以下之一:用户会话、密码、NTLM 哈希,或用于备份密钥的域管理员权限。
暂未提供
资料未说明该技能的收费、价格或具体授权方式,相关细节暂未提供。