如果您喜欢这个项目,请考虑购买 OctoPwn 的许可证,这是我们运行在浏览器中的完整渗透测试套件!
要获取新构建/发布通知及其他信息,请加入我们的 Discord
纯Python实现的Mimikatz。至少是其中的一部分 :)
运行在所有支持python>=3.6的操作系统上

本项目与许多其他渗透测试工具一样,借助OctoPwn的力量在浏览器中运行!
查看社区版本:OctoPwn - Live
从0.1.1版本开始,命令行发生了一些变化。别担心,我为您准备了很棒的 WIKI。
可以通过pip或从github克隆来安装。
安装程序会在python的Script目录下创建一个pypykatz可执行文件。你可以从那里运行它,它应该在你的PATH中。
请注意,github主版本可能会失败,因为我懒得为新版本创建合适的分支。不过我会尝试创建一个稳定版本的分支。
pip3 install pypykatz
安装先决条件
pip3 install minidump minikerberos aiowinreg msldap winacl
克隆此仓库
git clone https://github.com/skelsec/pypykatz.git
cd pypykatz
安装
python3 setup.py install
平台无关——所有命令在适用的情况下都有"live"版本和普通版本。"live"版本将使用当前系统,仅适用于Windows。普通命令是平台无关的。
可以用作您项目的库。
可以解析隐藏在LSASS进程中的秘密。这就像mimikatz的sekurlsa::,但使用不同的命令。
主要区别在于所有解析逻辑都与数据源分离,因此如果你定义一个新的读取器对象,你就可以从任何地方执行LSASS的解析。
当前支持的数据源:
您的项目在此 说真的,集成起来非常简单。解析注册表配置单元以获取存储的凭据,如NT和LM哈希、域缓存凭据(DCC/DCC2)和LSA机密。
当前支持的数据源:
您的项目在此 说真的,集成起来非常简单。DPAPI是多种本地秘密的保护者。目前该项目支持解密主密钥、dpapi blob、凭据文件、保险库文件。
结果并非100%正确,因为大多数这些东西的文档不多。始终欢迎PR!
当前支持的数据源:
请不要将此部分集成到您的项目中,它处于测试阶段可以以机器上运行任何进程的用户身份生成新进程。
可以为您的线程分配任何可用的令牌
这真的只是基础功能。原因是我讨厌不断使用psexec从管理员获取系统shell...
是的...查看代码。它有注释之类的东西...
该参数存在的原因:为了选择正确的解析结构,我们需要msv dll文件的时间戳信息。不幸的是,由于某种原因,Rekall并不总是具有此信息,因此解析可能会失败。
如果解析失败,这可以解决问题。
参数:-t
值:0 或 1
示例:
pypykatz.py rekall <momeory_dump_file> -t 0
有两种使用基于rekall的内存解析的方法。
pypykatz rekall 命令您需要指定要解析的内存文件。
重要提示:
rekall,请注意:它必须在virtualenv中运行,并且您需要在同一个virtualenv中安装pypykatz!out_file 和 kerberos_dir 命令开关!您可以在pypykatz的 plugins 文件夹中找到名为 pypykatz_rekall.py 的rekall插件文件。
您需要将其复制到rekall的 plugins/windows 文件夹,并将其重命名为 pypykatz.py。
然后修改位于同一文件夹中的 __init__.py 文件,并在末尾添加以下行: from rekall.plugins.windows import pypykatz
如果一切顺利,您可以直接从 rekall 命令行使用 pypykatz 命令。
如果您想帮助我将这个项目推向稳定版本,可以将lsass.exe进程的minidump发送到以下链接:https://nx5494.your-storageshare.de/s/SJteWj3PPbg8jBA
重要提示:请不要发送您自己机器上的lsass进程转储!!!我将能够看到您的秘密,包括哈希/密码!请从虚拟机测试系统等您不介意别人看到凭据的机器发送转储文件。(如果您有一个设置了kerberos的测试域系统,那将是最好的)
另外,如果您不给我发垃圾信息,我会很感激...
为了用Python创建mimikatz,必须创建无数不同结构的结构定义(查看原始代码),而无法借助使用本地编译器时自然获得的内置解析器。问题是,即使是一个字节的对齐错误也会导致这些结构的解析出错。问题主要围绕32-64位对齐,因此32位Windows版本的lsass转储也非常欢迎!
我需要数据来验证代码,并对解析器进行必要的更改,直到一切正常。
不提供实际文件而在github页面上提交问题根本无济于事,而且github不喜欢40-300Mb的文件附件。
我的大部分大型Python项目都旨在实现最大的可移植性,这意味着我只在绝对必要的情况下使用第三方包。
目前使用了三个额外的包,我打算保持这种方式。
Python>=3.6
minidump
minikerberos
asn1crypto
感谢Benjamin DELPY @gentilkiwi 的 Mimikatz
感谢Francesco Picasso 的 mimikatz.py volatility插件
感谢Alberto Solino (@agsolino) 的 impacket
感谢Richard Moore 的 AES模块
感谢Todd Whiteman 的 DES模块
感谢David Buxton 的时间戳转换脚本