利用Mimikats提取虚拟机内存中的密码

前言:

这篇文章来自于国外的carnal0wnage,具体是通过利用windbg载入Mimikatz读取虚拟机内存文件(vmem/vmsn文件),从而获取到其中的密码。之前也有人单独介绍过Mimikatz和metasploit的Mimikatz模块,这次我们主要说一下windbg是怎样使用Mimikatz进行内存取证的。下面我们来看一下carnal0wnage是怎样做的。

题外话:

为了让大家看的更明白,这里我们先简单说一下Mimikatz:该神器出自法国大神Benjamin Delpy之手,可以直接获取到大多数windows平台下的明文密码,相比于其他工具,最大的特点是速度极快,无需等待。 关于神器用法之前FreeBuf有人介绍过了,大家可以戳这里 : http://www.freebuf.com/tools/37162.html

原理是从lsass.exe进程中直接获取密码信息进行破解,而且该破解应该并非穷举方式,而是直接根据算法进行反向计算,这一点原作者已经给出了说明:

下载地址在这里: http://blog.gentilkiwi.com/mimikatz

废话不多说,现在我们看下carnal0wnage是如何做的:

(前面的我就不写了,大约是carnal0wnage的一些个人感慨。。我个人对别人的私生活私感想没兴趣=。=)

当在vCenter/ESXi系统上做这些研究时,我先贴出一些关于这个问题的一些博客文章:

当然,在做这些之前,你需要一些工具:

Windows调试工具(windbg,研究的主要角色)

Windows内存内核工具

http://www.moonsols.com/windows-memory-toolkit/

最新版本的mimikatz已经支持windbg的调用:

https://github.com/gentilkiwi/mimikatz

下面我们开始:

#1 从虚拟主机中拷贝出虚拟内存文件(vmem/vmsn)

#2 使用moonsols的bin2dmp将内存文件转换为dmp格式文件(这里我用的是之前的付过费的pro版)

到这,你应该可以获取到一个dmp文件了,我们可以进行下一步工作了。

#3 在windbg中载入dmp文件,下面是图片:

注意: 我们要先在windbg控制台中运行.symfix,然后执行.reload

#4 windbg中载入mimilib模块

#5 查找lsass进程

#6 将镜像lsass环境转换到本机中

#7 载入mimikatz

Okay,这样我们就获取到了内存中的密码,明文的。