辉克's Blog

创造机会的人是勇者;等待机会的人是愚者

防止获取Windows密码

受影响的系统

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

风险

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

描述

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

建议

Microsoft先前就发布了KB 2871997补丁,就是用于解决该问题,以及相关的另外几个问题的。有需要的可以点击下面的链接下载:

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

上述补丁安装过后,我们还需要修改注册表,防止认证信息被缓存在内存中。用下面的命令就能完成修改:

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0

值得一提的是,某些IIS服务器可能会配置使用WDigest身份认证。我们建议先在实验环境中测试上述修复方案,如果没有问题再更新到生产环境中。
我们可以通过如下命令来测试修改是否生效:

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

如果成功,系统应该会返回如下内容:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest
UseLogonCredential ? ?REG_DWORD ? ?0x0


						
			

发表回复