内网大杀器利用:CVE-2019-1040漏洞

 

概述

微软官方在6月补丁日中,发布了一枚重磅漏洞CVE-2019-1040的安全补丁。该漏洞存在于Windows大部分版本中,攻击者可以利用该漏洞可绕过NTLM MIC的防护机制,结合其他漏洞和机制,某些场景下可以导致域内的普通用户直接获取对于域控服务器的控制。

近日,对于此漏洞的利用细节被安全研究人员公布出来,利用此漏洞获取内网的控制变得非常可行,看他堪称内网大杀器,形成现实的巨大威胁。

 

漏洞描述

微软的漏洞描述如下图所示:

当中间人攻击者能够成功绕过NTLM MIC(消息完整性检查)保护时,Windows存在篡改漏洞。成功利用此漏洞的攻击者可以获得降级NTLM安全功能的能力。要利用此漏洞,攻击者需要篡改NTLM交换,然后攻击者可以修改NTLM数据包的标志,而不会使签名无效。

该漏洞的CVSS 3.0的评分虽然只有5.9,但与其他安全问题结合起来利用,将导致巨大的安全威胁。

最严重的攻击场景下,攻击者仅需要拥有一个普通域账号,即可远程控制 Windows 域内的所有机器,包括域控服务器。

奇安信 A-TEAM 于 2019 年 2 月向微软官方提交了此漏洞,并获得微软公司官方致谢:

 

影响系统

Windows 7 sp1 至Windows 10 1903

Windows Server 2008 至Windows Server 2019

 

利用场景

对于特定环境, CVE-2019-1040漏洞的攻击链目前已经确定的两种攻击途径:

1、攻击域Exchange Server

2、攻击域AD Server

一、攻击域Exchange Server/管理员

前提条件

A、Exchange服务器可以是任何版本(包括为PrivExchange修补的版本)。唯一的要求是,在以共享权限或RBAC模式安装时,Exchange默认具有高权限。

B、域内任意账户。(由于能产生SpoolService错误的唯一要求是任何经过身份验证的域内帐户)

C、CVE-2019-1040漏洞的实质是NTLM数据包完整性校验存在缺陷,故可以修改NTLM身份验证数据包而不会使身份验证失效。而此攻击链中攻击者删除了数据包中阻止从SMB转发到LDAP的标志。

D、构造请求使Exchange Server向攻击者进行身份验证,并通过LDAP将该身份验证中继到域控制器,即可使用中继受害者的权限在Active Directory中执行操作。比如为攻击者帐户授予DCSync权限。

E、如果在可信但完全不同的AD林中有用户,同样可以在域中执行完全相同的攻击。(因为任何经过身份验证的用户都可以触发SpoolService反向连接)

漏洞利用攻击链

1、使用域内任意帐户,通过SMB连接到被攻击ExchangeServer,并指定中继攻击服务器。同时必须利用SpoolService错误触发反向SMB链接。

2、中继服务器通过SMB回连攻击者主机,然后利用ntlmrelayx将利用CVE-2019-1040漏洞修改NTLM身份验证数据后的SMB请求据包中继到LDAP。

3、使用中继的LDAP身份验证,此时Exchange Server可以为攻击者帐户授予DCSync权限。

4、攻击者帐户使用DCSync转储AD域中的所有域用户密码哈希值(包含域管理员的hash,此时已拿下整个域)。

二、攻击域AD  Server/管理员

前提条件

A、服务器可以是任何未修补的Windows Server或工作站,包括域控制器。在定位域控制器时,至少需要一个易受攻击的域控制器来中继身份验证,同时需要在域控制器上触发SpoolService错误。

B、需要控制计算机帐户。这可以是攻击者从中获取密码的计算机帐户,因为他们已经是工作站上的Administrator或攻击者创建的计算机帐户,滥用Active Directory中的任何帐户都可以默认创建这些帐户。

C、CVE-2019-1040漏洞的实质是NTLM数据包完整性校验存在缺陷,故可以修改NTLM身份验证数据包而不会使身份验证失效。而此攻击链中攻击者删除了数据包中阻止从SMB转发到LDAP的标志。

D、通过滥用基于资源的约束Kerberos委派,可以在AD域控服务器上授予攻击者模拟任意域用户权限。包括域管理员权限。

E、如果在可信但完全不同的AD林中有用户,同样可以在域中执行完全相同的攻击。(因为任何经过身份验证的用户都可以触发SpoolService反向连接)

漏洞利用攻击链

1、使用域内任意帐户,通过SMB连接到被攻击域控服务器,并指定中继攻击服务器。同时必须利用SpoolService错误触发反向SMB链接。

2、中继服务器通过SMB回连攻击者主机,然后利用ntlmrelayx将利用CVE-2019-1040漏洞修改NTLM身份验证数据后的SMB请求据包中继到LDAP。

3、使用中继的LDAP身份验证,将受害者服务器的基于资源的约束委派权限授予攻击者控制下的计算机帐户。

4、攻击者现在可以作为AD服务器上的任意用户进行身份验证。包括域管理员。

 

处置建议

鉴于目前安全研究人员(见参考链接3)已经披露了漏洞详情和利用方式,并在博客中公开了含POC代码的Github地址,此漏洞实乃内网大杀器,强烈建议受版本影响的用户紧急进行修复以消除威胁。

 

修复方案

微软官方已推出更新补丁,请在所有受影响的 Windows 客户端、服务器下载安装更新并重启计算机。

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-1040

注意:此漏洞存在多种不同的利用方案,强烈建议通过安装官方补丁的方式对此漏洞进行完全修复。如无法实现在所有服务器上安装该补丁,请优先保证在重要的服务器(如所有的域控制器、所有的 Exchange 服务器)上安装该补丁。

 

其他加固措施

对于无法安装补丁的服务器,可通过以下加固措施对此漏洞的某些利用方式进行适当缓解。注意,这些加固措施并没有修复漏洞,只是针对该漏洞可能存在的一些利用方式进行缓解。这些缓解措施有可能被高级别的攻击者绕过。

开启所有重要服务器的强制 SMB 签名功能

(在 Windows 域环境下,默认只有域控服务器开启了强制 SMB 签名)

启用所有域控服务器的强制 LDAPS Channel Binding 功能

(此功能默认不启用。启用后有可能造成兼容性问题。)

启用所有域控服务器的强制 LDAP Signing 功能

(此功能默认不启用。启用后有可能造成兼容性问题。)

开启所有重要服务器(比如所有 Exchange 服务器)上相关应用的Channel Binding 功能(如 IIS 的 Channel Binding 功能)

以上修复方案来自奇安信 CERT

 

参考链接

[1] https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-1040

[2] https://blog.preempt.com/security-advisory-critical-vulnerabilities-in-ntlm

[3] https://dirkjanm.io/exploiting-CVE-2019-1040-relay-vulnerabilities-for-rce-and-domain-admin/

(完)