【逆向】HWP文檔 分析調試技巧


前言

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文件中,我們可以使用:oletoolsStructuredStorage eXplorerStructured 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM