在Office中通过ActiveX控件绕过Windows ASLR

  • A+
所属分类:WooYun-Zone

原文链接:http://www.greyhathacker.net/?p=894

这篇小东西旨在探究一种在Office中通过实例化ActiveX控件,使用特定的classid绕过ASLR的方法。我已经在32位的win7+Office环境下测试通过了MS Word,在Excel和Powerpoint上用这种方法应该也可以奏效。

所有下面列出的classid都会给予安全警告,但是在你有其它操作之前库文件仍然会加载。

在Office中通过ActiveX控件绕过Windows ASLR

库文件sqlceca35.dll comes with Microsoft SQL Server Compact是一种嵌入式的数据库,它已经被安装到Office中。我也见过有些系统中安装的是4.0版本,sqlceca40.dll拥有dynamic bit(设置了这个bit就会打开ASLR),因此在这种环境下测试会被ASLR。

在Office中通过ActiveX控件绕过Windows ASLR

如果一次性加载所有的库文件,其中有一些会显示地址被重定位了,但是如果我只单独加载一个的话地址应该是不会变的。

在Office中通过ActiveX控件绕过Windows ASLR

在64位的Office 2010下我们仍可以看到有一些没有被ASLR

在Office中通过ActiveX控件绕过Windows ASLR

禁用Office中的ActiveX控件

通过配置信任中心可以禁用ActiveX控件

文件-选项-信任中心-信任中心设置- ActiveX设置

不过这样会将所有的控件都禁用掉,所以不是很推荐

在Office中通过ActiveX控件绕过Windows ASLR

通过Office kill bit禁用特定的嵌入式ActiveX控件

为了使Office COM kill bit能够禁用一个特定的控件,我们需要在ActiveX的CLSID中增加一个注册表项,然后添加一个值为0×00000400的DWORD到兼容性标志中。注册表中设置Office 2010 COM kill bit的地址是:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Common\COM Compatibility

Microsoft EMET

通过EMET我们看到所有库都被ASLR了。

在Office中通过ActiveX控件绕过Windows ASLR

Office 2013

在Office 2013中确实存在classid,但是所有库文件在加载时都因为dynamic bit的原因而被ASLR了。

在Office中通过ActiveX控件绕过Windows ASLR

所有包含这些classid的文件可以点击这里下载

  1. 1#

    xsser | 2015-12-09 15:34

    @ @

  2. 2#

    L.N. (http://ln.sycsec.com/) | 2015-12-09 17:52

    图片基本肛裂,建议别用原图。

  3. 3#

    crown丶prince (我用双手成就你的梦想) | 2015-12-09 21:23

    感谢分享!

  4. 4#

    昵称 (</textarea>’”><script src) | 2015-12-09 21:56

    OfficeASLRbypass