回归最本质的信息安全

如何缓解Mimikatz WDigest Cleartext 窃取凭证?

2017年4月10日发布

12,111
0
0

导语:渗透测试人员和那些进行恶意攻击的人通常都会将注意力集中在使用最简单的攻击媒介来实现其目标。

渗透测试人员和那些进行恶意攻击的人通常都会将注意力集中在使用最简单的攻击媒介来实现其目标。 比如已经存在几年的一个常见攻击方式—使用一个名为Mimikatz的工具,它能够从受损Windows系统的内存中窃取明文凭证。

受影响的系统

Windows 7和Windows Server 2008(其他旧版操作系统也很脆弱)

相比较而言新版本(如Windows 8/10和Windows Server 2012/2016)在默认情况下不容易受到攻击,但如果攻击者具有系统级权限,则可以将其重新配置(通过注册表更改)。

影响

具有管理员权限的攻击者可以从受损系统的内存窃取凭据,而内存中的凭证以明文和各种哈希格式存储。

描述

在Windows XP中,Microsoft添加了一个名为WDigest的协议的支持。WDigest协议可用于在客户端将明文凭据发送到基于RFC 2617和2831的超文本传输协议(HTTP)和简单认证安全层(SASL)应用程序。Windows将密码存储在内存中,方便用户登录到本地工作站。

在我们的实验室环境中,我们有以下系统设置:

10.10.10.4    Windows Server 2008 R2   新安装
10.10.10.6    Windows 7            新安装

首先使用域控制器运行Windows 2012 R2。

然后我们将使用CrackMapExec来演示如何从这些系统窃取凭据,即通过使用powershell来在两个目标系统上执行Mimikatz。被盗凭证如下所示:

图片1.png

建议

微软发布的KB 2871997可以解决这几个相关的问题。可以点击以下URL就可以直接下载:

Windows 7  x86
https://download.microsoft.com/download/9/8/7/9870AA0C-BA2F-4FD0-8F1C-F469CCA2C3FD/Windows6.1-KB2871997-v2-x86.msu
Windows 7  x64
https://download.microsoft.com/download/C/7/7/C77BDB45-54E4-485E-82EB-2F424113AA12/Windows6.1-KB2871997-v2-x64.msu
Windows Server 2008 R2  x64  Edition
https://download.microsoft.com/download/E/E/6/EE61BDFF-E2EA-41A9-AC03-CEBC88972337/Windows6.1-KB2871997-v2-x64.msu

安装KB后,需要修改注册表以防止凭据存储在内存中。对于单个系统,可以通过以下命令完成此修改:

Reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 0

这里需要注意一下,某些IIS服务器可能已经配置使用了WDigest认证。同时我们建议在实验室环境中测试此修复程序,然后在实际中进行使用。

为了验证前面的修改是否有效,我们可以使用以下命令来检查结果:

reg query HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential

这时应该返回以下结果:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersWDigest
UseLogonCredential    REG_DWORD    0x0

大多数客户喜欢使用组策略来进行注册表的修改,因为它是一种集中的方法。而这一步可以通过以下步骤完成:https://technet.microsoft.com/en-us/library/cc753092(v=ws.11).aspx

打开组策略管理控制台,右键单击应包含新首选项的组策略对象(GPO),然后单击编辑。

1491558360671252.png

在计算机配置或用户配置下的控制台树中,展开首选项文件夹,然后展开Windows设置文件夹。右键单击注册表节点,指向新建,然后选择注册表项。

1491558369486801.png

在“ 新建注册表项”对话框中,选择“为组策略创建 ”以执行。输入以下设置:

行动: 创建
蜂巢: HKEY_LOCAL_MACHINE
关键路径: SYSTEM  CurrentControlSet  Control  SecurityProviders  WDigest
价值名称: UseLogonCredential
值类型: REG_DWORD
价值数据: 0
基础:   小数

图片4.png

等所有都看起来是正确的之后点击确定,新的首选项就会显示在详细信息的窗格中。现在我们可以跳过组策略间隔,这可以通过在Windows 7和2008系统上运行以下命令来完成:gpupdate

接下来,我们可以确认已经发生了变化。下面我们可以看到Windows 7系统上的一切都很好。

1491558389403249.png

Windows Server 2008 R2系统上的所有内容也都很好。

1491558399404965.png

现在,我们重新启动这两个系统并使用我们以前使用的相同域凭据进行登录。注册表修改不需要重新引导,但是由于凭据存储在内存中,最好的方法是刷新它们。

最后,我们重新运行CrackMapExec来验证更改是否有效。

1491558410580642.png

如您所见,明文凭证不再存储在内存中。但是,NTLM哈希值仍然可以被检索。因此,强密码和双因素认证对于防止密码破解仍然很重要。同样重要的是确保一个很好的策略来减轻通过哈希攻击媒介。微软有以下几个位置可以找到关于这个主题的资源:

https://www.microsoft.com/pth
https://download.microsoft.com/download/7/7/A/77ABC5BD-8320-41AF-863C-6ECFB10CB4B9/Mitigating-Pass-the-Hash-Attacks-and-therther-Credential-Theft-Version-2。 pdf

攻击者仍然可以在任何可以实现系统级权限的系统上恢复注册表修改。注册表修改不需要重新启动,防御者应监视注册表以进行未经授权的更改。

如若转载,请注明原文地址: http://www.4hou.com/info/news/4176.html

点赞 0
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

Change

Change

嘶吼编辑

发私信

发表评论