如何分析与利用WORD溢出漏洞(科普)

 众所周知,溢出漏洞从应用形式上可分为远程服务溢出漏洞和客户端(本地)溢出漏洞两类。远程服务溢出漏洞大家很熟悉了,红色代码、冲击波、振荡波等蠕虫都利用了此类漏洞,漏洞的调试和利用有相应的一套方法,前面的文章也有过实例介绍;至于客户端溢出漏洞,这种说法是我暂时从网络上借用来的,IE、OutLook、Firefox、MSN等存在的漏洞是例子,扩展一下,Office、Acrobar Reader等软件存在的漏洞也归于此类型。远程服务溢出漏洞由于多数协议公开,在协议基础上辅以常用的黑盒测试等技术,利用起来相对容易成功;然而,客户端漏洞通常是由解析某种文件格式的时候缺乏数据边界检查而产生的,而且很多文件格式(如doc、pdf等)厂商都未公开,利用成功的难度明显大一些。
前段时间由于工作要求,我需要对WORD 2000解析doc文件格式时存在的溢出漏洞进行分析与利用。从网上找了找,一共有MS03-035、MS03-050、MS05-023、MS05-035这四个漏洞公告,影响的都是WORD 2000,(据说WORD 2002可能也受影响)。其中,MS03-050漏洞尽管是03年底发现的漏洞,但是到05年7月底才爆发了针对该漏洞的“万珍”蠕虫,给网络造成了不小的损害,况且现在使用WORD 2000的用户仍然很多,因此觉得这个漏洞目前最有利用的必要。在分析的过程中,我遇到了很多的困难,也走了不少的弯路,不过经过1个多月时间后最终还是比较完美地解决了。在收获信心与提高能力的同时,我当然不会把好东西独享。下面,我就和大家一起来回顾对该漏洞艰苦的调试之旅,希望朋友们看了之后能有所收获。文中讲的东西都更多是基于漏洞调试技术本身及简单的利用,至于如何复杂地利用基本都是与木马技术相结合的,由于工作保密关系就不多谈了,大家可以自由发挥。

寻求现成Exploit---无功而返
首先还是看看漏洞公告吧。

根据公告,漏洞原因大家应该大致了解了,WORD在解析doc文件的时候,未对宏的名称进行长度检测,导致了缓冲区溢出。除此以外,公告没有其它任何信息,甚至连它是堆栈还是堆溢出漏洞我们也不确定。对于分析这样的漏洞,我一向采取先解决问题(找Exploit),有空再深入研究的方式。二话不说,打开Google,输入漏洞关键。

在搜索结果中的众多URL中一一浏览,发现这些URL几乎全是关于漏洞概述的,不要说Exploit,就连doc样本文件都找不到一个。一周时间过去了,完全没什么进展。但有一点是肯定的,在面对困难时应该具有充分的黑客精神,绝对不能随意放弃。靠别人不如靠自己,一条路走不同就换另一条,我决定自己分析这个漏洞。
既然该漏洞是WORD在解析doc文件宏名称的时候发生了溢出,那就从构造超长的宏名称开始,可我连WORD宏机制都完全不了解, 看来还只能从这些基础知识入手。下面的内容都是在Windows 2000(或XP SP2) + WORD 2000这样一个平台上进行的。

了解WORD宏机制——测试未果
大概从WORD 97开始,就提供了宏机制。宏是完成一定功能的命令的集合,WORD中各菜单、按钮执行的功能(如新建、打开等),实际上都是用宏的形式对多条命令进行了封装。WORD宏是使用VBA来编写的,目的是使得用户能在WORD中编写完成指定功能的代码,从而扩充了WORD的功能。VBA具体语法和VB一样,我们可以在编写宏的时候调用WINDOWS API,但有些函数VB中没有,宏病毒就是利用宏复制语句来达到感染的目的。宏有两种存储形式,一种是存储doc模板文件中&

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值