疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

背景

2018年9月20日,360威脅情報中心在日常樣本分析與跟蹤過程中發現了一例針對韓國文字處理軟件Hancom Office設計的漏洞攻擊樣本。通過詳細分析發現,該樣本疑似與APT組織“Group 123”相關,且該HWP樣本利用了一個從未公開披露的Hancom Office漏洞來執行惡意代碼。360威脅情報中心通過對該漏洞進行詳細分析後發現,這是Hancom Office在使用開源Ghostscript(下稱GS)引擎時未正確使用GS提供的沙盒保護功能而導致的任意文件寫漏洞。

360威脅情報中心通過對已知的HWP相關漏洞檢索後發現,該漏洞疑似從未被公開(沒有任何信息來源對該漏洞進行過描述或者分析,也沒有漏洞相關的CVE等信息)。幸運的是,由於版權相關問題,最新版的HancomOffice已經將GS開源組件移除,使問題在最新的軟件中得到緩解,但老版本的用戶依然受影響,而且此類用戶的數量還很大。

而截止我們發佈本篇報告時,VirusTotal上針對該攻擊樣本的查殺效果如下,也僅僅只有5家殺軟能檢查出其具有惡意行為:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

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的系列產品:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

HWP未公開漏洞分析

360威脅情報中心針對該未公開HWP漏洞的整個分析過程如下。

利用效果

使用安裝了HancomOffice Hwp 2014(9.0.0.1086)的環境打開捕獲到的惡意HWP文檔,以下是Hancom Office版本信息:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

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

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

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

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

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

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

gbb.exe解析EPS文件所執行的命令行如下:

所以該惡意HWP樣本極有可能是通過內嵌的EPS腳本觸發漏洞來實現釋放惡意文件的。為了驗證該想法,360威脅情報中心的研究人員提取了HWP文件中的EPS文件後,使用HWP自帶的EPS腳本解析程序gbb.exe來模擬Hancom Office解析該腳本(向gbb.exe傳入了Hancom Office解析EPS腳本文件時相同的參數列表),也可達到相同的效果(Windows啟動項被寫入惡意腳本):

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

漏洞分析過程

既然確定了該惡意HWP樣本是利用瞭解析EPS腳本的相關漏洞來釋放惡意文件的,那麼我們通過深入分析HWP文件攜帶的EPS腳本即可找到漏洞成因。

EPS/PS、PostScript以及GhostScript項目

在分析該漏洞前,我們需要了解一些關於EPS/PS和PostScript以及GhostScript項目的相關知識。

1. EPS(Encapsulated Post Script)

EPS是Encapsulated Post Script的縮寫,是一個專用的打印機描述語言,可以描述矢量信息和位圖信息,支持跨平臺。是目前桌面印刷系統普遍使用的通用交換格式當中的一種綜合格式。EPS/PS文件格式又被稱為帶有預視圖象的PS文件格式,它是由一個PostScript語言的文本文件和一個(可選)低分辨率的由PICT或TIFF格式描述的代表像組成。其中,PostScript是一種用來描述列印圖像和文字的編程語言,該編程語言提供了豐富的API,包括文件讀寫等功能:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

2. GhostScript項目

GhostScript項目是一套Post Script語言的解釋器軟件。可對Post Script語言進行繪圖,支持Post Script與PDF互相轉換。換言之,該項目可以解析渲染EPS圖像文件。而Hangul正是利用此開源項目支持EPS文件渲染。

提取HWP中的EPS腳本

要分析HWP中的EPS腳本,需要將EPS腳本提取出來。而HWP文件本質上是OLE複合文件,EPS則作為複合文件流存儲在HWP文件中,可以用現有工具oletools、StructuredStorage eXplorer、Structured Storage Viewer等工具查看和提取,以下是StructuredStorage eXplorer工具查看的效果圖:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

而HWP文件中的大部分流都是經過zlibraw deflate壓縮存儲的,EPS流也不例外。可以通過Python解壓縮惡意HWP文件中的EPS流,代碼如下:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

以下是解壓縮後的惡意EPS文件內容:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

惡意EPS腳本分析

解壓後的惡意PostScript腳本功能分析如下:

第1行為註釋代碼,表示使用Adobe-3.0、EPSF-3.0標準。 第3-8行定義了一個字符串拼接函數catme,類似C語言中的strcat函數。 第10行獲取%AppData%環境變量並存儲於變量envstr中。 第11行利用catme函數拼接出文件路徑並存儲於變量path1中。 第12、13行含義同11行。 第14行採用寫入的方式打開%AppData%\Microsoft\Windows\Start Menu\Programs\StartUp\UpgradeVer45.bat文件並將文件句柄存儲於變量file1中。 第15行將字符串“copy /b … WinUpdate148399843.pif”寫入path1中。 第16行關閉file1。 第17行以寫入方式打開%AppData%\Dhh01.oju01文件。 第18行寫入PE文件頭MZ標識到%AppData%\Dhh01.oju01文件。 第19-36行將後面的16進制字符串寫入文件%AppData%\Dhh02.oju01。

未正確使用GhostScript提供的沙盒保護導致任意文件寫漏洞

可以看到,整個EPS腳本中並沒有任何已知漏洞相關的信息,腳本功能是直接將惡意文件寫入到了Windows啟動項,這顯然脫離了一個圖像解析腳本的正常功能範圍。

我們在翻閱了GhostScript開源組件的說明後發現,GhostScript其實提供了一個名為“-dSAFER”的參數來將EPS腳本的解析過程放到安全沙箱中執行,以防止諸如任意文件寫這類高危操作發生。

而Hancom Office在解析處理HWP文件中包含的EPS文件時,會調用自身安裝目錄下的gbb.exe。gbb.exe內部最終會調用同目錄的GhostScript開源組件gsdll32.dll來解析和顯示EPS圖像:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

可以很明顯的看到,Hancom Office在調用GhostScript開源組件的過程中沒有使用-dSAFER參數,使得EPS解析過程並沒有在沙箱中執行,也就是說PostScript腳本的所有操作均在真實環境中。這自然就導致了Hancom Office允許EPS腳本執行任意文件寫。

至此,我們可以很清楚的認定,該漏洞成因為Hancom Office未正確使用GhostScript(開源EPS解析組件)提供的沙盒保護而導致了任意文件寫漏洞。

360威脅情報中心安全研究員通過手動調用gswin32.exe(GhostScript提供的一個解析EPS腳本的外殼程序)來解析惡意EPS文件,並加上了-dSAFER參數,此時gswin32.exe提示“invalidfileaccess”,即未能將文件寫入到磁盤(寫入啟動項失敗,這也反面證明了漏洞的成因)。如下圖:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

受影響軟件版本

理論上2017年5月之前開發的支持EPS腳本解析的Hancom Office軟件都受該漏洞影響。

漏洞時間線

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

截止目前,Hangul Office產品線已經有了很多版本分支,而至少在Hangul 2010就引入了GhostScript開源組件用於解析EPS文件。根據維基百科資料顯示:在2017年5月由於Hangul Office產品線使用了GhostScript組件而沒有開源,這一行為違反了GhostScript的開源協議GUN GPL,被要求開源其產品的源代碼。

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

鑑於此版權問題,Hangul在Hangul NEO(2016)的後續版本中去除了GhostScript開源組件。並且在我們測試的Hangul 2014的最新更新中,已經剔除了老版本中的GhostScript開源組件,這變相的消除了該漏洞隱患。

惡意樣本Payload分析

漏洞利用文檔

漏洞利用文檔是名為“7주 신뢰와 배려의 커뮤니케이션.hwp(7周信任和關懷的交流)”

文檔內容如下:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

成功利用後會在當前用戶的啟動目錄釋放UpgradeVer45.bat腳本,並且在%appdata%目錄下釋放Dhh01.oju01和Dhh02.oju01文件,當用戶重新登錄時,UpgradeVer45.bat會將%appdata%目錄下釋放的兩個文件合併為WinUpdate148399843.pif文件。

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

WinUpdate148399843.pif

WinUpdate148399843.pif文件則是一個PE文件,該文件使用Themida加殼:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

使用OD腳本脫殼後進行分析,樣本執行後首先檢測進程路徑是否包含”WinUpdate”(樣本本身包含的名字),若不是則退出:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

進而檢測啟動項目錄下是否有以”UpgradeVer”開頭的文件

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

樣本還會進行反調試檢測:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

隨後,樣本會執行%system32%下的sort.exe程序:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

之後利用WriteProcessMemory,RtlCreateUserThread向sort.exe注入一段ShellCode執行:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

ShellCode

注入的ShellCode首先會通過IsDebuggerPresent檢測是否處於調試狀態:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

並通過與“E2F9FC8F”異或解密出另一個PE文件:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

最後內存執行解密後的PE文件:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

ROKRAT

最終解密後的PE文件是ROKRAT家族的遠控木馬,該木馬會獲取計算機名稱、用戶名、並通過smbios判斷計算機類型:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

隨後會進行沙箱執行環境檢測:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

如果檢測到存在”C:\ProgramFiles\VMware\VMware Tools\vmtoolsd.exe”路徑則會往MBR中寫入”FAAAA…Sad…”字符串:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

寫入之後通過shutdown命令重啟電腦:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

重啟後開機顯示畫面:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

如果樣本未檢測到沙箱運行環境,則會執行後續的主要功能,包括獲取屏幕截圖:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

並通過網盤上傳數據,網盤的APIKey會內置在樣本數據裡。下圖為提取到的字符串的信息,樣本會通過API調用4個國外主流的網盤包括:pcloud、box、dropbox、yandex

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

API KEY通過解密獲取,解密函數如下:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

嘗試向網盤上傳數據:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

溯源與關聯

360威脅情報中心通過內部威脅情報平臺以及公開情報進行關聯,發現此次攻擊事件疑似為APT組織“Group 123”所為,關聯依據如下:

Group 123團伙曾在多次活動使用ROKRAT:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

且在2017年3月的攻擊活動使用的樣本也會判斷當處於虛擬機環境下時,會向MBR寫入字符串“Are you Happy”,而在本次活動中,同樣的向MBR寫入了字符串“FAAAA…Sad…”:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

並且本次捕獲的樣本代碼片段和之前的基本一致,我們在這裡選取Group 123曾使用的ROKRAT(MD5: bedc4b9f39dcc0907f8645db1acce59e)進行對比,如下圖可見,代碼結構基本相同:

疑似Group 123 APT團伙利用HWP軟件未公開漏洞的定向攻擊分析

總結

360威脅情報中心本次分析的HWP漏洞的根本原因是Hangul Office在使用GS引擎解析PostScript腳本時沒有合理使用沙箱功能,即忽略了-dSAFER的沙箱選項。在這種情況下,攻擊者只需要通過PostScript腳本將惡意軟件寫入到啟動項或者其它系統劫持路徑中,當用戶重新啟動操作系統或者觸發劫持時就達到執行惡意代碼的目的。雖然相關的漏洞在最新版本的Hancom Office軟件中不再存在,但依然有大量的老版本用戶暴露在這個免殺效果非常好的漏洞之下,成為攻擊執行針對性的入侵的有效工具,360威脅情報中心在此通過本文向公眾提醒這類攻擊的威脅以採取必要的防護措施。

IOC

說明 MD5 HWP文檔 3f92afe96b4cfd41f512166c691197b5 UpgradeVer45.bat 726ef3c8df210b1536dbd54a5a1c74df Dhh01.oju01 ac6ad5d9b99757c3a878f2d275ace198 Dhh02.oju02 d3f076133f5f72b9d1a55f649048b42d WinUpdate148399843.pif 6ec89edfffdb221a1edbc9852a9a567a ROKRAT遠控 7a751874ea5f9c95e8f0550a0b93902d

參考

[1].https://blog.talosintelligence.com/2018/01/korea-in-crosshairs.html

[2].https://ti.360.net/blog/articles/analysis-of-cve-2018-4878/

[3].https://zenhax.com/viewtopic.php?f=4&t=1051

[4].https://en.wikipedia.org/wiki/HancomOffice_(word_processor)

[5].https://en.wikipedia.org/wiki/Hancom

[6].https://hancom.com


分享到:


相關文章: