最近的 Zerologon漏洞(CVE-2020-1472)成了特权提升漏洞的头条新闻,它可能会影响组织中的所有计算机和域控制器。
这个被称为Zerologon的高风险漏洞使威胁者可以轻松即时地访问域控制器,而无需提供任何其他特权。这种攻击甚至不需要对用户进行身份验证;威胁者甚至只需要连接到内部网络即可。
什么是Zerologon漏洞?
这是Netlogon中的一个漏洞,该身份验证协议用于验证加入域的计算机对域控制器的身份。它被归类为高风险(CVSS评分为10),因此该漏洞意味着泄露用户帐户甚至不需要向域进行身份验证-只需连接到内部网络即可。
漏洞评估
在我们描述如何利用此漏洞之前,对您了解Netlogon非常重要。该远程协议不使用与其他RPC服务相同的身份验证方案。
相反,它使用自定义的加密协议让客户端(加入域的计算机)和服务器(域控制器)互相向对方证明加密,从而彼此进行身份验证。
身份验证过程如下:
该漏洞可能会在哪里发生?
该漏洞是由AES加密算法中的缺陷引起的。
客户端和服务器都使用AES-CFB8加密方法来生成凭据,如上面的步骤4所述。所有这些都是在ComputeNetlogonCredential 函数中实现的。
此AES-CFB8加密以不安全的方式实施,造成了此漏洞。
·ComputeNetlogonCredential函数采用8字节的质询(如在步骤1和2的上方),并使用秘密会话密钥生成客户端凭据(如步骤4所示)
·8字节质询附加到称为初始化向量(IV)的16个随机字节上 。
·AES加密被应用于所述向量。XOR条件用于将结果值的第一个字节连接到使用该协议的8字节表达式的第一个字节。重复这些步骤,直到将短语全部编码为止。
那么问题出在哪里了呢?
AES-CFB8安全性取决于随机选择的IV。不幸的是,ComputeNetlogonCredential函数定义该IV是固定的,并且始终由16个零字节组成。
全零IV会出什么问题? 256个密钥中有一个,就会应用AES-CFB8加密然后导致全零密文。
“零”登录攻击
在与NetrServerReqChallenge调用交换质询后,客户端随后会执行NetrServerAuthenticate3调用来对自身进行身份验证。
该调用具有一个名为ClientCredential的参数,该参数是将ComputeNetlogonCredential应用于上一个调用中发送的客户端质询来计算的。
没有什么能阻止我们将质询设置为8个零。这意味着对于256个会话密钥中的一个,正确的ClientCredential也将包含8个零!
这是关于攻击的说明:
由于尝试无效登录后并未锁定计算机帐户,因此我们可以进行多次(平均256次)尝试,直到身份验证成功为止。而整个过程大约只需要10秒钟。
对于这种攻击,我们可以作为域中的任何计算机登录。这包括备份域控制器,甚至目标域控制器本身!
使用NetServerPasswordSet2调用,我们可以使用全零IV重置任何系统的密码!
防御Zerologon漏洞
·应尽快应用相关的Microsoft补丁。
·使用此脚本检查是否对所有域控制器进行了修复。确保仅授权用户可运行此脚本,并且禁止恶意行为者使用此脚本来标识未修复的域控制器以利用Zerologon漏洞。
·对于非Windows设备,可以建立Netlogon安全频道。
(Netlogon安全频道连接可以由 “域控制器:允许易受攻击的Netlogon安全频道连接”组策略设置控制,该策略仅允许授权设备使用该连接。)
·始终监视GPO更改:任何恶意帐户或组都可以添加到组策略中,从而导致这些恶意帐户可以获得Netlogon攻击特权。
除了上述修复之外,您还可以监视以下事件:
··跟踪Windows中EventID为4742紧接着EventID为4624的网络成功登录事件
·只要允许存在漏洞的Netlogon安全频道连接,就会生成EventID 5829。
攻击开放源代码工具通常与攻击配合使用,获取更多特权。
·本地内存(LSASS.exe)可能会泄露用户凭证。
检测: sysmon EventID = 10, TargetImage = * lsass.exe(GrantedAccess = 0x1010或GrantedAccess = 0x1410)
·Mimikatz可以与Netlogon一起使用,访问域用户的密码哈希值。
检测: sysmon EventID = 7&ImageLoaded = * WinSCard.dll | * cryptdll.dll | * hid.dll | * samlib.dll | * vaultcli.dll
使用ManageEngine Log360检测Zerologon攻击
ManageEngine Log360是一站式解决方案,可帮助您维护网络安全。Log360的实时关联引擎可以将离散的安全事件关联,检查它们是否为Zerologon攻击的指示灯,一旦确定该攻击可实时向您指定的用户发出告警。
此外,Log360可以通过执行缓解措施来自动补救此攻击,例如立刻终止可疑用户会话,关闭设备甚至执行自定义的脚本。
Log360可保护您的组织免受Zerologon攻击。
推荐阅读: