溫馨提示×

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

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

如何通過BDC反序列化在Microsoft SharePoint上執(zhí)行任務(wù)

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

本篇文章為大家展示了如何通過BDC反序列化在Microsoft SharePoint上執(zhí)行任務(wù),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

漏洞細(xì)節(jié)

這個(gè)漏洞存在于微軟SharePoint中的業(yè)務(wù)數(shù)據(jù)(BDC)連接服務(wù)之中,由于自定義的BDC模型中可以使用任意的方法參數(shù)類型,從而導(dǎo)致Microsoft SharePoint 2016中的業(yè)務(wù)數(shù)據(jù)連接(BDC)服務(wù)容易受到XmlSerializer流的任意反序列化的攻擊。早

SharePoint允許使用業(yè)務(wù)數(shù)據(jù)連接模型文件格式(MS-BDCMFFS)數(shù)據(jù)格式來指定自定義的BDC模型,這種規(guī)范中的部分內(nèi)容為方法和參數(shù)定義。下面給出的是微軟提供的樣本

如何通過BDC反序列化在Microsoft SharePoint上執(zhí)行任務(wù)

上述代碼定義了一個(gè)名叫GetCustomer的方法,它負(fù)責(zé)封裝一個(gè)名叫sp_GetCustomer的程序,這兩者的輸入?yún)?shù)(Direction="In")和返回參數(shù)(Direction="Return")都使用了各自對(duì)應(yīng)類型的描述來定義。

在上述樣本中,輸入?yún)?shù)的原始類型為System.Int32,這就沒什么大問題。但如果定義的BDC模型參數(shù)類型為Microsoft.BusinessData.Runtime.DynamicType,就會(huì)出現(xiàn)問題了。這種方案的好處在于允許開發(fā)人員靈活地通過該參數(shù)傳遞不同類型的值,但壞處就是為反序列化的調(diào)用方提供了任意的XmlSerializer流。

漏洞利用

我們的測(cè)試設(shè)備為Microsoft SharePoint Server 2016,并且安裝了KB4464594,操作系統(tǒng)版本為64位的Windows Server 2016 update 14393.3025。

漏洞利用步驟及過程如下:

1、管理員首先需要自定義一個(gè)BDC模型,其中包括一個(gè)參數(shù)類型為Microsoft.BusinessData.Runtime.DynamicType的方法。針對(duì)自定義的BDC模型,程序會(huì)使用數(shù)據(jù)庫模型樣本來作為模板對(duì)其進(jìn)行大規(guī)模簡(jiǎn)化:

如何通過BDC反序列化在Microsoft SharePoint上執(zhí)行任務(wù)

2、接下來,管理員需要通過SharePoint管理中心|應(yīng)用管理|管理服務(wù)應(yīng)用程序|業(yè)務(wù)數(shù)據(jù)連接服務(wù)來上傳BDC模型。當(dāng)然了,這個(gè)操作也可以通過PowerShell來完成:

如何通過BDC反序列化在Microsoft SharePoint上執(zhí)行任務(wù)

3、然后,攻擊者就可以調(diào)用這個(gè)方法了,并通過函數(shù)參數(shù)來傳遞攻擊Payload:

如何通過BDC反序列化在Microsoft SharePoint上執(zhí)行任務(wù)

在SharePoint服務(wù)器上,你將會(huì)發(fā)現(xiàn)生成了兩個(gè)cmd.exe實(shí)例以及一個(gè)win32calc.exe實(shí)例,它們都會(huì)以SharePoint應(yīng)用程序池的身份運(yùn)行。

如果你想要查看代碼路徑的話,你可以把調(diào)試器綁定到SharePoint應(yīng)用程序的w3wp.exe上,并在system.web.dll上設(shè)置斷點(diǎn)。

我們可以通過System.Web.dll!System.Web.UI.ObjectStateFormatter.Deserialize來查看調(diào)用堆棧:

如何通過BDC反序列化在Microsoft SharePoint上執(zhí)行任務(wù)

需要注意的是,即便是你能夠成功利用該漏洞并實(shí)施攻擊,你也無法拿到服務(wù)器端的管理員權(quán)限,不過攻擊者可以利用該漏洞在SharePoint應(yīng)用程序池以及SharePoint服務(wù)器賬號(hào)的上下文環(huán)境中執(zhí)行他們的代碼。根據(jù)微軟方面的描述,他們已經(jīng)在9月份推送的補(bǔ)丁中修復(fù)了此漏洞。

上述內(nèi)容就是如何通過BDC反序列化在Microsoft SharePoint上執(zhí)行任務(wù),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

AI