自2008年12月10日曝出IE7 0DAY漏洞以来,网页挂马网站迅速增多,受影响用户人数已达百万,而且有继续增多的趋势,一些地下组织开始公然贩卖漏洞服务,对该漏洞微软至今还未公布相关补丁,据了解,微软IE 7 0day漏洞是一个基于IE7浏览器内核的漏洞,所有基于IE7内核的浏览器如傲游、腾讯TT都会成为攻击对象,而且一些内置了IE内核的杀毒软件、应用软件如Office、Outlook等软件也会成为攻击对象。因此该漏洞的影响面将会非常大,应该引起广大电脑用户的警惕。
该漏洞是由于IE7.0中的mshtml.dll模块中在处理对象方面存在错误,能够造成内存管理混乱,通过构造特定条件代码可以导致内存溢出。攻击者可以通过构造畸形XML代码并且使用JavaScript脚本操作ShellCode去执行任意代码。该漏洞影响的操作系统为:windows xp、windows2003、windows Vista,并且安装了IE7浏览器的用户。
根据安天防线团队研发人员的分析,IE7 0Day 漏洞的危害性极大,以下是0DAY代码片断:
溢出是由于 XML 解析字符串 SRC 片段时导致,由于 SRC 字符串当中的 rਊr 非正常字符导致对象分配失败,而失败后的内存指针没有被释放,继续利用,而这个指针被人为指向了一段堆地址,而如果这段地址被 ShellCode 覆盖过的话,调用这个指针就会导致有溢出。
r把十进制的114转成0x0072ਊ把十进制的2570转成0x0a0a刚好它们组合在一起就是一个可利用的堆地址0x0a0a0072,在以下代码中图 1-2所示
图1-1
图1-2
图1-3
据安天防线研发人员介绍,以上是溢出代码分配过程,由于 Windows 操作系统对分配的特点,以下三句:
aaablk=(0x0a0a0a0a-0x100000)/heapBlockSize;
zzchuck=new Array();
for(i=0;i<aaablk;i++){zzchuck[i]=retVal+infect}
保证了从堆开始的地址直到0x0a0a0a0a 都会被溢出代码淹没,所以最终通过 0x0a0a0072 跳到了溢出代码处,导致了系统溢出。
IE7 0day漏洞的防御原理
大多数网页挂马者,对于该漏洞多采用js脚本配合畸形xml的方式实现挂马,对其防御通过以下方式即可实现:
特征检测清理畸形并进行清理xml
通过行为分析打断网页挂马从网络到本地执行的过程
将使用该网页木马的站点加入黑名单
阻断网页木马执行。
据安天防线团队研发人员介绍,由于网页挂马变形方式的多样性,安天防线将采取多种方式相结合的方式对其进行防御,首先在IE下载页面时进行黑名单匹配可以过滤常见的使用该技术进行挂马的职业挂马站。在IE下载完所有的页面元素后,对页面元素进行检查,清理掉挂马脚本。经过分析测试发现,广泛传播的IE7 0day网马生成器,它所生成的shellcode会调用一些特殊的函数,这些函数一直被网页防挂马防御模块所监控,在shellcode调用这些函数进行木马下载和运行的时候,防御模块会对其进行阻断,以达到防御的目的。由于网页木马利用的是溢出漏洞,有可能会导致部分正常代码被覆盖,所以在IE创建进程的过程中,防御模块对进程创建的文件进行了数字签名和可信任度检测,以阻止被下载的木马执行。综合使用上述方法,安天防线实现了对该漏洞的有效防御。
下载安天防线:http://www.skycn.com/soft/5646.html