Skip to content

djh-sudo/CredentialsViewer

Repository files navigation

CredentialsViewer

Introduction

Windows pc中,有许多重要的凭证文件,但这些文件都被加密了,有一些优秀的凭证解密器,如DataProtectionDecryptorCredentialsFileView,用户只需输入登录的密钥,程序便能解密这些文件,进一步会暴露用户存储的其它密码信息。

上述两个软件没有开源源代码,本项目通过调试mimicatz源代码,用python复现了其中diapi模块的功能。

Quick View

python CredentialViewer.py

参数包括了-p-auto-mk-sid-dc等,含义如下:

-p user login password  # 用户登录密码,必填
-auto execute automatically # 自动搜索本机的相关文件,尝试解密凭证文件,可选
-mk master key filepath # 主密钥的文件路径,可选
-sid user sid # 用户对应的SID,可选
-dc credentials file path # 用户的凭证文件路径,可选
-skey # 搜索本机主密钥文件的路径
-scred # 搜索本机凭证文件所在路径
-show # 直接输出解析信息,可选
-save save_path #解密信息保存为csv文件,可选

可选的部分主要用于自动搜索文件失败,需要手动添加路径,或者离线解密其它计算机的文件的场景。例如解密其它主机的凭证文件,需要准备登录密码(123456),主密钥和凭证文件(demo1文件夹中的部分)以及sid

python CredentialViewer.py -p 123456 -mk ./demo1/17b321e0-*-49bc-*-* -sid S-1-5-21-*-*-*-500 -dc ./demo1/9EB88D******CF09******D953******

demo

Environment

python 3.6 +
pycryptodomex ~= 3.15.0

测试环境在windows 10/11主机上,这里需要本地账户,而不是微软账户!

pyinstaller

打包的时候可能会出现Cryptodome模块,需要把hook-Cryptodome.py文件放置在Lib/site-packages/Pyinstaller文件夹中。

在打包时,执行以下命令。

pyinstaller CredentialViewer.py -F -p venv/Lib/site-packages

END

再次感谢mimicatz开源项目,demo文件因为相对隐私,所以没有给出,源代码仅供学习参考,请勿做其它非法等用途。详细过程Also See

To be soved

由于解密用到的填充算法和标准接口不一致,因此pbkdf2函数没有使用python封装好的接口,因此这个函数的性能很不好,导致整个解密过程很慢,使用numba似乎也无法加速。