什么是ZeroLogon?
Netlogon远程协议(也称为MS-NRPC)是远程进程调用(RPC)接口仅用于连接到域的设备。MS-NRPC包括身份验证和建立Netlogon安全通道的方法。这些更新是强制指定的Netlogon客户端行为,以便在成员计算机和Active Directory (AD)域控制器(DC)之间使用带Netlogon安全通道RPC。
Zerologon漏洞也称为CVE-2020-1472,它影响MS-NRPC使用的加密身份验证方案(AES-CFB8),该方案有多种用途,但最著名的原因是改变计算机账户密码的能力,这可能会导致Windows被攻击。这个漏洞影响很大,风险评分很高10.08月份微软已经满分了Patch Tuesday将在安全更新中进行修复。上周,美国国土安全部也发布了今年的第四紧急指令(Emergency Directive),要求所有政府机构在周一午夜前修复漏洞。
AES-CFB8工作原理是在明文前添加一个16字节的初始矢量(IV),然后将AES应用于IV和明文的前16个字节,AES输出第一个字节,加密明文的每个字节,然后将其与下一个纯文本字节不同。
为什么这很重要?使用身份验证协议的方法是强制登录尝试。对于256个密钥中的一个,全零纯文本应用AESCFB8加密将导致全零的密文,从而启用登录绕过,这就是名称zerologon的来源。
攻击者的天堂
大多数PoC它们都专注于改变计算机账户活动目录密码和建立资产立足点的能力。用它们攻击域控制器,就像它们通常在域控制器一样AD在小组中,其权限通常高于标准权限,可以启用权限较高的立足点,导致域管理员权限。
使用NetrServerPasswordSet2该方法可为客户创建新密码AES-CFB8用会话密钥加密。Netlogon纯文本密码由516个字节组成,最后四个表示密码长度。它将被解密为516个零或空密码。这样,密码只能更改AD中间更新。
大多数漏洞使用代码的工作原理是向netlogon通道发送多个空字节的身份验证请求,然后发送零密码文本和身份验证查询标志,如下列代码段所示:
攻击测试在实验室环境中进行
重要提示:在实时生产系统控制器,在实时生产系统中断域控制器复制中断域,您控制或可以回滚的实验室环境中执行。
现在有必要谈谈漏洞的工作原理,但同样有趣的是它在环境中的工作方式。我的测试实验室环境由各种配置组成Windows设备组成:
域控制器
工作站
如果您有兴趣建立自己的实验环境,您实际上只需要一个域控制器和一个攻击设备。请单击此处查看具体流程。此外,还有一个建立家庭实验室的指南。
使用包括impacket在内的各种python脚本进行攻击需要满足一些先决条件,步骤如下:
1.下拉impacket并安装git clone
2.cd impacket和&python3 -m pip install
安装Impacket
接下来,下载漏洞使用程序的副本,有多个PoC用于测试,包括所有权zerologon最新版本的模块mimikatz。我将单独演示PoC和mimikatz,首先介绍zer0dump::
1.git clone ;
2.cd zer0dump && sudo pip install -r requirements.txt。
安装要求
脚本选项
用这个工具来防御一个域控制器很简单:
python3 zer0dump.py 10.10.100.38,其中10.10.100.38域控制器IP地址。脚本将尝试几次登录。如果攻击成功,它将返回管理员哈希。哈希可以通过哈希攻击或被破解和使用!
漏洞利用
该漏洞利用程序在域中使用该漏洞NTDS.dit(保留该域所有用户的所有用户NTLM转储到/哈希值tmp/dumped.tmp.ntds,并使用秘密存储来转移当地管理员的密码,如上所示。此外,由于返回的错误代码为零,我们可以看到漏洞的成功使用。管理员的哈希值已设置为空字符串,我们可以将哈希值传递给 john the ripper(John the Ripper免费开源软件是一种快速破解密码的工具,用于尝试破解已知密码的破解密码软件,支持大多数加密算法,如DES、MD4、MD5等等。确认这一点:
可以使用,比如crackmapexec这些工具传递哈希攻击来验证网络上其他计算机的身份,以进一步利用这一点。
cme smb 10.10.100.1/24 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
Crackmap Exec被喷涂
因为我们是管理员,我们可以对此进行更多的武器化处理,并将其转储给所有人NTDS.dit以便以后攻击:
cme smb 10.10.100.29 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 --ntds
python脚本很酷,但是mimikatz呢? Mimikatz它可以加载到内存或以多种方式运行。为了方便介绍,我将在实验室里Windows你可以从计算机上运行它GitHub获取源代码。
施工完成后,可在终端窗口或资源管理器窗口启动exe来运行它:
mimikatz 2.2.0 x64
通过mimikatz执行zerologon攻击所需的命令如下:
lsadump::zerologon /server:DC2.purplehaze.defense /account:DC2$
这将引导mimikatz定位到DC2.purplehaze.defense,特别是设备账户DC2$。
主机容易受到攻击
如上图所示,主机确实容易受到攻击。现在使用此命令并附加/ exploit:
lsadump::zerologon /server:DC2.purplehaze.defense /account:DC2$ /exploit
利用成功
这么简单,太可怕了。Mimikatz和zer0dump不是唯一的版本,github现在有很多PoC!
Github PoC
现在,我们可以更改设备的密码了?
本文介绍了攻击的原理,下一章详细介绍攻击类型。
本文翻译自:https://blog.zsec.uk/zerologon-attacking-defending/如果转载,请注明原始地址: