背景
2018年9月20日,360威脅情報中心在日常樣本分析與跟蹤過程中發現了一例針對韓國文字處理軟件Hancom Office設計的漏洞攻擊樣本。通過詳細分析發現,該樣本疑似與APT組織“Group 123”相關,且該HWP樣本利用了一個從未公開披露的Hancom Office漏洞來執行惡意代碼。360威脅情報中心通過對該漏洞進行詳細分析后發現,這是Hancom Office在使用開源Ghostscript(下稱GS)引擎時未正確使用GS提供的沙盒保護功能而導致的任意文件寫漏洞。
360威脅情報中心通過對已知的HWP相關漏洞檢索后發現,該漏洞疑似從未被公開(沒有任何信息來源對該漏洞進行過描述或者分析,也沒有漏洞相關的CVE等信息)。幸運的是,由于版權相關問題,最新版的Hancom Office已經將GS開源組件移除,使問題在最新的軟件中得到緩解,但老版本的用戶依然受影響,而且此類用戶的數量還很大。
而截止我們發布本篇報告時,VirusTotal上針對該攻擊樣本的查殺效果如下,也僅僅只有5家殺軟能檢查出其具有惡意行為:

Hancom Office
HWP的全稱為Hangul Word Processor,意為Hangul文字處理軟件,其是Hancom公司旗下的產品,該公司為韓國的政府所支持的軟件公司。Hancom Office辦公套件在韓國是非常流行的辦公文檔處理軟件,有超過75%以上的市場占有率。
Hancom公司目前主要的是兩個產品系列,一個是Hancom Office,另一個是ThinkFree Office。Hancom Office套件里主要包含HanCell(類似微軟的Excel),HanShow (類似微軟的PowerPoint),HanWord(也就是HWP,類似微軟的Office Word)等。
而在它的官網提供兩種語言(英文和韓文),當你以英文的界面語言去訪問該網站時,它的下載中心里所提供的只有ThinkFree Office的系列產品,當以韓文界面語言去訪問時,它的下載中心里所提供的是Hancom Office系列產品,可以看出Hancom公司針對國內還是主推Hancom Office的產品,針對其他非韓文國家則推送ThinkFree Office的系列產品:

HWP未公開漏洞分析
360威脅情報中心針對該未公開HWP漏洞的整個分析過程如下。
利用效果
使用安裝了Hancom Office Hwp 2014(9.0.0.1086)的環境打開捕獲到的惡意HWP文檔,以下是Hancom Office版本信息:

HWP樣本打開后不會彈出任何提示框,也不會有任何卡頓,便會靜默在當前用戶的啟動目錄釋放惡意腳本UpgradeVer45.bat,并且在%AppData%目錄下釋放Dhh01.oju01和Dhh02.oju01文件,如下圖:

通過進程行為分析可以發現,這其實是Hancom Office自帶的gbb.exe程序執行了惡意文件的釋放操作:

而gbb.exe其實是Hancom Office用于處理HWP文件中內嵌的EPS腳本的一個外殼程序,其核心是調用了開源GhostScript(下稱GS)組件gsdll32.dll來處理EPS腳本:

gbb.exe解析EPS文件所執行的命令行如下:
“C:\Program Files\Hnc\HOffice9\Bin\ImgFilters\gs\gs8.71\bin\gbb.exe” “C:\Users\admin\AppData\Local\Temp\Hnc\BinData\EMB000009b853ef.eps” “C:\Users\admin\AppData\Local\Temp\gsbF509.tmp”
所以該惡意HWP樣本極有可能是通過內嵌的EPS腳本觸發漏洞來實現釋放惡意文件的。為了驗證該想法,360威脅情報中心的研究人員提取了HWP文件中的EPS文件后,使用HWP自帶的EPS腳本解析程序gbb.exe來模擬Hancom Office解析該腳本(向gbb.exe傳入了Hancom Office解析EPS腳本文件時相同的參數列表),也可達到相同的效果(Windows啟動項被寫入惡意腳本):

漏洞分析過程
既然確定了該惡意HWP樣本是利用了解析EPS腳本的相關漏洞來釋放惡意文件的,那么我們通過深入分析HWP文件攜帶的EPS腳本即可找到漏洞成因。
EPS/PS、PostScript以及GhostScript項目
在分析該漏洞前,我們需要了解一些關于EPS/PS和PostScript以及GhostScript項目的相關知識。
EPS(Encapsulated Post Script)
EPS是Encapsulated Post Script的縮寫,是一個專用的打印機描述語言,可以描述矢量信息和位圖信息,支持跨平臺。是目前桌面印刷系統普遍使用的通用交換格式當中的一種綜合格式。EPS/PS文件格式又被稱為帶有預視圖象的PS文件格式,它是由一個PostScript語言的文本文件和一個(可選)低分辨率的由PICT或TIFF格式描述的代表像組成。其中,PostScript是一種用來描述列印圖像和文字的編程語言,該編程語言提供了豐富的API,包括文件讀寫等功能:

GhostScript項目
|