首页
社区
课程
招聘
[原创]Office栈溢出漏洞详细分析(CVE-2012-0158)
发表于: 2019-4-16 16:24 7106

[原创]Office栈溢出漏洞详细分析(CVE-2012-0158)

2019-4-16 16:24
7106

CVE-2012-0158于2012年被发现,虽然存在时间长,但其利用方法稳定成熟,影响office版本多,且经分析可知其内存地址几乎不变,可以稳定的找到对应的触发漏洞的地址,所以仍然是漏洞利用者喜爱的攻击之一。

CVE-2012-0158于2012 作为office的入门漏洞, 借这个漏洞来学习一下对这类office内嵌ActiveX控件漏洞的基本分析过程。

软件名称:Microsoft Office  
软件版本:Office2003SP3_20120218    
漏洞模块:MSCOMCTL.OCX  

操作系统:windows7 32位  
漏洞编号:CVE-2012-0158  
漏洞类型:缓冲区溢出  

CVE-2012-0158漏洞发生在MSCOMCTL.OCX模块,在一段内存拷贝时,由于检查条件错误造成基于栈的缓冲区溢出。

POC程序触发漏洞发生内存访问错误,返回值覆盖为41414141


 

①OD附加winword文档,并打开poc文件

②触发漏洞,程序崩溃,分析栈区

③单步运行程序可定位漏洞触发点

最后可知漏洞触发函数是0x275c87cd

④分析漏洞代码所在模块


①在ida找到MSCOMCTL.OCX模块中的0x275c87cd地址进行分析

②od中查看分析①中分析的几个数值

结合IDA和OD中的分析猜测两个8282是在进行长度检查,8282的长度足够造成缓冲区溢出覆盖返回地址以及给利用者构造shellcode的空间

③经上分析,结合资料,分析漏洞成因

根据分析可以推测,正常情况从控件数据读取出来dwBytes值不会大于8,因为如果大于8的话必然导致栈拷贝异常,所以图示cmp > 8才是漏洞成因,应改成< 8

①010分析poc文件

很容易发现两个8282和溢出点41414141,鉴于函数有ret 8,所以溢出点往后移动16位才是shellcode执行位置

②查找jmp esp跳板指令

使用ImmunityDebugger+mona查找模块内可用的jmp esp指令地址,填充到溢出点

③构建shellcode代码

这里使用之前漏洞课程使用的shellcode代码


最后,我们以CVE-2012-0158漏洞为起点,对最近几年的office漏洞做一个总结:


1.CVE-2012-0158这个漏洞属于OLE(对象嵌入与链接)里面的“嵌入”,与之相同的有CVE-2014-4114/CVE-2014-6352,CVE-2017-11882等;与之对应的有CVE-2017-0199,CVE-2017-8759等,这两个属于“链接”。


2.CVE-2012-0158这个漏洞属于ActiveX控件漏洞,漏洞原因为栈溢出;ActiveX控件方面的其他漏洞类型还有如CVE-2012-1856(UAF)等。


3.近几年出现一些利用其它组件在office内触发的漏洞,如CVE-2013-3906(TIFF图像解析漏洞),又如CVE-2015-2545/CVE-2017-0261/CVE-2017-0262(EPS文件解析漏洞),再如CVE-2017-8759(.NET注入漏洞)。


4.flash文件也可以作为ActiveX控件嵌入office文档,近几年著名的flash 0day攻击如CVE-2011-0609,CVE-2012-0754,CVE-2013-0634,CVE-2015-5119/CVE-2015-5122,CVE-2016-4117,还有CVE-2017-11292,都曾以嵌入在office文档中的形式出现在网络攻击行动中。


5.除常规漏洞外,office最近还出现了一些bypass各种防御措施的逻辑漏洞,如著名的沙虫漏洞CVE-2014-4114/CVE-2014-6352,低调的CVE-2015-0097,还有今年很火的CVE-2017-0199。


6.大多数office漏洞都可以以rtf格式为载体,所以在针对rtf类型时需要尤其注意


7.2017年共公布了6个office的或者和office相关联的0day,分别是:CVE-2017-0199,CVE-2017-0261,CVE-2017-0262,CVE-2017-8759,CVE-2017-11826和CVE-2017-11292(嵌入在office文档中)。此外,作为1day的CVE-2017-11882最近用的也比较频繁。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
最新回复 (3)
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
为啥不把poc程序传上来
2019-4-17 02:00
0
雪    币: 3051
活跃值: (1392)
能力值: ( LV13,RANK:480 )
在线值:
发帖
回帖
粉丝
3
之前写的,找了一下没找到,看下思路吧
2019-4-17 09:08
0
雪    币: 26205
活跃值: (63302)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
4
感谢分享~
2019-4-17 10:53
0
游客
登录 | 注册 方可回帖
返回
//