NTLM攻击两例
2019-10-27 10:16:30 Author: www.4hou.com(查看原文) 阅读量:119 收藏

10月10日,微软发布了Preempt 研究团队发现的两个重要漏洞CVE 2019-1166和CVE-2019-1338的补丁。

CVE 2019-1166: 该漏洞允许攻击者绕过NTLM认证的MIC(Message Integrity Code,消息完整性代码)保护,因此可以修改NTLM消息流的任意域,包括签名要求。攻击者利用该绕过可以中继已与其他服务器协商过的认证尝试,诱使服务器完全忽略签名要求。所有不强制签名的服务器都受该漏洞的攻击。

CVE 2019-1338: 该漏洞允许攻击者绕过NTLM认证的MIC保护,以及其他缓解NTLM中继的解决方案,如EPA和针对特定发送LMv2 challenge responses的NTLM客户端的目标SPN验证。攻击者利用该漏洞可以使用NTLM中继来成功完成对重要服务器的认证和窃取有价值的用户数据。

CVE 2019-1166 – 释放MIC 2

MIC是NTLM客户端提供的一个可选域,用来确保攻击者无法修改NTLM消息。MIC的存在是在NTLM_AUTHENTICATE消息的msvAvFlag域中声明的,其中flag 0x2表明消息中含有MIC,而且应当对想要移除MIC执行NTLM中继的攻击者进行防护。

preempt-security-advisory

图1 – flags域名表明NTLM_AUTHENTICATE消息中含有MIC

在CVE-2019-1040漏洞中,研究人员给出了一种方式在不修改msvAvFlag域的方式下从消息中移除MIC,即从含有其他版本域和协商flag的消息中释放。在发布了该漏洞的补丁后,由于msvAvFlag域会进行验证,因此移除MIC的方式不可行了。但研究人员找到了一种新的方式来使服务器相信消息中不包含MIC,这样研究人员就可以修改NTLM认证流中的任意阶段,比如移除签名要求。

技术细节

该漏洞的关键在于理解MIC是一个可选域,NTLM服务器验证该域的唯一当时就是检查msvAvFlag域的flag。此外,因为msvAvFlag域是由用户密码的哈希值签名的,所以攻击者无法修改。

但仍然有办法可以绕过MIC保护,并修改NTLM协商阶段,比如签名要求。这与CVE-2019-1019的EPA绕过漏洞类似。EPA绕过漏洞允许攻击者简单注入msvAvFlag域到NTLM_CHALLENGE的TargetInfo域的av_pairs中,这会在NTLM_AUTHENTICATE消息中显示。如果攻击者将msvAvFlag域设为0,该域就会被注入到NTLM_AUTHENTICATE消息中,同时会有一个额外的msvAvFlag域表示客户端就算出来的正确的值,如果消息中加入了MIC,那么该域就会设置为0x2。

那么被攻击的目标在接收到2个含有不同msvAvFlag域的NTLM_AUTHENTICATE消息时,被攻击的目标会怎么做呢?幸运的是攻击者只会考虑第一个域,就是攻击者声明消息中不存在MIC的那个域。因此,攻击者只需要从NTLM_AUTHENTICATE消息中移除MIC,绕过该域保护的安全特征就可以了。

security-advisory-patch-tuesday-October

图2 – 含有注入的msAvFlags域的NTLM Authenticate消息

具体的移除MIC绕过session签名的攻击流如下所示:

· 重设NTLM_NEGOTIATE消息 (NTLMSSP_NEGOTIATE_ALWAYS_SIGN, NTLMSSP_NEGOTIATE_SIGN)的签名flag;

· 在NTLM_CHALLENGE消息中用多个0注入恶意msvAvFlag域;

· 从NTLM_AUTHENTICATE消息中移除MIC

· 重设NTLM_AUTHENTICATE消息的以下flag: NTLMSSP_NEGOTIATE_ALWAYS_SIGN, NTLMSSP_NEGOTIATE_SIGN, NEGOTIATE_KEY_EXCHANGE, NEGOTIATE_VERSION

CVE-2019-1338 –利用LMv2客户端

大多数客户端在NTLM认证流过程中并不会发送LM response,因为普通认为LM response的安全性不如NTLM。但是仍然有很多发送LM responses的客户端,比如MacOS或Linux版本的Firefox。而且因为在LMv2响应上发起暴力破解攻击并不复杂,因此研究人员认为发送含有NTLMv2 response的LMv2 response的后果要更加严重一些。如果客户端发送这两种响应,攻击者就可以在绕过NTLM relay解决方案的同时中继认证。

技术细节

客户端发送LMv2 & NTLMv2 responses时,目标服务器会依赖NTLMv2 response的 av_pairs值来作为安全特征。但当Domain Controller(域控制器)接收响应时,只会验证LMv2 response。也就是说中继者可以攻击发送LMv2 & NTLMv2 responses的客户端,在中继认证的同时,修改NTLMv2 response的部分内容。

问题的关键在于目标服务器依赖NTLMv2 response的值,但如果LMv2 response存在的话,DC不会验证NTLMv2 response。

影响

这两个漏洞甚至可以引发整个网络被控制。比如,执行NTLM relay到没有强制执行SMB签名的敏感服务器,或执行NTLM relay到域控制器上的LDAP来修改敏感的AD对象。

所以默认配置的AD客端都受到此类攻击的影响。那些不拦截LM response的组织和仍然发送默认响应的客户端也受到此类攻击的影响。

保护方案

研究人员给出了以下几种缓解的措施:

· 强制执行NTLM解决方案。为了更好地应对NTLM relay攻击,需要在所有相关服务器上启用服务器签名和EPA。

· 打补丁。确保系统使用最新的安全更新。

· 应用高级NTLM relay检测和预防技术。

· 一些NTLM客户端使用的是弱NTLM变化。这使网络处于NTLM relay攻击的风险中。建议监控网络中的NTLM流量,并尝试限制不安全的NTLM流量。

· 排除发送LM response的客户端,设置GPO 网络安全为:LAN Manager认证级别以拒绝LM response。

· 由于NTLM存在NTLM relay,暴力破解和其他漏洞。因此,研究人员建议不要使用NTLM或者尽量减少网络中NTLM的使用。


文章来源: https://www.4hou.com/info/news/21163.html
如有侵权请联系:admin#unsafe.sh