探索 Mimikatz 武器之 WDigest

黑客信息网

自打 Mimikatz 出現至今,大家很多人早已对这一工具开展过封裝,也试着过引入,或是是应用 powershell 完成相近的作用。如今我们决定给这一工具加上一个内存 dump 的作用,不管大家怎样封裝应用 Mimikatz,它依然是 Windows 系统软件中从 lsass 进程中获取凭证的优选工具。 自然,这是由于微软公司引进的每一个新的安全防范措施,GentilKiwi 总是会有相匹配的“阴谋”。 假如你以前看了 Mimikatz 所投入的勤奋,你能感觉那绝非易事,因为它适用全部的 Windows x86和 x64版本号(近期还提升了适用 ARM 上 Windows 的作用)。 自然,伴随着 Mimikatz 很多年来的取得成功,BlueTeam 如今早已十分熟练地发觉了它在多种多样情景中的主要用途。 大部分,假如在有一切完善的安全性防御措施的服务器上实行 Mimikatz,很有可能会被阻拦。

根据曾经的我的很多线上和线下的沟通交流会话,大家如今很有可能早已了解我对 RedTeam 的观点,她们了解她们的工具不仅是在实行一个脚本制作。 安全性经销商防御力并监管普遍绕开方法的攻击面,一般比大家发觉新的进攻方式更快,伴随着这类发展趋势的发展趋势,做为网站渗透测试工作人员,掌握特殊技术性的原理到 API 的启用能够使你在遭受优良维护的自然环境中避开检测服务层面出示许多 益处。

即便如此,Mimikatz 依然是一个以那样或那般的方式与大部分后漏洞检测工具包一起带上的出色工具。 尽管一些安全性经销商已经监控进攻工具与 lass 进程的互动,但大量的经销商早已决策试着鉴别 Mimikatz 自身。

我一直在考虑到在一些网站渗透测试情景(主要是这些不行得通或不允许内存转储的情景)中除掉 Mimikatz,但这一念头一直困惑着我。我花了很长期应用某一工具,但非常少对这一工具开展更深层次更最底层的科学研究。

因此根据发布一些网络文章,我觉得更改这一点,探索 Mimikatz 的一些魔法,从它逐渐的地区逐渐…。最先是WDigest,从总体上,我要看看事实上在 lass 进程中缓存文件纯文字凭证的关键点,及其怎么使用"sekurlsa::WDigest"从内存中获取凭证。 这将代表着必须一些反编译和调节的工作中,但期待到最终你能见到,为何大家难以拷贝创作者早已资金投入到 Mimikatz 中的很多勤奋。假如你的总体目标是只应用一小部分能用的作用,很有可能对你而言,非常值得去设计方案一个根据Mimikatz 源码的自定工具,而不是挑选应用 Mimikatz 的详细作用。

为了更好地进行本文,我都将探索在 lass 进程中载入随意 DLL 的别的方式,期待这种方式能够与演试的编码实例紧密结合。

留意: 文中中很多应用了 Mimikatz 的源码及其开发者花销的成千上万時间。 这类勤奋理当越来越更为显著,由于你会见到在访问编码时忽然曝露的无文本文档构造。 谢谢 Mimikatz,Benjamin Delpy 和 Vincent Le Toux 优异的科学研究工作中。

"sekurlsa: : WDigest"原理分析

如同前边提及的,在本文中我们要深入分析的是 WDigest,它能够说成 Mimikatz 最知名的作用之一。 WDigest 凭证缓存文件在默认设置状况下是开启的,直至 Windows Server 2008 R2以后才禁止使用了纯文字凭证的缓存文件。

在反向电脑操作系统部件时,我一般喜爱额外一个调试器,并查验该部件在运作时怎样与电脑操作系统开展互动。 悲剧的是,在这类状况下,不可以像把 WinDBG 联接到 lass 进程这么简单,由于迅速你就会看到 Windows 会在警示你系统软件将要重新启动以前停止运行。 反过来,大家务必额外到核心并从 Ring-0 转换到 lsass 进程。 假如你之前从来没有试着把 WinDBG 联接到核心上,能够点一下这儿查询我以前写的一篇文章,主题风格是有关怎么设置一个核心调试器。

额外了核心调试器后,大家必须获得 lass 进程的 EPROCESS 详细地址,能够根据实行 !process 0 0 lsass.exe 指令寻找该详细地址:

根据鉴别 EPROCESS 详细地址(上边的 ffff9d01325a7080) ,我们可以发出请求,将调节对话转换到 lass 进程的前后文中:

实行一个简易的 lm 指令就可以表明大家现在可以浏览到的 WDigest DLL 内存室内空间:

假如这时你发觉标记沒有被妥善处理,实行 .reload /user 一般会出现协助。

额外了调试器以后,大家就可以再次深入分析 WDigest。

深层次 WDigest.dll (及其一部分 lsasrv.dll)

如果我们查询 Mimikatz 的源码,我们可以见到在内存中鉴别凭证的全过程是根据扫描仪签字完成的。 使我们把握住这一机遇来应用一个现阶段很时兴的工具, Ghidra,看一下 Mimikatz 在内存中寻找什么。

因为我现阶段已经科学研究 Windows 10 x64,因此,我将关心如下图所显示的 PTRN_WIN6_PasswdSet 签字:

在向 Ghidra 出示了这一检索的签字以后,大家弄清楚了Mimikatz 扫描仪内存的目地:

标签:

发表评论 (已有条评论)

  • 评论列表