溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么進(jìn)行CVE-2020-1472漏洞分析

發(fā)布時(shí)間:2021-12-28 17:11:23 來源:億速云 閱讀:123 作者:柒染 欄目:安全技術(shù)

怎么進(jìn)行CVE-2020-1472漏洞分析,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

Netlogon 特權(quán)提升漏洞(CVE-2020-1472)

簡要

NetLogon 遠(yuǎn)程協(xié)議是一種在 Windows 域控上使用的 RPC 接口,被用于各種與用戶和機(jī)器認(rèn)證相關(guān)的任務(wù)。最常用于讓用戶使用 NTLM 協(xié)議登錄服務(wù)器,也用于 NTP 響應(yīng)認(rèn)證以及更新計(jì)算機(jī)域密碼。

微軟MSRC于8月11日 發(fā)布了Netlogon 特權(quán)提升漏洞安全通告。此漏洞CVE編號CVE-2020-1472, CVSS 評分:10.0。由 Secura 公司的 Tom Tervoort 發(fā)現(xiàn)提交并命名為 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)

漏洞時(shí)間:

2020-09-11

漏洞原理簡述

當(dāng)攻擊者使用 Netlogon 遠(yuǎn)程協(xié)議 (MS-NRPC) 建立與域控制器連接的易受攻擊的 Netlogon 安全通道時(shí),存在特權(quán)提升漏洞。成功利用此漏洞的攻擊者可以在網(wǎng)絡(luò)中的設(shè)備上運(yùn)行經(jīng)特殊設(shè)計(jì)的應(yīng)用程序。

要利用此漏洞,未通過身份驗(yàn)證的攻擊者需要將 MS-NRPC 連接到域控制器,以獲取域管理員訪問權(quán)限。

漏洞原理:

Netlogon遠(yuǎn)程協(xié)議特別是可以更新域中的密碼。RPC接口通過TCP動態(tài)端口分配域控制器的端口映射服務(wù),或者通過SMB端口445。

Netlogon協(xié)議使用的是自定義的加密協(xié)議來讓客戶端(加入域的計(jì)算機(jī))和服務(wù)器(域控制器)向?qū)Ψ阶C明加密,此共享加密是客戶端計(jì)算機(jī)的HASH賬戶密碼。Netlogon會話由客戶端啟動,因此客戶端和服務(wù)器先交換隨機(jī)的8個字節(jié),客戶端和服務(wù)器都先將密鑰派生函數(shù)加密,然后客戶端使用此會話密鑰用于計(jì)算客戶端憑據(jù),服務(wù)器則重新計(jì)算相同的憑證,如果匹配,客戶端必須知道計(jì)算機(jī)密碼,因此客戶端必須知道會話密鑰。

在身份驗(yàn)證握手階段時(shí),雙方可以協(xié)商是否加密和加密認(rèn)證,如果加密被禁用,所有執(zhí)行重要操作必須仍然包含認(rèn)證值,也是用會話密鑰計(jì)算的。

怎么進(jìn)行CVE-2020-1472漏洞分析

身份驗(yàn)證階段

客戶端和服務(wù)器都是用的加密原句在函數(shù)中實(shí)現(xiàn)生成憑據(jù)為ComputeLogOneCredential,稱為協(xié)議規(guī)范,這個函數(shù)接受8字節(jié)的輸入并通過加密會話對其進(jìn)行轉(zhuǎn)換產(chǎn)生相等長度輸出的key,假設(shè)它不知道會話密鑰將無法計(jì)算正確的輸出及匹配的某個輸入。這個函數(shù)有兩個版本,基于2DES以及AES,取決于客戶端在身份驗(yàn)證期間設(shè)置的標(biāo)志,基本上使用的都是AES。AES分組密碼需要輸入16個字節(jié)并將其置換為大小相等的輸出,操作模式必須加密較大或較小的輸入,為了被選中,ComputeLogEncredential利用模糊的CFB8(8位密碼)模式只需轉(zhuǎn)換8個字節(jié),這個模式大約是普通模式的16倍。

AES-CFB8對明文的每個字節(jié)進(jìn)行加密,方法是預(yù)先加上前綴一個16字節(jié)的初始化向量,然后將AES應(yīng)用于IV+明文的前16個字節(jié),取AES輸出的第一個字節(jié),并使用下一個明文字節(jié)。

怎么進(jìn)行CVE-2020-1472漏洞分析

AES-CFB8操作模式的加密說明

為了能夠加密會話,必須指定初始化向量(IV)引導(dǎo)加密過程,這個IV值必須是唯一的,并為每個單獨(dú)的隨機(jī)生成用同一密鑰加密的密文。但是ComputeLogOnCreddential函數(shù)定義的IV是固定的,應(yīng)該由16零字節(jié)組成,而AES-CFB8要求IV是隨機(jī)的,對256個密鑰中的1個將AES-CFB8加密應(yīng)用全零字節(jié)明文將導(dǎo)致都是零密文。

怎么進(jìn)行CVE-2020-1472漏洞分析

漏洞利用:

1.欺騙客戶端憑據(jù)

在于NetrServerReqChallenge交換質(zhì)詢調(diào)用后,客戶端通過NetrServerAuthenticate3調(diào)用,并通過一個參數(shù)調(diào)用ClientCredential,再通過應(yīng)用ComputeLogonIncredential的客戶端質(zhì)詢上一個請求中發(fā)送。一共有256個密鑰,那么怎么知道哪個會話使用了其中的密鑰呢?因?yàn)闊o效登錄后計(jì)算機(jī)賬戶并沒有被鎖定,可以嘗試多次,直到獲得準(zhǔn)確的密鑰和身份驗(yàn)證成功,僅需要嘗試256次即可。

2.禁用加密和加密認(rèn)證

雖然繞過身份驗(yàn)證,但是我們并不知道會話密鑰的值是什么。由于Netlogon的傳輸加密而出現(xiàn)問題機(jī)制(“RPC加密和加密認(rèn)證”),它使用一個完全不同的函數(shù),ComputeLogEncredential函數(shù),但是對于我們來說,認(rèn)證和加密認(rèn)證是可選的,而且只需不在NetrServerAuthenticate3調(diào)用即可。默認(rèn)客戶機(jī)將服務(wù)器未設(shè)置此標(biāo)志時(shí)將拒絕連接,但是服務(wù)器不會拒絕請求不加密的客戶端。

3.欺騙請求

即使禁用了請求加密,每個請求依舊包含一個驗(yàn)證器值,該值通過應(yīng)用ComputeLogonIncredential(會話密鑰)函數(shù)的值ClientStoredCredential+時(shí)間戳,ClientStoredCredential是一個遞增的值,由客戶端提供,在握手時(shí)初始化與ClientCredential相同的值。此客戶端憑據(jù)僅由零組成,因此執(zhí)行的第一個調(diào)用的ClientStoredCredential為零認(rèn)證后,時(shí)間戳應(yīng)該包含當(dāng)前的時(shí)間和驗(yàn)證器,然而服務(wù)器卻沒有做什么限制,這樣第一個調(diào)用我們只需要提供一個全零的驗(yàn)證器和全零的時(shí)間戳。

4.更改AD和密碼

現(xiàn)在我們可以像任意客戶端發(fā)送Netlogon請求,但是自從引入了Active Directory許多賬戶數(shù)據(jù)庫被禁用,無法用來提取憑證,還有一個調(diào)用函數(shù)是NetrSreverPasswordGet允許獲取計(jì)算機(jī)密碼的NTML Hash,但是是用會話密鑰加密的,我們可以利用NetrServerPasswordSet2調(diào)用,用來設(shè)置新的客戶端計(jì)算機(jī)的密碼,不是hash,但是是用會話密鑰加密的,繼續(xù)用全零。

Netlogon協(xié)議中的明文密碼結(jié)構(gòu)由516個字節(jié)組成,最后四個字節(jié)表示密碼長度,結(jié)構(gòu)中所有字節(jié)不是密碼的一部分被可以填充任意值,如果我們在這里提供516個零,則將被解密到516個零,即零長度密碼,這意味著可以成為任何域中的計(jì)算機(jī)。如果更改計(jì)算機(jī)密碼,目標(biāo)系統(tǒng)本身仍將在本地存儲原始密碼,且不能再對域進(jìn)行身份驗(yàn)證,只能通過手動操作重新同步(拒絕服務(wù)漏洞)。

5.提權(quán)到管理員

我們可以更改計(jì)算機(jī)的密碼時(shí)域控制器本身的,即使是我們連接的同一個域控制器,其中AD中存儲的DC密碼與密碼不同存儲在本地注冊表中HKLM\SECURITY\Policy\

Secrets\$machine.ACC,但是可能導(dǎo)致DC不可預(yù)知的異常行為,但是依舊可以登錄。只需要運(yùn)行Impacket的secretsdump腳本就可以讓DC的密碼有效,這個腳本會通過域的從域中提取所有用戶HASH復(fù)制DRS協(xié)議,包括域管理員HASH(包括krbtgt,可以用來制作金票),然后用來登錄DC更新電腦密碼注冊表,就可以令攻擊者成為域管理員。

怎么進(jìn)行CVE-2020-1472漏洞分析

修復(fù)建議:

1.進(jìn)行 Windows 版本更新并且保持 Windows 自動更新開啟,也可以通過下載下面鏈接中的軟件包,手動進(jìn)行升級。

2.開啟的 DC 的強(qiáng)制模式。

看完上述內(nèi)容,你們掌握怎么進(jìn)行CVE-2020-1472漏洞分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI