天下写给蓝军的滥用 DPAPI 操作指南(下)_HUC惠仲娱乐

天下

(上篇文章)

证书管理器和 Windows Vault

提醒一下: 我没有想出下面所要描述的任何内容,我只是记录下来,并尽我所能解释它。 下面所有的荣誉都归功于本杰明在这个领域的杰出工作。

Windows 7开始,凭证管理器允许用户存储网站和网络资源的凭证。 凭据文件存储在C:\Users\<USER>\AppData\Local\Microsoft\Credentials\ for users %systemroot%\System32\config\systemprofile\AppData\Local\Microsoft\Credentials\中。 这些文件由用户(或系统)指定的 DPAPI 主密钥保护。

与之相关的是 Windows Vault,它存储在 C:\Users\<USER>\AppData\Local\Microsoft\Vault\<VAULT_GUID>\  中,稍微复杂一些。 vault文件夹中,有一个 Policy.vpol 文件,其中包含两个密钥(AES128 AES256) ,这两个密钥由用户指定的 DPAPI 主密钥保护。 然后使用这两个密钥解密同一个文件夹下的*.vcrd 证书。

这里就有点复杂了。

有几种方法可以获得这些 vaulte 证书。 如果凭据保存的是 Internet ExplorerEdge 的登录信息,则可以使用来自 vaultcli.dll 的一系列 API 调用枚举这些凭据。 这可以通过 Mimikatz vault::list 模块、 Massimiliano Montoro Vault Dump 代码 Matt Graeber PowerShell 端口代码 Dwight Hohnstein C# 版本的Graeber 代码或者 Seatbelt 整合 Dwight C# 代码(Seatbelt.exe DumpVault.)来实现。但是,在运行这些代码库时,你会注意到一些有趣的现象: 并非所有的vault凭据都会返回。 为什么呢?