该补丁只针对XP 下的 6.5.2600版本的MSVIDCTL.DLL有效,请确认执行更新.

更新程序会自动备份您原来的版本为系统目录下的MSVIDCTL.DLL.SAV,如果更新导致您的程序运行不正常请恢复该文件

需要使用的用户请从 http://www.knownsec.com/directshowpatch.rar 下载。

 

说明:转载和引用本技术文章请注明原作者和知道创宇公司,相关公司和媒体如果转载相关内容不注明,将保留追究责任的权利.

1. DIRECTSHOW 0DAY是当前主要挂马攻击方式

     通过知道创宇挂马监测平台发现,自从DIRECTOSHOW 0DAY发布以后,恶意站点率大幅度上升,由日常的不到千分之三上升到千分之八以上,目前已经检测到将近1万个挂马站点.

    而这些挂马站点,几乎80%以上都使用了DIRECTSHOW的0DAY予以挂马,极大的危害了网民安全,这是我们为什么要在微软推出正式补丁之前推出补丁的原因.

2. DIRECTSHOW 漏洞介绍

   按照正常流程,作为安全公司,本来是不应该在微软安全漏洞推出以前介绍相关漏洞细节以防范被恶意攻击者所利用,但是鉴于该漏洞已经为广泛的挂马者所利用,现在公布出来也不会再增加安全风险,不过这里就不贴具体漏洞定位的代码了.关键是在这里说明补丁的机理.以前很多在官方未推出补丁之前发布所谓补丁的公司,其实本身并不清楚漏洞机理,一般采用偷巧的方式,比如检查一些特定的攻击操作来推补丁,虽然能暂时起到保护网民的效果,但由于对漏洞机制和成因还是比较模糊,攻击者能找到一些饶过检查的方法.

       从技术角度上来看,这次的DIRECTSHOW的0DAY其实涉及到的漏洞有2个,其中一个是堆栈溢出,是被DIRECTSHOW 0DAY所利用的,但是0DAY攻击者可能考虑到当前系统大多都有GS,所以没有直接利用堆栈加载SHELLCODE,而是通过脚本分配大堆,通过堆栈溢出覆盖了SEH地址指向可能被分配的大堆地址来获得应用.

      这个堆栈溢出其实是开发人员在开发时的一时疏忽导致的,开发人员调用了READFILE来读加载的图片文件,正常的应该是

      ReadFile(FileHandle,buf,size,type)

但是开发人员一时疏忽,写成了 ReadFile(FileHandle,@buf,size,type)

   结果就导致,读出的文件内容并不是拷贝到buf中而是拷贝到堆栈保存BUF指针的变量开始的地址中,就把堆栈给覆盖了.

   从漏洞本质上看,攻击者完全可以不使用当前0DAY所使用的大堆攻击方式,而直接把攻击代码写到图片文件里拷贝到堆栈上再利用,如果这样,不清楚漏洞机理的一些针对大堆特征检测和保护的机制将会失效.这个漏洞的修补其实很简单,把相关LEA指令修正为MOV指令就够了,这不会影响DIRECTSHOR任何功能的实现.

 

    另外一个漏洞,则是被人疏忽的,其实在修补了上一个漏洞后,就会出现,这个漏洞和很多ACTIVEX混乱漏洞如出一辙,一个ACTIVEX对象被FREE后没有通知上层的对象销毁,导致其对象的空间被另外分配以后重用继续调用,结果就是被重用的内存作为函数指针导致被利用.懂漏洞分析的朋友可以自己修补第一个漏洞后会发现 CALL 到大堆覆盖内容的地址上去,如CALL 0X90909090. 其实攻击者完全也可以不使用第一个漏洞来利用只使用这个漏洞来利用,如果不清楚这个漏洞和机理,只基于当前0DAY的表现特征来做检测和保护的厂商就可能会被后面的0DAY变种所饶过.这个漏洞修补起来比较麻烦一些,因为不想大改相关的文件,所以在相关能触发漏洞的地方,选择了一个简单的JMP指令饶过可能使用重用的对象.这样的修补,可能会使一些使用这个功能的程序受影响.

      因此这个漏洞,只是当前针对DIRECTSHOW 0DAY 高风险的一个临时举措,当微软发布正式补丁以后,请及时下载微软的补丁.如果你的系统确实有其他程序需要使用DIRECTSHOW的这个控件,那么这个补丁可能会带来一些影响,请你评估后再使用.同时使用者最好先备份好原来的MSVIDCTL.DLL文件,如果自身其他应用需要DIRECTSHOW的这个组件受影响,可以更新回来.

     同时,我们是鉴于DIRECTSHOW的巨大风险临时推出的补丁,没有专门去处理和系统还原保护相关的处理,因此在安装补丁的时候,需要您确认一下系统还原给出的提示.

 

 

 

Popularity: 12% [?]