【逆向】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

 

posted @ 2021-08-16 19:09  SunsetR  阅读(521)  评论(0编辑  收藏  举报