微软公布了一个关键的ie漏洞,并在星期二发了修补补丁,但是这个漏洞已经被许多人利用。
该漏洞是编号为CVE-2012-1875,被微软MS12-037补丁修补。
SophosLabs已多次试图利用该漏洞(Sophos产品检测它作为Exp/20121875-A)。
Cunningly-craftedJavaScript代码——它可以嵌入到web页面上,并强行攻击毫无戒备的网民——这已经在互联网上大肆流行。
同时,Metasploit开发框架现在有一个模块框架插件,可以自动生成恶意的JavaScript,并帮助攻击者发动自动化攻击(仅用于授权渗透测试和研究目的)。
CVE-2012-1875漏洞就是大名鼎鼎的“MicrosoftInternetExplorerSameID属性远程代码执行漏洞”,是由于InternetExplorer内存管理不善造成。
这个漏洞通常被认为是一个“内存释放后使用”的bug。这发生在一个程序释放出一个盈余的内存块,原则上被操作系统回收之后需要再分配,但应用程序却仍然继续使用它,到那时这个内存区块可能出人意料地已被改变。
对于现代操作系统发行版的这种排序困难,目前有两种技术可以应对:DEP(防止数据执行)和ASLR((随机地址空间布局)。
DEP分配内存块,以使它们仅仅被用于数据存放,而不是为执行代码,从而降低了黑客插入恶意代码运行的机会。
ASLR(Addressspacelayoutrandomization)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。据研究表明ASLR可以有效的降低缓冲区溢出攻击的成功率,如今Linux、FreeBSD、Windows等主流操作系统都已采用了该技术。
但是DEP和ASLR并不能阻止远程代码执行共计——这非常棘手。
在Exp/20121875-A这种情况下,ASLR有时候会被“绕行”,在指令InternetExplorer寻找和加载一个旧版本的MicrosoftC运行时DLL库时,如果这个运行时库是ASLR成为规范之前就已经编译了,那么ASLR是不支持这个库文件。
即便你加载一个non-ASLRDLL,进入了一个ASLR-enabled程序,你照样可以预测它会在哪里结束。
而DEP则会被一种称之为ROP(return-orientedprogramming)的技术突破。
ROP是很难用一句话来解释的,它的原理是这样的,首先找到一个小的程序碎片,什么样的碎片呢,已经加载的,已经在内存里执行的,比较有代表性的是只执行1个或者2个指令,在同一时间,当然,这些碎片可以整合成一个连贯的恶意代码,即便它看起来古怪而笨拙。
然后,你就可以执行这些古怪的微小的指令碎片(在ROP社区里,被称之为小工具)。
(责任编辑:)