前言

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

【逆向】HWP文档 分析调试技巧的更多相关文章

  1. 恶意PDF文档分析记录

    0x1 PDF是什么 PDF(便携式文件格式,Portable Document Format)是由Adobe Systems在1993年用於文件交换所发展出的文件格式. 因为PDF的文件格式性质广泛 ...

  2. 项目管理理论与实践(6)——利用Excel制作项目文档的设计技巧

    这篇是使用的Excel 2007 进行文档设计,Excel的设计也是一门学问,这里主要介绍一些Excel的设计技巧,后面也会陆续更新该文章. 1. 固定某行某列 首先设计这样的任务管理文档: 现在我想 ...

  3. md文档使用小技巧

    简介 在日常写readme文档中,可能会遇到一些小问题,此处记录一下md文档编写过程中的一些小技巧. 插入图片 在md文档中插入图片,目前有三种方式,本地导入.网络导入.base64导入. 本地导入 ...

  4. Word文档加密小技巧

    文件菜单设置: 1.打开需要加密的Word文档. 2.选“文件”的“另存为”,出现“另存为”对话框,在“工具”中选“常规选项”,出现“保存”选项卡. 3.分别在“打开权限密码”和“修改权限密码”中输入 ...

  5. word文档排版技巧

    简介 市场部经常要出各种分析报告,一写就是洋洋洒洒几十页.文字功底深厚的小王写东西自然不在话下,然而每每困扰他的却是排版的问题,每次都要花大量的时间修改格式.制作目录和页眉页脚.最头疼的是上司看完报告 ...

  6. 12- APP接口测试以及接口文档的分析

    什么是接口? 为什么要做接口测试? 接口测试流程 需求评审 需求分析 接口用例设计 执行测试用例 bug的定位于追踪 接口文档分析 接口文档分析:开发 内容: 1.接口名称 2.接口地址 3.支持方式 ...

  7. PEAR:使用PHPDoc轻松建立你的PEAR文档

    对于一个开发人员,文档总是最感到头疼的事情之一.而且,很可能你对待文档会采取截然不同的2种态度: 当你使用别人的代码库的时候,最希望得到的是它的技术文档,尤其是当时间很紧,而你又不得不硬着头皮去读那些 ...

  8. 如何才能恢复Excel文档的打开密码

    对于一些密码的破解,最常用的方法就是“暴力破解”,也是获取密码的最后一种方法,Advanced Office Password Recovery的暴力破解能够破解复杂的Office文档密码.wps也有 ...

  9. Office Web Apps 2013对文档的精细定位

    在一般情况下,我们使用Office Web Apps查看文档都是从第一页开始查看,不过在SharePoint搜索中,我们看到这样的结果: 这是2013搜索的一个新特性,可以深入定位到文档内部,支持PP ...

  10. 使用notepad++远程编辑Linux文档

    上一篇中,我写了如何使用使用ftp服务器实现很方便的通信,这一篇我分享一个使用notepad++的一个NPPFTP插件远程编辑Linux中的文档的小技巧. 首先要确保你的Linux的ftp服务已经打开 ...

随机推荐

  1. ASPNETCORE托管/部署到WindowService的问题[服务显示正在启动]

    上述代码是asp.net core web api 3.1,使用Topshelf框架构建windows服务. 安装服务后,服务功能运行正常,但服务状态一直处于"正在启动",不能接收 ...

  2. Node.js 源码解读 EventLoop

    之前断断续续开发过一些 Node.js 的项目,但只仅限于使用它实现一些功能,没有过多对底层深入的研究.现在因为公司大前端组内的服务端渲染直出.BFF(Backend For Frontend) 等需 ...

  3. js常用代码整理2

    引用js <script type="text/javascript" src="js/jquery-1.11.2.min.js"></scr ...

  4. 向mysql插入数据是出现Incorrect string value错误

    在向Mysql中添加中文数据时,报错(incorrect string value ) 字符转换不正确 插入语句:mysql>  insert into user1 (name,password ...

  5. NSQ(7)-nsq存在的问题

    nsq存在的缺陷 部署的难度 ​ nsq提供了一种消费者端进行服务发现的模型,所以无需告诉消费者去哪寻找对于的主题(Topic)在哪个nsqd实例上. ​ 然而,它并没有提供一种方案去解决一个生产者应 ...

  6. POWER BI - 根据条件,改变数值的颜色Conditional formatting

    在visual块,右键Column选择Conditional formatting 举例,比如difference > 0 显示红色,否则<0显示绿色 如何根据 measure 写特定条件 ...

  7. jmeter取样器之KafkaProducerSampler(往kafka插入数据)

    项目背景 性能测试场景中有一个业务场景的数据抽取策略是直接使用kafka队列,该场景需要准备的测试数据是kafka队列里的数据,故需要实现插入数据到kafka队列,且需要实现控制每分钟插入多少条数据. ...

  8. Vue项目的打包方式(生成dist文件)

    一.相关配置情况一(使用的工具是 vue-cil) 如果是用 vue-cli 创建的项目,则项目目录中没有 config 文件夹,所以我们需要自建一个配置文件:在根目录 src 下创建文件 vue.c ...

  9. 火爆全球的“饺子皮”3D手办原来是这样做的!关键时刻少不了远程控制软件!

    2022年卡塔尔世界杯的吉祥物最近在全球火出圈了,并且喜提中国网友给予的爱称"饺子皮"."馄饨皮"(官方名字:拉伊卜,意为"技艺高超的球员" ...

  10. python中的platform模块

    platform模块给我们提供了很多方法去获取操作系统的信息: import platform print(platform.platform())# 获取操作系统名称和版本号:macOS-10.14 ...