基于CVE-2012-0158漏洞的恶意样本分析记录

分析环境

系统:windows xp pro sp3

软件:word 2003

工具:X32dbg、OD、IDA、exeinfo

获取样本

//download.csdn.net/download/wojiukanxia/12187778

样本分析

使用在线病毒扫描平台发现样本已经被识别出利用了2012-0158漏洞的恶意软件

根据2012-0158的漏洞信息对溢出函数下断,查看溢出返回地址

发现返回点为跳板指令 jmp esp,由于mscomctl.ocx并没有DEP保护,可以在栈中执行数据。

跟踪shellcode,分析shellcode的功能

根据传入的字符串HASH配合kernel32.dll获取对应API的函数地址

暴力枚举文件句柄,获取刚刚打开的文件句柄

读取文件内容到文件中,解密读取后的内容,发现为恶意的PE文件

读取正常文件内容,并且构造temp路径用于保存恶意PE文件

释放恶意PE文件并执行

temp路径创建正常文件并打开文件

恶意shellcode行为总结

1.shellcode采用了自修改加密,自己实现了LoadLibrary配合API字符串HASH在kernel32.dll的导出表中获取需要的函数地址。

2.暴力枚举文件句柄获取打开的恶意样本,并从文件中解密PE文件并释放到TEMP路径执行。

3.从文件中获取正常的文件,释放到TEMP配合cmd命令打开文件,并结束当前恶意进程,较为隐蔽。

获取释放的恶意PE文件并分析

使用火绒剑进行恶意行为分析

ExeInfo查壳无壳

直接使用IDA打开软件进行分析

直接是放PE文件到系统目录下

尝试打开服务,如果成功则暂停服务,进行服务配置

如果服务不存在则创建服务,使用svhost的方式启动dll服务

尝试启动服务,如果不成功,则手动调用dll中的serviceMain函数

总结该hckcmd.exe的主要行为如下

释放恶意的dll,修改注册表用于svhost.exe启动dll作为服务运行

配置完成尝试直接启动服务,不成功则拷贝恶意软件到自启动目录

手动加载dll,并调用serviceMain函数,完成恶意行为

获取恶意程序释放的datac1en.dll的样本,IDA分析恶意样本

主程序中主要是删除了恶意软件,注册了服务处理函数,最后调用了一个恶意的call,进入call分析

首先从文件中解密数据用于后续对比,获取hostName和MAC地址作为唯一标识

经过一系列的数据构造,将构造后的数据传递给这个关键call,进入函数内部分析

大致命令格式分析

由于恶意URL 

show.shumetheme.org

已经不能访问,后续的细节没有再详细分析。

总结该dll的大致恶意行为如下:

搜集本机信息,发送给远程网站

从网站获取数据,即控制码,做出相应的动作

总的来说,该dll类似一个后门,可以通过远程获取shell,执行相应的功能。

恶意样本分析总结

该样本首先利用CVE-2012-0158漏洞执行恶意shellcode,释放PE文件hckcmd.exe并执行

hckcmd.exe释放datac1en.dll,并且将datac1en.dll注册为服务,由svhost启动

datac1en.dll作为一个远程木马,从远程服务端文件中获取控制码到本地执行相应操作

发布了6 篇原创文章 · 获赞 2 · 访问量 469

猜你喜欢

转载自blog.csdn.net/wojiukanxia/article/details/104472252