Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
dpapi-toolkit — 将任意 Windows DPAPI 工件拖入,它会识别格式及其所需的精确主密钥,然后在你提供密钥后进行解密。支持离线使用,提供 CLI 和 Web UI。 | Kitploit
工具/GitHubGitHub/crypt0p3g/dpapi-toolkit
密码破解加密/解密工具哈希分析脚本与自动化取证分析后渗透利用数字取证渗透测试实用工具与框架红队
GitHubcrypt0p3g/dpapi-toolkit

dpapi-toolkit

31311522天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

将任意 Windows DPAPI 工件拖入,它会识别格式及其所需的精确主密钥,然后在你提供密钥后进行解密。支持离线使用,提供 CLI 和 Web UI。

查看仓库

DPAPI-toolkit

一个用于 Windows DPAPI 证据的离线工具包。你收集文件,将工具指向某个工件,它会识别格式并准确告诉你需要哪个主密钥;你提供密钥材料,它进行解密。

大多数 DPAPI 工具要么是每种格式一个脚本,要么是隐藏在更大的攻击框架中的某个功能。这是一个覆盖全范围的工具——主密钥、DPAPI blob、凭据管理器、Vault、CREDHIST、Wi-Fi、RDP/RDCMan、CAPI/CNG 密钥和证书、PowerShell SecureStrings、KeePass、SCCM、Chromium os_crypt 密钥,以及(通过可选插件)DPAPI-NG——仅从收集的文件驱动,带有命令行界面和基于同一核心的本地拖放式 Web UI。

它面向红队和渗透测试、DFIR 以及安全研究。不使用实时主机、域控制器、网络、BKRP 或 LSASS 访问,也不暴力破解密码或 PIN:你需明确提供收集到的工件和密钥材料。

仅对你拥有或明确获授权检查的系统和证据使用本工具。

本地 Web UI:拖入工件,检查其结构,添加密钥材料,然后解密——全部在 127.0.0.1 上完成。

示例

你已离线收集了用户的 Protect 文件夹和一个凭据管理器文件,并且知道账户密码。先检查凭据——无需密钥:

python3 dpapi_toolkit.py CREDENTIAL_FILE

它会打印嵌入的 DPAPI blob 及其所需的主密钥 GUID。将其指向 Protect 目录,让它匹配并解锁该主密钥,然后解密:

python3 dpapi_toolkit.py CREDENTIAL_FILE --type credential \
  --masterkey-dir Protect-S-1-5-21-... \
  --sid S-1-5-21-... \
  --password 'password'

结果是包含目标、用户名和恢复的凭据的 JSON。相同的“先检查后解密”流程适用于所有支持的格式。

安装

需要 Python 3.10 或更高版本。唯一的硬依赖是 cryptography:

python3 -m pip install cryptography

可选依赖可启用特定功能:

python3 -m pip install python-registry  # read Outlook data from NTUSER.DAT
python3 -m pip install dpapi-ng          # offline DPAPI-NG plugin
python3 -m pip install impacket          # offline SYSTEM/SECURITY/SAM hive plugin

不需要实时 Windows 主机、域控制器、网络连接或 LSASS 访问。注册表机密和主密钥必须已经收集好。

覆盖范围

  • 主密钥——用户和 SYSTEM,可通过密码、NT 哈希、本地 SHA1 哈希、恢复的 prekey/credential key、DPAPI_SYSTEM 或 AD 域备份密钥解锁。
  • 经典 DPAPI blob 以及 PowerShell ConvertFrom-SecureString / Export-Clixml SecureStrings。
  • 凭据管理器、Windows Vault(.vpol/.vcrd)和 CREDHIST 密码历史。
  • Wi-Fi 个人和企业/PEAP 配置文件。
  • 远程桌面 .rdp 文件和 RDCMan .rdg/.settings。
  • CAPI/CNG 私钥和证书,可选 PKCS#12/PFX 打包。
  • KeePass ProtectedUserKey.bin、SCCM 策略机密、Outlook IMAP、软件支持的 Windows Hello / NGC 密钥,以及 Chromium os_crypt 密钥。
  • 可破解哈希导出用于离线密码恢复——$DPAPImk$ 主密钥(Hashcat 15300/15310/15900/15910)、$MSONLINEACCOUNT$ CacheData(模式 33700)和本地 SAM NT 哈希。参见 docs/hashes.md。
  • DPAPI-NG(可选插件)用于离线 SID 描述符 blob,需提供 KDS 根密钥。
  • 递归批处理模式和本地 Web UI,共享同一核心。

识别你的密钥材料

解锁方法取决于你已拥有的内容。下表将其映射到 CLI 选项;相同的选项也出现在 Web UI 的 2. Unlock key 下。

你拥有的内容大小 / 形式选项
加密的 Windows 主密钥Protect 下以 GUID 命名的文件--masterkey FILE 加上一种解锁方法
解密的主密钥64 字节--real-masterkey FILE_OR_HEX_OR_BASE64
解密主密钥的 SHA1 映射20 字节--real-masterkey FILE_OR_HEX_OR_BASE64
DPAPI_SYSTEM 机密40 字节的 MachineKey || UserKey、单个 20 字节密钥,或带版本信息的 44 字节--dpapi-system FILE_OR_HEX_OR_TEXT
最终绑定 SID 的用户 prekey20 字节--prekey FILE_OR_HEX
NT 哈希16 字节--nt-hash FILE_OR_HEX --sid SID
本地 SHA1 密码哈希20 字节的 SHA1(password as UTF-16LE)--sha1-hash FILE_OR_HEX --sid SID
未绑定的凭据密钥16–128 字节--credkey FILE_OR_HEX --sid SID
AD DPAPI 备份材料PEM、DER、PVK、CAPI PRIVATEKEYBLOB 或 256 字节 ServerWrap 密钥--domain-backup-key VALUE 或 --pvk VALUE

40/44 字节的 DPAPI_SYSTEM 值不是解密的主密钥。用它来解密以 GUID 命名的 SYSTEM 主密钥,然后使用得到的 64 字节主密钥来解密工件。

本地 Web UI

Web UI 是同一离线核心之上的轻量前端,因此其结果与命令行完全一致:

python3 dpapi_web.py                 # http://127.0.0.1:8765/

它仅绑定到 127.0.0.1,没有 LAN/公网绑定选项,将解密结果保存在有界内存中供单次一次性下载,并且从不写入持久化的解密输出。完整工作流、各格式流程和安全态势参见 docs/web-ui.md。

文档

指南内容
docs/cli-reference.md检查、主密钥解锁、输出选项、熵、Hashcat 导出、批处理模式、默认收集位置、故障排除。
docs/artifacts.md每种受支持工件的按格式命令示例。
docs/web-ui.md本地 Web UI:完整工作流、核心工件流程、链式恢复及其安全模型。
docs/plugins.md可移除的离线插件(Certificate/PFX、CacheData、Windows hives、DPAPI-NG)以及 DPAPI-NG 演练。
docs/hashes.md获取用于离线密码恢复的可破解哈希——$DPAPImk$、$MSONLINEACCOUNT$ 和 SAM NT 哈希,以及 Hashcat 命令。

还内置了快速帮助:python3 dpapi_toolkit.py -h 获取简短帮助,-hh 获取详细的密钥/工件/位置/限制帮助,在任何工件后附加 --structure 可在不解密的情况下打印其解析字段。

布局

文件用途
dpapi_toolkit.py核心解析/解密以及 CLI。也可作为模块导入。
dpapi_web.py本地、无依赖的 Web UI(标准库 HTTP 服务器)。
dpapi_plugins.py离线插件的清单发现和延迟加载。
plugins/certificate_pfx/证书/私钥匹配和离线 PKCS#12/PFX 创建。
plugins/cachedata/Entra ID/CloudAP CacheData 已知密码解码器和 Hashcat 模式 33700 导出器。
plugins/dpapi_ng/使用本地提供的 KDS 根密钥进行 DPAPI-NG SID 描述符解密。
plugins/windows_hives/离线 DPAPI_SYSTEM 提取和可选的本地 SAM 哈希导出。

范围与限制

该工具包有意保持离线:无出站 HTTP、RPC、域控制器、BKRP、LSASS 或实时注册表访问,也不进行密码/PIN 暴力破解。除此之外:

  • 完全支持经典 DPAPI。可选的 DPAPI-NG 插件在提供匹配的 KDS 根密钥时处理离线 SID 描述符 blob;不支持其他保护描述符,并且它从不回退到 RPC。
  • 收集的 SYSTEM/SECURITY hive 可由 windows_hives 插件处理,或直接提供已提取的 DPAPI_SYSTEM 值。
  • Entra CacheData 可使用一个提供的已知密码解密,或导出为模式 33700 验证器以供外部恢复;该工具包不测试任何候选。其他 CloudAP/LSASS 来源仍需要提供的 prekey 或凭据密钥。
  • 仅尝试主密钥文件的主要加密部分;其本地次要 BackupKey 部分尚未用作回退。
  • 加密的 PVK 和 PEM 备份密钥需要明确提供的密码。
  • 绑定 TPM 的 Windows Hello 材料无法从复制的文件离线恢复。NGC/PIN 节点链尚未实现;仅支持软件 CNG PIN 密钥。
  • CNG DSA V2(>1024 位)和一些不常见的旧式提供程序 blob 尚未转换为 PEM;其解密字节会被保留。

致谢

这是一个独立实现,但它建立在大量关于 Windows DPAPI 内部机制的公开研究和工具之上。感谢以下项目和作者,他们已发表的工作使此处的离线算法成为可能:

  • mimikatz,作者 Benjamin Delpy (@gentilkiwi)——DPAPI 主密钥、blob、CREDHIST、 Vault 和凭据格式及其密钥派生的参考。
  • impacket,作者 Fortra(最初为 Alberto Solino,@agsolino)——其 dpapi.py/secretsdump 逻辑和注册表 hive 类;也是 SYSTEM/SECURITY/SAM hive 插件使用的可选依赖。
  • SharpDPAPI,作者 Will Schroeder (@harmj0y) 和 GhostPack——许多工件格式以及 Credential/Vault/CAPI/CNG 路径的交叉验证。
  • DPAPImk2john 和 hashcat 团队——$DPAPImk$ 哈希格式以及 Hashcat 导出所针对的模式 15300/15310/15900/15910。
  • dpapi-ng,作者 Jordan Borean (@jborean93)——离线 DPAPI-NG 插件背后的可选库。

许可证

MIT。参见 LICENSE。

下载工具