pypykatz的核心功能

9 人参与

在红队工具链中,pypykatz已经从实验室代码演进为生产环境的“凭证收割机”。它的核心价值体现在三大能力:直接从 LSASS 内存获取明文密码、提炼 NTLM 哈希以及恢复 Kerberos 票据(TGT/TGS),而且全部在 Python 环境下完成,无需额外的 C++ 编译链。

核心功能概览

  • Memory Dump:使用 minidumpproc_dump 两种方式读取 LSASS 进程的原始内存块。
  • Credential Extraction:解析内存结构,定位 MSVWDIGESTDPAPIKERBEROS 四大子模块,分别抽取密码、NTLM、DPAPI 保护的密钥以及 Kerberos 票据。
  • Ticket Decryption:对提取到的 Kerberos 票据进行解密,恢复出原始的 krb5 结构,便于后续的 Pass-The-Ticket(PTT)攻击。

凭证抽取的技术细节

pypykatz 通过 impacketMSRPC 通道,先在目标机器上启动 lsass 读取进程句柄,然后将内存块写入本地临时文件。随后,它解析 Windows 7/8/10 以及 Server 2016/2019 中的 _LsaLogonSession 链表,遍历每个登录会话的 Credential Manager,把每条记录映射为 Python 对象。整个过程在 5 GB 内存的机器上,平均耗时仅为 12 秒,远快于传统的 mimikatz 手工导出。

支持的凭证类型一览

  • 明文密码(仅在 LSASS 中以 unicodeString 形式存储的账号)
  • NTLM 哈希NTLMLM 双哈希)
  • DPAPI 密钥(用于解密浏览器、邮件客户端等本地加密数据)
  • Kerberos 票据(包括 TGT、TGS,支持 AES256、RC4 加密)

实战案例速写

一次红队演练中,团队在获得域管理员的凭证后,直接在内部网络的 Windows Server 2019 上运行 pypykatz dump,瞬间拿到 12 条有效的 Kerberos TGT。随后利用 Rubeus 将这些票据注入到攻击机,成功横向渗透到高价值的 SQL Server 实例,整个链路从内存抽取到横向移动不到两分钟。案例揭示了 pypykatz 在“内存即服务”模型下的高效闭环。

参与讨论

9 条评论
  • EclipseDawn

    有人试过在Win10 1909上跑吗?会不会被Defender拦

    回复
  • 狂煞孤狼

    从内存dump到横向移动才两分钟,这速度有点吓人啊

    回复
  • PulsarShade

    之前搞过类似的内存取证,解析结构这块确实容易踩坑

    回复
  • 蜂蜜小熊仔

    要是目标系统开了Credential Guard还能用吗?

    回复
  • 墨竹隐士

    感觉LSASS这块成了万能钥匙,什么凭证都能掏出来

    回复
  • 善良的守护者

    这工具确实比mimikatz方便多了,不用折腾编译环境

    回复
  • 月落乌

    TGS票据也能解?那岂不是域内横行无阻了

    回复
  • 晨光爱好者

    12秒出结果,这效率可以啊

    回复
  • 暗影织命者

    DPAPI密钥也能搞,那浏览器密码岂不是随便看了

    回复