Kimsuky组织某样本分析
字数 1410 2025-08-24 16:48:16
Kimsuky组织样本分析:CVE-2017-8291漏洞利用详解
0x00 前言
本文详细分析Kimsuky组织利用CVE-2017-8291漏洞的攻击样本。该漏洞存在于韩国Hancom公司开发的文字处理软件HWP中,利用了GhostScript开源组件(gbb.exe)的类型混淆漏洞。
HWP是韩国广泛使用的文字处理软件,类似于中国的WPS。样本利用了旧版本HWP中存在的GhostScript漏洞(CVE-2017-8291),最新版已移除该组件。
0x01 CVE-2017-8291漏洞分析
漏洞背景
这是一个GhostScript中的类型混淆漏洞,位于.eqproc操作实现中。攻击者可以通过精心构造的PostScript代码绕过SAFER限制,实现任意代码执行。
POC分析
关键PostScript代码结构
/buffersearchvars [0 0 0 0 0] def
/sdevice [0] def
buffers
(buffers) print
pop
enlarge array aload
(after aload) print
漏洞触发流程
-
zaload函数:实现aload操作,位于
/psi/zarray.c- 当
asize > ostop - op时调用ref_stack_push重新分配栈空间 - 向新分配的栈空间写入内容
- 当
-
zeqproc函数:实现.eqproc操作,位于
/psi/zmisc3.c- 漏洞点:未检查栈中元素数量和操作数类型
- 任意两个操作数都可以进行比较
- 与loop结合可导致栈指针上溢
漏洞修复
补丁增加了两项检查:
if (ref_stack_count(&o_stack) < 2)
return_error(gs_error_stackunderflow);
if (!r_is_array(op - 1) || !r_is_array(op)) {
return_error(gs_error_typecheck);
}
漏洞利用技术
- 通过buffersearchvars数组检索buffers[N]字符串后16位是否被修改
- 判断osp是否到达可控范围
- 修改currentdevice对象属性为string并保存至sdevice数组
- 覆盖LockSafetyParams属性,绕过SAFER限制
- 通过.putdeviceparams设置/OutputFile执行命令
0x02 样本分析
样本信息
- 名称:(첨첨부2)20-0206_법인_운영상황_평가표_서식(법인작성용).hwp
- MD5:8AD471517E7457EB6EEA5E3039A3334F
文档分析
- 文档中包含EPS脚本
- 解密ar变量后可见CVE-2017-8291利用部分
- 关键PostScript代码结构:
label13 label10 aload
/label82 true def
/label83 0 def
{
.eqproc
/label84 true def
/label69 0 def
label6
{
/label84 true def
/label3 label7 label69 get def
/label85 label3 length 16#20 sub def
label3 label85 get
{
label84
{ /label84 false def }
{ /label84 true def exit }
ifelse
}
repeat
label84
{ /label82 false def exit }
if
/label69 label69 1 add def
}
repeat
label84
{ /label82 false def exit }
if
/label83 label83 1 add def
}
loop
恶意行为分析
-
进程注入:
- 调用VirtualProtect修改内存属性
- 使用GetComputerName获取计算机名并添加计算值
- 创建临时文件
- 调用ZwQuerySystemInformation遍历系统句柄
- 找到HimTrayIcon.exe进程并注入Shellcode
-
Shellcode功能:
- 解密PE文件并写入内存
- 获取系统文件夹路径
- 创建进程并注入代码
- 获取系统版本信息
- 通过WriteProcessMemory写入PE内容
-
userinit.exe分析:
- 创建互斥对象防止重复运行
- 获取SeDebugPrivilege权限
- 检测虚拟机环境
- 创建%APPDATA%\Microsoft\Network目录
- 收集主机信息并加密
- 向C2服务器发送数据并下载下一阶段载荷
0x03 防御建议
- 更新HWP软件到最新版本
- 禁用或移除GhostScript组件
- 监控异常进程创建行为
- 限制文档宏和脚本执行
- 部署终端防护软件检测此类攻击