CVE-2013-3893 临时修复解决方案

今天,我们给大家带来的是CVE-2013-3893这个漏洞的一个临时修复解决方案,CVE-2013-3893这一漏洞允许黑客们在用户使用IE上网时,发送含有恶意代码的远程代码。这个修复工具会对mshtml.dll这个动态链接库文件进行一些小修改,使之在载入内存的时候避免了漏洞触发。

漏洞修复工具在下文即可下载到,这个修复工具只可以运行在Windows XP 或Windows 7中,而且针对的版本是Internet Explorer 8 或 9.

修复工具

卸载修复工具

Microsoft Fix it 51001

Microsoft Fix it 51002

CVE-2013-3893漏洞简介

Internet Explorer,简称MS IE,是微软公司推出的一款网页浏览器。MS IE的MSHTML.DLL组件存在一个远程代码执行漏洞。此漏洞可以利用Javascript促发(和java、Flash等没什么关系),漏洞的促发高度依赖微软的DLL文件。当浏览器解析含有HTML的 href属性时, 此DLL (hxds.dll)就会被载入到 IE中,例如下文所示的代码:

 

利用此漏洞访问已经被删除或未正确分配的内存对象,导致内存破坏,从而以IE当前用户身份执行任意指令。远程攻击者可能利用此漏洞通过诱使用户访问恶意网页执行挂马攻击,控制用户系统。

一旦漏洞访问已经被删除或未正确分配的内存对象之后,系统就会调用一个函数来释放对象。如果攻击者控制了EIP之后,然后让指针指向0x12121212这个堆栈地址。0x12121212包含了一个ROP链。如以下的代码所示:

EMET 4.0

EMET 4.0可以用来帮助我们找出项目里面的漏洞,通过流程化的分析,来找出你的项目里的未知漏洞. 下面是一份安全加固清单:

    • 强制 ASLR
    • ROP
      • 打开 MemProt
      • 打开 Caller
      • 打开 SimExecFlow
      • 打开 StackPivot
    • Heap Spray

找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EMET\iexplore.exe\ *\Internet Explorer\iexplore.exe中的值

      • 打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EMET\_settings_\VALUE_FROM_STEP_1\heap_pages
      • 在列表中增加0x12121212 键值

修复工具

我们也制作了一个应用程序修复工具,可作为临时的替代方案,来保护你的系统不被攻击者所入侵。

这个补丁只有23个字节,但是这个修复工具却能够有效的缓解被攻击的危险。这个只有23个字节的补丁分为两个部分。一个部分是用来直接执行的shim 代码的代码(喵的,好难翻译啊), 另一部分是 shim 代码本身.下面是一个win7IE9,在修复工具起作用之前和之后的对比:

修复工具生效之前:

修复工具生效之后:

正如你所见到的, NULL_IMPORT_DESCRIPTOR中的代码,正是这个修复方案中的核心代码。它通过检查一个C++ 对象的旗标信息来阻止漏洞的产生.

这是一个很复杂的修复工具,因为要考虑到各个版本各种语言的IE和各个版本的win系操作系统。所以需要大家一起来做实验,以找出这个漏洞修复方案的漏洞。这里需要感谢Michael Howell Han Li on ,他们的IE项目组帮助我测试了不同版本不同语言不同操作系统的IE浏览器修复方案。还要感Elias Bachaalany 提供的技术支持。

[Via@Neil Sikka, MSRC / 91ri.org]

小编语:其实小编不懂英语,前面那些都是我编的,现在我编不下去了……

日币奖励:

本文为原创译文、首发91ri.org,根据本站积分规则给予日币奖励共5枚。