内容简介:近日收获一个后缀名为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中文版。
漏洞样本打开后,显示的文档内容为乱码,如下图所示。
此外,在%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对象中。
分为两个部分,其中开始的位置0×0826处,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 原创奖励计划,未经许可禁止转载。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 第二十篇:持久性XSS变异
- SQL注入漏洞的自动化测试:输入变异方法(半机翻有删减)
- python数据分析于实现,单样本体检验、独立样本体检验、相关分析、列联表分析!
- 鬼影样本分析
- 恶意样本分析手册——文件封装篇
- 利用ngrok传播样本挖矿
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!