CVE-2012-0158样本分析

样本分析记录

样本概述

类型 信息
样本名 个人简历.doc
md5 18C6A011C63390195EE12CCD43C3C829
分析工具 x32db wireshark

样本行为总结

样本doc漏洞:CVE-2012-0158

样本行为: 通过DOC溢出执行shellcode,访问phone.ftp.sh/c.png下载c.png文件保存到本地并执行,而c.png为木马功能主体,由于URL已经失效,因此无法确认c.png具体功能行为。

IOC:phone.ftp.sh/c.png

DOC样本行为分析

1.通过X32db动态加载DOC样本,通过设置“改变命令行”的参数设置,配置好调试环境
CVE-2012-0158样本分析_第1张图片

2.在Kernel32.dll的WinExec函数处设置断点
CVE-2012-0158样本分析_第2张图片

3.按F9一直运行到断点处,x32db停在WinExec函数入口处
CVE-2012-0158样本分析_第3张图片

4.查看堆栈地址,发现返回地址为0x194d90,该地址属于当前栈地址,因此可以确认之前已经发生了栈溢出,并且栈里面的信息已经被破坏了。
CVE-2012-0158样本分析_第4张图片

5.常见的office CVE栈溢出原理图如下所示,因此当前x32db栈中存放的就是shellcode,但是需要找到shellcode的起始位置。

CVE-2012-0158样本分析_第5张图片
6.通过回溯栈信息,该样本溢出后,返回了3个地址,通过返回地址也可以找到shellcode的某个执行阶段,但是需要不断的下硬件断点来调试也能找到shellcode的起始位置,个人考虑在溢出执行前的栈内下硬件断点,并根据栈里面的内容进行判定溢出是否发生。
CVE-2012-0158样本分析_第6张图片
7.调试中发现0x27583c30 jmp esp 栈中函数返回值被覆盖,跳转到栈上执行恶意代码,即shellcode,溢出点为“rep movsd”。
CVE-2012-0158样本分析_第7张图片
CVE-2012-0158样本分析_第8张图片
8.对shellcode代码进行单步调试,解密生成IOC URL(http://phone.ftp.sh/c.png) ,通过urlmon.URLDownloadtoFileA访问并下载文件。
CVE-2012-0158样本分析_第9张图片
在这里插入图片描述
9.如果下载成功后,会调用WinExec函数执行“cmd /c a.exe”执行EXE。
CVE-2012-0158样本分析_第10张图片
10、退出进程

CVE-2012-0158样本分析_第11张图片

总结

这是一个比较老的样本,有下载的URL失效了,因此没法查看木马功能行为,主要锻炼一下对office 溢出的调试技能。

你可能感兴趣的:(逆向分析类)