登陆 注册

【PC样本分析】利用doc文件漏洞的木马样本分析

Andy 2019-07-28 木马病毒样本分析安全文摘

前言

样本多次dump和调用,比较麻烦,考验耐心。希望大家一起参考学习,一起进步!如有不当之处,也希望大佬批评指正,晚辈一定虚心受教。由于考虑到时间问题还有个人能力的原因,如果又不清楚或错误的地方,也请大家见谅,不懂之处欢迎提出私信,我也尽量解答

分析

样本信息

样本名称: giấy mời họp.doc
样本大小: 597K
MD5: 6897B33954A4B228F8A7132E07FDE3B6
样本来源: https://www.virustotal.com/gui/file/37378258b682c92e11e45c4714a95ef843dfc48e064112e9969586ae88c386bf/detection

环境与工具

win xp,win7 32 ,OD, IDA, exeinfo

分析

简述CVE-2012-0158,找到溢出点

该漏洞为栈溢出漏洞,其恶意软件有很多也是利用该漏洞进行传播的。形成该漏洞的原因网传据说是”巨硬“特意留的后门,其漏洞形成的模块在MSCOMCTL.ocx中,我们IDA反汇编该模块,其漏洞的点在于dwBytes变量,正常的Cobj对象大小为8,但是因为有个”>“导致通过构造大于8的结构。


Shellcode分析

解密代码,解密大小为0x200,解密算法为( (byte [edi]+0xAB) xor (0x33) ) - 0xFC


之后跳转到解密后的代码

寻找所需模块地址


寻找指定API


映射已打开文件


可以看到文件映射为doc文件


找到文件中的指定代码


解密执行


Hook API


Hook之后的代码

 
可以看到后边的API调用都是通过调用被Hook的API调用的

 
并且调用API如果存在固定格式的话会跳过之前的5字节,这样od不能直接识别,也防止直接下断点,麻烦


之后的操作为
解密配置文件


申请空间,解密代码

 

 
解密第一段PE

 
解密第二段,该段文件为FakeDoc页面


拷贝内存到doc文件中


以挂起的形式创建进程


接下来写入PE文件
得到上下文环境


申请空间,地址为0X50000000


写入代码


设置上下文环境


恢复现场


调试注入代码

拼接字符串
C:\Documents and Settings\Administrator\Application Data\Microsoft\SystemCertificates\systems.exe
C:\Documents and Settings\Administrator\Application Data\Microsoft\SystemCertificates\goopdate.dll
C:\Documents and Settings\Administrator\Application Data\Microsoft\SystemCertificates\Systemsfb.ebd
C:\Documents and Settings\Administrator\Application Data\Microsoft\SystemCertificates\install.inf


解密代码


首先创建systems.exe文件


解密代码,大小为E7FA


改代码为压缩之后代码,进行解压缩,其算法应该为Zlib1.2.8版本


解压之后为一PE文件,并将其写入systems.exe中

 
同理创建goopdate.dll文件和Systemsfb.ebd文件


之后,创建vidcap.lnk快捷方式,与之前的systems.exe绑定


模拟按键进行启动


删除该lnk文件


将WINWORD.EXE重命名为~DF6DC0E07310E5D9BC.tmp,并设置属性为隐藏


之后显示正常的doc文档,欺骗用户

systems.exe和Goopdate.dll分析

  1. system.exe
    调用dll文件

  2. Goopdate.dll
    寻找.xdate节表

进行xor解密,并调用



解密代码执行,主要行为读取同目录下的systemsfb.ebd文件,解密执行


systemsfb.ebd

这里依旧解密


可以看到该代码为去掉MZ的头部PE文件,我们补好该文件
之后通过VirtualAlloc申请空间并进行映射,为了节省空间,我们直接分析该dump下来的PE文件

最后一个dump文件

经过一系列的解密dump文件,终于到了最后一个文件
首先,在初始化过程中,存在关键函数


首先查询注册表项

 
在设置Internet选项时,存取获取信息,所获取信息如下

 
该函数获取信息如下
获取系统版本,位数,CPU 频率,内存信息,计算机名,用户名,IP地址,磁盘信息


对信息进行处理


创建互斥体,检测虚拟机,创建注册表开机启动

 


得到域名及其端口号


创建两个线程,进行网络连接,完成对信息的传输
HTTP进行连接

 
tcp连接


IoC:
cu.Phimhainhat.org

结语

样本下载

大小 : 0.5 MB |  下载量 : 4  |  文件类型 : 图片文件  

原文由吾爱破解论坛


生成海报
请发表您的评论
请关注微信公众号
微信二维码
不容错过
Powered By SangYun.Net