hjm666 发表于 2019-10-22 17:08

CVE-2017-0199漏洞利用样本分析

本帖最后由 hjm666 于 2019-10-22 17:21 编辑

CVE-2017-0199漏洞利用样本分析


https://static.52pojie.cn/static/image/hrline/4.gif
      一路成长路上总要留下点什么。


样本信息
https://static.52pojie.cn/static/image/hrline/4.gif
md5 :0087AA25E20070186AC171BE6C528DA6
文件大小:31752 字节(31kb)
文件类型:PDF


      样本初始文件是由PDF文件伪装,在其PDF数据流段中隐藏了,一个word文件,且在其PDF中隐藏了一段JS代码,当PDF被打开后,JS代码会被执行随后,会调用计算机默认打开word文件的软件打开该word文件,随后如果计算机默认关联打开word文件的软件是该漏洞版本内的office,会默认执行下载word中的恶意链接。

   用PDFstreamDumper 查看该PDF的各个段数据,这是内嵌数据流段的Word文件



隐藏的JS代码,该代码使用exportDataObject函数导出该word文件,执行后让计算机打开该wrod文件



   简述一下 CVE-2017-0199 漏洞原理 :漏洞利用office OLE对象链接技术,将恶意链接包裹至文档内,文档被打开后该恶意链接能被执行。


将word文件转存下来后,解压下来在word\_rels文件夹的document.xml.rels文件中找到了该word携带的恶意链接地址。



攻击载荷

https://static.52pojie.cn/static/image/hrline/4.gif


文件md5 :AAFD0EBFE1AFBCAE1834430FEEBD5A31
文件类型:BinExecute/Microsoft.EXE[:X86]
时间戳:2013-5-19 23:53:57
是否加壳:无壳
编译语言:nsis打包程序


样本描述;
         该样本为NSIS的打包程序,运行该样本后,样本会陆续调用其资源文件中 (其中System.dl为无害),随后调用LoadLibraryExA函数加载System.dll后System.dll 会继续调用collages.dll地址并调用LoadLibraryA函数加载collages.dll, collages.dll会对Corticoid.cab压缩文件进行解密操作将样本的核心shellcode解密出来,随后collages.dll会进程注入技术,创建一个子傀儡进程,将解密出的shellcode数据,注入进子进程中并执行shellcode,以达到伪装目的执行恶意代码。
发现其是nsis 打包后的软件后,用7-zip进行解压,可看到其相关资源文件。该cab文件是一个损坏文件,cab压缩文件大小及其文件类型及其可疑是shellcode


资源文件




加载资源文件,一开始分析了这两个dll,没有发现什么恶意行为代码,把注意力放在了cab文件中,在打包程序中转了好久,(忽略了collages.dll 中大量的指针函数利用导致浪费了大量时间)





进入collages.dll 后,该dll会进行大量的进程遍历,多次循环用来延迟杀毒软件分析时间

读取cab文件

获取解密函数对资源段中的cab文件进行解密,解密出shellcode

解密出来的shellcode

创建子进程,准备进行注入shellcode


Process Hollowing 进程注入后任务栏中会出现一个同名子进程,看起来是正常的,这种技术可以对运行中的进程进行动态修改,并且整个过程既不用挂起进程    步骤简述:创建一个挂起的进程,卸载它原来的模块,写入恶意数据,进行恢复线程详解见看雪:https://bbs.pediy.com/thread-224706.htm

进行注入前准备工作



从解密出的cab压缩数据中的shellcode截取出注入新线程

注入完成后,该dll 分别利用了SetThreadContext 设置子进程的入口,ResumeThread创建一个挂起的线程,至此该shellcode以及执行


    子进程挂起后想要进行相关调试的话,需要在刚创建子进程时对子进程进行附加,此时OD要设置在新模块载入是断下,即可断下,父进程也能正常进行调试,然后根据SetThreadContext设置的入口偏移地址断点。 个人没有在ResumeThread之后没有让子进程停在入口处,以及不能进行正常调试。       最后捡起了,在还没有进行注入前解密出来时dump下来的 shellcode 进行调试以及分析 (至于为什么这个时候dump下来,当时dump下来以为是400多个函数,20几个API以为IAT,dump过不知道多少次,浪费了很多时间···)

shellcode分析
https://static.52pojie.cn/static/image/hrline/4.gif
功能描述   
      运行该shellcode 后,该shellcode会通过读取特定的一些注册表键值,盗取用户个人的浏览器等敏感数据,以及盗取用户FTP等敏感信息,还在特定目录中遍历相关文件,获取用户计算机中所安装的相关软件,利用注册表键值以及各敏感文件获取到用户的数据后,会对数据进行md5加密,并将加密后的数据向目标服务器发送,与此同时还会在用户本地创建隐藏目录,并将自身数据拷贝随机命名,同时设置为隐藏文件,潜伏在用户目录中。
简单流程

    查找文件,获取相关注册键值内容















获取了与FTP相关的还有:
file:C:\Users\test\AppData\Roaming\FileZilla\recentservers.xml
file: C:\Users\test\AppData\Roaming\Far Manager\Profile\PluginsData\42E4AEB1-A230-44F4-B33C-F195BB654931.db
file: C:\ProgramFiles(x86)\FTPGetter\Profile\servers.xml
file:C:\Users\test\AppData\Roaming\FTPGetter\servers.xml
file:C:\Users\test\AppData\Roaming\Estsoft\ALFTP\ESTdb2.dat
key: HKEY_CURRENT_USER\Software\Far\Plugins\FTP\Hosts
key:HKEY_CURRENT_USER\Software\Far2\Plugins\FTP\Hosts
key: HKEY_CURRENT_USER\Software\Ghisler\TotalCommander
key: HKEY_CURRENT_USER\Software\LinasFTP\SiteManager

获取的浏览器敏感文件有:
file: C:\Users\test\AppData\Roaming\Mozilla\Firefox\Profiles\i072kp8z.default-1494515848972\secmod.db
file:C:\Users\test\AppData\Local\Google\Chrome\User Data\Default\Login Data
file:C:\Users\test\AppData\Roaming\Mozilla\Firefox\Profiles\i072kp8z.default-1494515848972\cert8.db
file: C:\Users\test\AppData\Roaming\Mozilla\Firefox\Profiles\i072kp8z.default-1494515848972\key3.db
file:C:\Users\test\AppData\Roaming\Mozilla\Firefox\Profiles\i072kp8z.default-1494515848972\signons.sqlite
file:C:\Users\test\AppData\Roaming\Mozilla\Firefox\profiles.ini


同时也获取本地文件路径创建隐藏文件夹


收集相关文件后开始处理数据向目标服务器发送数据
测试目标服务器

构建请求头

数据进行发送

将自身数据替换

替换后的隐藏文件程序





   如有错误,还望指正,谢谢!


wlq127 发表于 2019-10-22 17:50

看不懂。。但是觉的很历害。。。。

o651560441 发表于 2019-10-22 18:46

这些楼主的分享经验,一般我只能找找xss的不像楼主能分析这么多

chenjingyes 发表于 2019-10-22 22:58

分析的很详细谢谢楼主分享:lol

ddlam 发表于 2019-10-23 00:53

謝謝分享!

至尊丶夏末之刃 发表于 2019-10-23 09:02

之前一直在等的就是这个。。。

chmod755 发表于 2019-10-23 10:52

楼主方便把pdf的那个样本传上来吗? 我们也想学习学习

a5582323 发表于 2019-10-23 16:47

分析的很详细谢谢楼主分享

xiaoping02451 发表于 2019-10-23 19:32

卧槽,大佬啊。

雨夜故园 发表于 2019-11-6 14:00

页: [1] 2
查看完整版本: CVE-2017-0199漏洞利用样本分析