前言

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. 分布式锁 -- redis

    原理 redis设置一个key和value,如果存在则获取锁失败,不存在则获取锁成功处理业务,业务处理完成后删除这条数据,可以带个失效时间. 代码 public void handleInvoice( ...

  2. Vue 数组响应

    响应渲染 在Vue中,被渲染的数据都是响应式的,即Vue实例中进行改变页面中也会跟着改变: <body> <div id="app"> <p>{ ...

  3. linux 动态库、静态库

    库:可执行的二进制代码,不可以独立执行(没有main函数入口) 库是否兼容:取决于编译器.汇编器.链接器 linux链接静态库(.a):将库中用到的函数的代码指令,写入到可执行文件中.运行时无依赖 l ...

  4. how to make the windows console works with utf-8 encoded project

    the console of the windows os is not working in the utf-8 encoding, by default. When you force your ...

  5. 日常开发记录-js的Date对象中的toLocaleDateString()

    就是把Date对象的日期部分转换为字符串,并返回结果. 代码示例: console.log(new Date()) // 2023-01-10T05:42:41.926Z console.log(ne ...

  6. 自定义select组件

    (声明:当前记录篇参考于该人员 https://www.jb51.net/article/166679.htm ) 一.创建组件 1.新建文件夹:select 2.新建Component: selec ...

  7. 关于服务器选择的chatgpt 的回答

    I want to deploy linux as a server with low latency transactions. Which version of the operating sys ...

  8. Impala 学习笔记

    VALUES Statement | 6.3.x | Cloudera Documentation SELECT now() as date_DES UNION ALL SELECT trunc(no ...

  9. J V M(二)双亲委派机制及native

    package java.lang;public class String {// 双亲委派机制: 安全// 应用程序加载器-扩展程序加载器-根加载器// 自底向上检查类是否被加载,自顶向下加载类// ...

  10. CentOS7 minimal 安装 VMware Tools(自带脚本安装)

    1.安装相关组件 yum -y install perl gcc make kernel-headers kernel-devel net-tools 2.新建挂载目录 mkdir -p /mnt/c ...