係統粉 > IT資訊 > 微軟資訊

又出新玩法?微軟公式編輯器係列漏洞新利用方式

發布時間:2018-03-24    瀏覽數:
前言

又出新玩法?微軟公式編輯器係列漏洞新利用方式(1)

此前,微軟發布的月度安全更新中修複了多個最新的Office漏洞(CVE-2017-11882,CVE-2018-0798 和CVE-2018-0802)。該漏洞為Office公式編輯器的最新漏洞,微軟對此的處理方式是將該模塊刪掉。

然而即使模塊在最新版本中被刪掉,仍然有大量攻擊者在利用CVE-2017-11882+CVE-2018-0802的漏洞文檔進行攻擊。

而就在3月18日,金睛安全研究團隊捕獲到一些奇怪的RTF樣本。這批樣本相比較CVE-2018-0802傳統利用方式而言,采用了一種新的利用方式,能夠繞過市麵上大多數殺軟,並且即使部分殺軟能查殺,也無法正確識別漏洞。

下圖為VT報警信息。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(2)

技術細節

首先,經過分析,我們發現這批樣本有一個通用特征:都內嵌了一個CFBF(Compound File Binary Format)對象,將該文件提取後發現隻有一個“\\x01Ole10Native”流。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(3)

在文本編輯器中瀏覽該文件也未發現明文的URL,文件路徑或是命令等信息。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(4)

經過分析,我們發現這批樣本是公式編輯器係列漏洞的新利用方式。可以用於構造和CVE-2017-11882,CVE-2018-0802相同觸發機製,但靜態特征更少的惡意樣本。

首先可以觀察到,這個CFBF對象的RootEntry帶有一個CLSID {0002CE02-0000-0000-C000-000000000046}。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(5)

而這個CLSID對應的對象是Microsoft Equation 3.0,即該對象是一個公式3.0編輯器對象。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(6)

而在[MS-OLEDS]中可以查到“\\x01Ole10Native”流的結構。前四個字節表示數據長度,後麵的字節流均為對應的數據。但是可以發現,這段數據的含義並不顯然。也許是shellcode,但是shellcode的頭部並不在偏移量為0的位置。

我們來回顧一下之前在CVE-2017-11882中,公式數據被加載和讀取的過程。

通過Unicode字符串”Equation Native”可以定位到數據流加載的過程。如下圖所示。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(7)

注意到這裏可能是對虛函數表的調用,28行的s_EquationNative是流名,則v10這個唯一的out變量應該對應於IStream,那麼a2應該對應於IStorage。

進行標注後得到以下結果。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(8)

我們來梳理一下圖中這一段的邏輯。

在第26~29行,公式編輯器首先嚐試從CFBF對象中讀取名為”Equation Native”的流。如果失敗(v11不為0),則嚐試讀取名為“\\x01Ole10Native”的流。

在第35行,公式編輯器根據流的類型,從流中讀取不同大小的數據到一個變量中。如果流的類型是“Equation Native”,則讀取0x1C個字節;如果流的類型是“\\x01Ole10Native”,則讀取4個字節。根據之前對於CVE-2017-11882等漏洞的分析,可以得知這裏是在處理公式對象的OLE頭。

在第38行,判斷了數據的頭部是否正確。如果流的類型是“\\x01Ole10Native”,則不作任何檢查;如果流的類型是“Equation Native”,則判斷OLE頭的前兩個字節是不是0x001C(小端序),及隨後的四個字節是不是0×00020000(小端序)。

在第40~43行,根據流的類型為接下來的公式數據分配內存空間。如果流的類型是“\\x01Ole10Native”,則流的前4個字節([v9+0])就是數據大小;如果流的類型是“Equation Native”,則流的第8個字節處的DWORD就是數據大小,而圖中的v14([esp+0x3C])正好是v13([esp+0x34])偏移量為8的位置。

在第50~53行,根據流的類型來讀入公式數據。對兩種流的處理實際是相同的。而在第66行的函數調用中,程序對讀入的公式數據開始進行處理。

也就是說,兩種不同的流,對應的數據,區別僅僅是數據頭:“EquationNative“流的數據頭是0x1C個字節,而”\\x01Ole10Native”流的數據頭僅僅是4個字節。

我們繼續回到樣本數據處進行查看。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(9)

前麵的5個字節是公式頭數據。按理說應該是如下格式。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(10)

但是實際上,上圖中的第1、3、4三個字段是被公式編輯器的處理函數忽略掉了的。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(11)

我們可以注意到,該樣本中的前五個字節中,在第1、3、4個字段有意地使用了錯誤的數值,使得靜態特征更難被提取。

接下來的“0a”,“01″數據分別對應初始SIZE記錄和LINE記錄,然後“08 b3 c1″對應的是FONT表記錄,即CVE-2017-11882/CVE-2018-0802漏洞。

隨後的部分就是shellcode了。這裏可以確定是CVE-2018-0802漏洞。

又出新玩法?微軟公式編輯器係列漏洞新利用方式(12)

後麵的分析與各廠商的CVE-2017-11882漏洞分析報告大同小異,就不再做具體說明了,歡迎進行討論交流。

相關文件

C7A5B13DE3CF8AF188CDCBEC747577545D8BCE5AE049DCD01D6976B8B1008258 208AF8BB8EB32ED4F17D8DB18EE58FCD7B08D47FFDFF41FF7A0CE7E221132951 4BDF5C546BE23AA11B19C7B57570F948253526E306459E774B032E6839C344B5
上一篇:Win10新版17128推送 水印移除 穩定版來了 下一篇:微軟離破產永遠隻有18個月,你打盹對手機會就來了。劉禪為何失敗

相關資訊

最新熱門應用

電腦問答