最近,milw0rm上出现了一篇公开帖子(http://www.milw0rm.com/exploits/5530),讨论了Microsoft Works 7 WkImgSrv.dll ActiveX控件中的一个问题。该概念验证(PoC)声称可以实现远程代码执行。McAfee Avert Labs博客也有一篇关于此问题的帖子(http://www.avertlabs.com/research/blog/index.php/2008/04/17/potential-microsoft-works-activex-0-day-surfaces/)。
乍一看,这个问题似乎很严重,对吧?但经过进一步调查,我们发现并没有有效的攻击向量。
以下是我们使用之前另一个SWI博客中发布的代码(ClassId.cs)输出的结果:不安全=不危险?如何判断ActiveX漏洞在Internet Explorer中是否可利用。
ActiveX对象CLSID:00E1DB59-6EFD-4CE7-8C0A-2DA3BCAAD9C6
输出: Clsid: 00E1DB59-6EFD-4CE7-8C0A-2DA3BCAAD9C6 实现IObjectSafety:False 安全初始化(注册表):False 安全脚本(注册表):False KillBitted:False
这表明此ActiveX对象既不是SFS(安全脚本)也不是SFI(安全初始化),也没有实现IObjectSafety。
如果我们尝试在互联网区域加载此ActiveX对象会发生什么?IE根本不会加载它。 注意上面的区域显示为“互联网”。这是由于2005年MS05-052在IE中引入的缓解措施。
以下是MS05-052中发生的情况的详细信息,来自之前的SWI博客:Kill-Bit常见问题解答:第2部分(共3部分)。 “在MS05-052中,IE进行了一项更改,影响了控件在互联网区域实例化的方式。IObjectSafety检查现在被前置,以便IE可以快速确定控件的安全状态,并在控件被识别为不安全时立即中止实例化。”
MS05-052中引入的缓解措施仅适用于互联网区域。如果对象在本地机器区域(LMZ)中加载,IE会实例化它。然而,从互联网区域到LMZ的任何提升都将被视为“区域提升”,IE应该阻止这种情况,而在此案例中并未发生。有关IE区域提升功能的更多详细信息,请参阅http://msdn2.microsoft.com/en-us/library/ms537185(VS.85).aspx。此外,IE通过默认锁定本地机器区域来进一步保护用户。有关LMZ锁定功能的更多详细信息,请参阅http://technet.microsoft.com/en-us/library/bb457150.aspx#EHAA。
现在在内网区域会发生什么?IE会弹出黄金栏以阻止在脚本中使用此ActiveX对象。
我们想澄清的是,这并不是由于MS05-052中引入的缓解措施。相反,它与以下设置相关。
- 安全漏洞研究与防御博客作者 帖子按“原样”提供,不提供任何保证,也不授予任何权利。
ActiveX 攻击向量 Clsid Killbit 缓解措施