前言
HWP(Hangul Word Processor)文件是韓國主流文字處理軟件Hangul Office(한글)專用的文檔格式,Hangul 是一款由韓軟公司(Hansoft)開發,在韓國人人皆知,人人必備的一款Office軟件。
惡意的 HWP 文檔通常會使用以下兩類利用方式:
1、宏代碼
2、漏洞利用(CVE-2013-0808等)
Hangul Office軟件與微軟的Microsoft Office軟件類似,也使用腳本語言(PostScript)處理文檔中的宏內容。而PostScript腳本則以(ps 或 eps)后綴的文件保存在HWP文檔中。
由於 HWP 文件本質上是OLE復合文件,所以EPS會作為復合文件流存儲在HWP文件中,我們可以使用:oletools、StructuredStorage eXplorer、Structured Storage Viewer等工具查看和提取。
HWP文件中的大部分流都是經過zlibraw deflate壓縮存儲的,EPS流也不例外。如果遇到經過壓縮的EPS流,可以使用如下Python代碼解壓縮:
# coding=utf-8 import os import sys import zlib if __name__ == '__main__': if 1 >= len(sys.argv): print("Err:輸入待解壓文件路徑后重試") exit(1) data = '' with open(sys.argv[1], 'rb') as f: data = f.read() try: data = zlib.decompress(data, wbits=-15) except Exception as e: print(e.args) sys.exit(1) with open(r"decode.bin", 'wb') as f: f.write(data)
分析思路
思路一:靜態分析
1、使用StructuredStorage eXplorer等工具查看和提取包含在HWP文件中的ps或eps文件。
2、如果提取的文件未經過混淆可以直接從postscript腳本中分析惡意操作。
解壓后的ps腳本:
思路二:動態分析
安裝HWP文件閱讀器(hancom2014),然后通過火絨劍等監控工具對“Hwp.exe”及其子進程進行監控,動態查看執行的惡意操作(該方法同樣適用於利用漏洞觸發的HWP樣本)。
打開 HWP 文檔后執行內嵌的ps腳本,創建“gswin32c.exe”子進程執行惡意操作:
在explorer.exe進程中遠程注入dll文件執行:
參考
http://blog.nsfocus.net/apt37-part1-0325/
https://www.freebuf.com/column/188848.html
示例樣本:
3f92afe96b4cfd41f512166c691197b5
67096282bb6a1df5175e035623309b7e