一个CVE-2017-11882漏洞新变异样本的调试与分析

栏目: 编程工具 · 发布时间: 5年前

内容简介:近日收获一个后缀名为doc的word文档,查看后其实是rtf格式文档。在测试环境打开后发现有网络连接和执行程序的动作,确定该样本是恶意文档。经过初步分析,发现该样本是CVE-2017-11882漏洞的利用新样本。CVE-2017-11882漏洞和CVE-2018-0802漏洞基于Office公式编辑器的处理逻辑错误 ,是最近office恶意攻击文档的常用手段。网络上对该漏洞的成因、利用等分析的已经十分到位,比如360天眼实验室的实验环境:windows 7 x64 sp1中文版,office 2010中文

*本文作者: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中文版。

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

二、漏洞调试

1、样本形态

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

2、RTF初步分析

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

3、漏洞调试

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

4、shellcode调试分析

shellcode的位置在eQuatiON native对象中。

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

shellcode加密部分如下图所示:

一个CVE-2017-11882漏洞新变异样本的调试与分析

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

一个CVE-2017-11882漏洞新变异样本的调试与分析

其主要功能就是调用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的属性如下图所示:

一个CVE-2017-11882漏洞新变异样本的调试与分析

运行竟然需要.net环境。

具体的功能就不分析了。

三、样本利用

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

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

1、不替换shellcode主体部分,只是修改下载的链接为自己的链接即可;
2、修改shellcode为自己shellcode,比如不用网络下载,直接把把exe附加在漏洞样本内,从shellcode完成释放和下载动作(或者释放到启动目录下等等)。
3、进行免杀操作。

四、结语

1、动手实践很重要。通过调试分析,进一步掌握该漏洞的具体细节;
2、shellcode有一定借鉴意义,比如利用一堆JMP指令混淆真实解密操作。
3、漏洞样本结构更畸形、简单。只有一个eQuatiON native对象,其他的啥都没有。
4、打开文档要谨慎。
5、及时更新补丁。

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Sprint

Sprint

Jake Knapp、John Zeratsky、Braden Kowitz / Simon & Schuster / 2016-3-8 / GBP 14.60

媒体推荐 “Every business leader I know worries about the same thing: Are we moving fast enough? The genius of Jake Knapp’s Sprint is its step-by-step breakdown of what it takes to solve big problems an......一起来看看 《Sprint》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具