時間:2018-03-24 來源:互聯網 瀏覽量:
此前,微軟發布的月度安全更新中修複了多個最新的Office漏洞(CVE-2017-11882,CVE-2018-0798 和CVE-2018-0802)。該漏洞為Office公式編輯器的最新漏洞,微軟對此的處理方式是將該模塊刪掉。
然而即使模塊在最新版本中被刪掉,仍然有大量攻擊者在利用CVE-2017-11882+CVE-2018-0802的漏洞文檔進行攻擊。
而就在3月18日,金睛安全研究團隊捕獲到一些奇怪的RTF樣本。這批樣本相比較CVE-2018-0802傳統利用方式而言,采用了一種新的利用方式,能夠繞過市麵上大多數殺軟,並且即使部分殺軟能查殺,也無法正確識別漏洞。
下圖為VT報警信息。
技術細節首先,經過分析,我們發現這批樣本有一個通用特征:都內嵌了一個CFBF(Compound File Binary Format)對象,將該文件提取後發現隻有一個“\\x01Ole10Native”流。
在文本編輯器中瀏覽該文件也未發現明文的URL,文件路徑或是命令等信息。
經過分析,我們發現這批樣本是公式編輯器係列漏洞的新利用方式。可以用於構造和CVE-2017-11882,CVE-2018-0802相同觸發機製,但靜態特征更少的惡意樣本。
首先可以觀察到,這個CFBF對象的RootEntry帶有一個CLSID {0002CE02-0000-0000-C000-000000000046}。
而這個CLSID對應的對象是Microsoft Equation 3.0,即該對象是一個公式3.0編輯器對象。
而在[MS-OLEDS]中可以查到“\\x01Ole10Native”流的結構。前四個字節表示數據長度,後麵的字節流均為對應的數據。但是可以發現,這段數據的含義並不顯然。也許是shellcode,但是shellcode的頭部並不在偏移量為0的位置。
我們來回顧一下之前在CVE-2017-11882中,公式數據被加載和讀取的過程。
通過Unicode字符串”Equation Native”可以定位到數據流加載的過程。如下圖所示。
注意到這裏可能是對虛函數表的調用,28行的s_EquationNative是流名,則v10這個唯一的out變量應該對應於IStream,那麼a2應該對應於IStorage。
進行標注後得到以下結果。
我們來梳理一下圖中這一段的邏輯。
在第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個字節。
我們繼續回到樣本數據處進行查看。
前麵的5個字節是公式頭數據。按理說應該是如下格式。
但是實際上,上圖中的第1、3、4三個字段是被公式編輯器的處理函數忽略掉了的。
我們可以注意到,該樣本中的前五個字節中,在第1、3、4個字段有意地使用了錯誤的數值,使得靜態特征更難被提取。
接下來的“0a”,“01″數據分別對應初始SIZE記錄和LINE記錄,然後“08 b3 c1″對應的是FONT表記錄,即CVE-2017-11882/CVE-2018-0802漏洞。
隨後的部分就是shellcode了。這裏可以確定是CVE-2018-0802漏洞。
後麵的分析與各廠商的CVE-2017-11882漏洞分析報告大同小異,就不再做具體說明了,歡迎進行討論交流。
相關文件
C7A5B13DE3CF8AF188CDCBEC747577545D8BCE5AE049DCD01D6976B8B1008258 208AF8BB8EB32ED4F17D8DB18EE58FCD7B08D47FFDFF41FF7A0CE7E221132951 4BDF5C546BE23AA11B19C7B57570F948253526E306459E774B032E6839C344B5