首页
论坛
课程
招聘
雪    币: 950
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝

[原创]利用漏洞(CVE-2012-0158)执行的样本分析

2020-2-21 13:48 1424

[原创]利用漏洞(CVE-2012-0158)执行的样本分析

2020-2-21 13:48
1424

样本信息

样本名:doc_sample

大小: 162401 bytes

修改时间: 2012年9月4日, 15:39:18

MD5: 52E3DDB2349A26BB2F6AE66880A6130C

SHA1: A86DC1842355E6999DE100B85B85A7C1589E4BBC

CRC32: 7D21F812

CVE-2012-0158漏洞利用部分分析

该漏洞为典型的栈溢出漏洞,由于MSCOMCTL.OCX模块在进行数据拷贝时,判断条件错误,导致大量数据拷贝过程中造成栈破坏,覆盖返回地址,从而造成漏洞利用。


该样本在构造时的相关数据如下:

拷贝的字节大小:0x8181字节;

返回地址:0x27583c30,该地址位于MSCOMCTL.OCX模块中,汇编代码为jmp esp;

后面部分为ShellCode部分。

ShellCode部分分析

主要功能:解密释放PE文件,并运行该文件。

首先解密ShellCode,解密算法为异或0x9C

动态获取API地址:API函数名称及字符串采用Hash值,首先获取Kernel32.dll模块基址,遍历到处表,获取函数地址

获取样本文件句柄,通过不断试探方式获取样本句柄,初始句柄值为4,每次循环加4,通过GetFileSize函数获取文件大小,直到文件大小为0x2000时,才找到样本文件句柄:

释放PE可执行文件:从文件中获取PE文件加密数据,并进行解密操作,将解密后PE数据写入到文件”C:\Users\用户名\Appdata\Local\Temp\hkcmd.exe”,并将该文件设置为隐藏属性

解密前数据在文件中偏移0x21E0处,大小为0x2000:

解密代码:

解密后数据为PE格式:


创建隐藏属性文件”C:\Users\用户名\Appdata\Local\Temp\hkcmd.exe”,将PE数据写入到文件,并允许该文件。

hkcmd.exe病毒程序分析

主要功能:服务控制程序,释放服务文件datac1en.dll,创建系统自启动服务项

详细分析略。

总结

本次分析主要分析漏洞利用部分,CVE-2012-0158漏洞可以构造任意大小数据,所以病毒的利用空间大。

HWS计划·2020安全精英夏令营来了!我们在华为松山湖欧洲小镇等你

最新回复 (5)
雪    币: 40
活跃值: 活跃值 (37)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
killpy 活跃值 2 2020-2-21 17:48
2
0
已阅
雪    币: 950
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
梦听惊雷 活跃值 2020-2-21 17:59
3
0
雪    币: 2112
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_xghoecki 活跃值 2020-2-23 12:55
4
1
感谢分享
雪    币: 4774
活跃值: 活跃值 (2520)
能力值: (RANK:65 )
在线值:
发帖
回帖
粉丝
Editor 活跃值 2020-2-23 15:58
5
0
感谢分享!恭喜转为正式会员!
雪    币: 559
活跃值: 活跃值 (38)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
养乐多A 活跃值 2020-2-24 17:37
6
0
感谢分享
游客
登录 | 注册 方可回帖
返回