freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

一个CVE-2017-11882漏洞新变异样本的调试与分析
2018-12-02 08:00:41

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

*本文作者:cgf99,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

前言

近日收获一个后缀名为doc的word文档,查看后其实是rtf格式文档。在测试环境打开后发现有网络连接和执行程序的动作,确定该样本是恶意文档。经过初步分析,发现该样本是CVE-2017-11882漏洞的利用新样本。CVE-2017-11882漏洞和CVE-2018-0802漏洞基于Office公式编辑器的处理逻辑错误 ,是最近office恶意攻击文档的常用手段。网络上对该漏洞的成因、利用等分析的已经十分到位,比如360天眼实验室的 利用了Office公式编辑器特殊处理逻辑的最新免杀技术分析(CVE-2017-11882),以及腾讯电脑管家的NDAY漏洞CVE-2017-11882与0Day漏洞CVE-2018-0802漏洞组合传播远控木马的样本分析 等技术报告。本次样本与之前各家分析的稍有不同,应是CVE-2017-11882漏洞的又一个变异版本。

一、基本动作

实验环境:windows 7 x64 sp1中文版,office 2010中文版。

漏洞样本打开后,显示的文档内容为乱码,如下图所示。

此外,在%temp%目录下生成并运行一个名为emre.exe的可执行文件。抓包发现emre.exe是从http://ghthf.cf/cert/ochicha.exe下载生成。如下图所示。

二、漏洞调试

1、样本形态

winhex打开后如下两幅图所示。文档后面直接跟要显示的内容。

紧随其后的就是object对象,如下图所示。

2、RTF初步分析

用rftobj分析后结果如下图所示。可以看到clsid为0002ce02-0000-0000-c000-000000000046也就是微软公式编辑器对象。

从图中我们可以看到,该对象名字为“eQuatiON native”,对正常对象名字“Equation Native”进行了大小写转换操作,可能也是追求免杀的一种效果。

3、漏洞调试

根据各方对漏洞的分析报告,我们直接调试漏洞所在的函数0041160F。

在经过11次的rep操作后,如下图,堆栈0x0043F775被覆盖。

而EQNEDT32.EXE进程0x0043F775处的值是C3,恰好是指令retn。

执行后跳转到shellcode位置。如下图所示:

4、shellcode调试分析

shellcode的位置在eQuatiON native对象中。

分为两个部分,其中开始的位置0x0826处,B9 C439E66A(见上图0018F354处的反汇编指令)开始到 0851处,紧随其后的就是四个字节0x0043F7F5(EQNEDT32.EXE进程中RETN指令)。第二部分的位置在0x089E处开始一直到结束。

第一部分的shellcode跳转到第二部分的汇编指令如下图所示:

经过分析,发现该段的shellcode进行了一系列的jmp跳转指令操作,因是为了shellcode的混淆和保护。比如下图所示:

跟踪后,发现其实主要的任务就是对 shellcode后段进行解密操作。

shellcode加密部分如下图所示:

解密后的内容如下图所示:

其主要功能就是调用URLDownloadToFile函数从http://ghthf.cf/cert/ochicha.exe下载文件保存为%temp%目录下 emre.exe,并调用ShellExecuteEx执行。

4、shellcode加解密算法

shellcode加密部分的解密算法如下所示。

EDI =0

for(解密字符串开始位置处,到结尾,每4个字节进行操作)

EDI=EDI * 0x2F5E137B

EDI+=0x11B7CF3D

明文四个字节=四个字节密文 xor EDI

5、下载exe情况

emre.exe的属性如下图所示:

运行竟然需要.net环境。

具体的功能就不分析了。

三、样本利用

可以说,样本到手,工具就有。

可以根据该样本进行改造。

1、不替换shellcode主体部分,只是修改下载的链接为自己的链接即可;

2、修改shellcode为自己shellcode,比如不用网络下载,直接把把exe附加在漏洞样本内,从shellcode完成释放和下载动作(或者释放到启动目录下等等)。

3、进行免杀操作。

四、结语

1、动手实践很重要。通过调试分析,进一步掌握该漏洞的具体细节;

2、shellcode有一定借鉴意义,比如利用一堆JMP指令混淆真实解密操作。

3、漏洞样本结构更畸形、简单。只有一个eQuatiON native对象,其他的啥都没有。

4、打开文档要谨慎。

5、及时更新补丁。

*本文作者:cgf99,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

# office # CVE-2017-11882
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者