當前位置:
首頁 > 新聞 > Windows遠程協助XXE漏洞發現之旅

Windows遠程協助XXE漏洞發現之旅

一、介紹

Windows遠程協助允許您信任的人接管您的電腦並解決世界各地的問題。它依靠遠程桌面協議與需要的人建立安全連接。——MSDN

二、背景

我在研究過程中偶然發現了這個功能,並且很好奇能否以任何方式利用此功能。所以讓我們從開始MSRA(微軟遠程協助)開始。

它給出兩個選項:

·邀請別人幫助你

·響應別人的邀請

如果選擇了第一個選項,則將得到後續的另一組2個選項:

·將邀請保存到.msrcincident文件

·通過電子郵件發送邀請,.mrcincident文件作為附件

我們選擇在本地保存文件並分析其內容,顯然我們選擇了第一個選項。

打開Invitation.msrcincident文件可以顯示具有大量參數和值的XML數據。

口令加密流程如下所示。

然而,當看到XML數據被提供給程序時,都必須考慮XML外部實體(XXE)漏洞,過去這些漏洞導致了信息泄露甚至RCE。

所以首先我很好奇用於處理邀請文件的解析器MSRA。ProcessMonitor顯示如下:

它使用MSXML3來解析XML數據,因此我立即開始尋找潛在的與MSXML3相關的現有漏洞。MSXML3擁有許多漏洞,但是沒有發布任何關於這些漏洞的細節。那麼來看看MSXML3解析器是否允許使用SYSTEM實體。

三、漏洞

第一個問題是如果沒有顯示所請求資源的輸出,如何確認存在XXE漏洞。基本的XXE payload看起來像這樣:

]>&xxe;

然而,這個XML(解析後)的結果應該是標籤中的內容,應該顯示文件passwd的內容。

MSRA不會顯示處理過的XML的輸出,因此很難驗證。但為了能將這種攻擊武器化,需要將受害者請求的數據傳到我的機器上。因此,需要使用由研究人員Alexey Osipov和Timur Yunusov發現的稱為帶外數據檢索的技術,該技術允許構建帶有來自其他實體的數據的URL。

看起來像這樣:

利用相同的技術,用以下XML修改了Invitation.msrcincident文件:

%remote;%root;%oob;]>

在伺服器上,使用以下XML創建一個文件xxe.xml:

">

使用我們的XML XXE payload,打開修改後的Invitation.msrcincident文件,結果如下:

結果是C:Windowswin.ini的內容作為GET請求的一部分發送到伺服器。如果URL解碼發送至伺服器的GET值,得到如下結果:

for 16-bit app support[fonts][extensions][mci extensions][files]

[Mail]MAPI=1CMCDLLNAME32=mapi32.dllCMC=1MAPIX=1MAPIXVER=1.0.0.1OLEMessaging=1

我使用MSXML3解析器確認了影響MSRA的XXE漏洞。

四、結論

這種XXE漏洞可以用於大規模網路釣魚攻擊,針對的人認為他們確實在幫助另一個有IT問題的人,完全不知道.msrcincident文件可能會導致敏感信息丟失。攻擊者可針對包含用戶名/密碼的特定日誌/配置文件。GDSSecurity還通過暴力窮盡某些目錄,實現了自動化XXE工具。該工具可以在這裡找到。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

密碼竊取軟體AGENT TESLA的傳播渠道分析
如何預防應用程序中的XSS漏洞

TAG:嘶吼RoarTalk |