我们的一些事 / SOME OF THE THINGS ABOUT US

IT新闻资讯

The news announcement

如何防止Mimikatz「获取」Windows密码
Data: 2016-07-14    TAG:

黑客总是在用最简单的攻击方式来实现他们的目的,比如用已经存在了好多年的工具——Mimikatz(猕猴桃),它可以从系统内存中轻松获取到明文密码。

受影响的系统

Windows 7和Windows Server 2008(老系统也受影响)。

最新的Windows 8 / 10 、Windows Server 2012 / 2016原本是不受影响的,但是高权限的黑客可以通过修改注册表来实现这样的攻击。

风险

黑客拥有系统管理员权限,就能从内存中获取登录认证信息(明文/各种哈希格式)。

描述

在Windows XP中,Microsoft增加了对“WDigest”协议的支持。该协议基于RFC 2617和2831。客户端用该协议向HTTP和SASL应用发送明文凭证,Windows会将密码缓存在内存中,便于用户登录本地工作站。这也就是利用Mimikatz工具进行攻击的基础了。

演示

我们在实验环境中设置了如下系统:

我们的域控服务器运行Windows 2012 R2系统。

我们用CrackMapExec(https://github.com/byt3bl33d3r/CrackMapExec)来模拟如何从这些系统中获取认证信息。

在服务器上通过powershell来执行Mimikatz,获取的认证信息如下。非常明了!是明文的:

   

建议

Microsoft先前就发布了KB 2871997补丁,就是用于解决该问题,以及相关的另外几个问题的。

上述补丁安装过后,我们还需要修改注册表,防止认证信息被缓存在内存中。值得一提的是,某些IIS服务器可能会配置使用WDigest身份认证。我们建议先在实验环境中测试上述修复方案,如果没有问题再更新到生产环境中。

我们可以通过如下命令来测试修改是否生效:

reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential

如果成功,系统应该会返回如下内容:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest

UseLogonCredential    REG_DWORD    0x0

很多用户更喜欢通过组策略(Group Policy)来修改注册表,按照微软给出的步骤操作即可。

打开组策略管理控制台(Group Policy Management Console),右键单击组策略对象(Group Policy objec),然后点击编辑(Edit)。

在控制台中,计算机配置(Computer Configuration)或者用户配置(User Configuration)下,打开预设(Preferences)文件夹,再打开窗口设置文件夹(Windows Settings),右键单击注册表(Registry),然后新建一个注册表,选择“注册项(Registry Item)”。

在新建注册表项对话框中,下拉菜单中选择“Creat(创建)”,输入如下数据:

设置好点击“确认”,新添加的项就会显示在右边的目录中。

在Windows 7和2008系统中执行下面这句命令(跳过组策略刷新间隔):

gpupdate

现在来验证一下修改是否完成,如下图说明我们在Windows 7中修改成功。

Windows Server 2008 R2系统中看起来是这样的:

现在我们重启两台电脑,然后使用先前的域登录凭证登录系统。修改注册表其实是不需要重启电脑的,但因为登录凭证是缓存在内存中的,所以还是需要重启清理一下。

最后我们再用CrackMapExec(https://github.com/byt3bl33d3r/CrackMapExec)工具尝试看看是不是能获取到登录凭证。

如你所见,我们已经不能从内存中获取到明文凭证了。

当然,还是可以看到NTLM hash。由此可见,强密码和双因子认证是防止认证密码被破解的重要手段。另外,我们也需要较好的策略来防止哈希传递攻击。

拥有系统权限的攻击者仍然能通过恢复注册表来实现攻击,所以仍要关注注册表的未授权更改情况。

上一篇:悲剧,TP-LINK官方域名被匿名人士注册了
下一篇:没有了