这篇文章将为大家详细讲解有关Office漏洞的详细分析是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
在windows2017年 11月份发布补丁,修复了包括cve-2017-11882在内之后,在2018年又继续发布补丁,修复了包括CVE-2018-0802在内的多个漏洞,而这次CVE-2018-0802再一次利用了EQNEDT32.EXE公式编辑器的栈溢出漏洞,而这个漏洞则是CVE-201-11882的补丁绕过漏洞,网上也出现两种漏洞结合的POC,我们一起来看看这个漏洞。
漏洞分析
分析环境:win7
Office 版本:office2007 SP3 并打上CVE-2017-11882补丁
我们首先看下在打完补丁后EQNEDT32.exe的属性
我们看看POC的RTF文件,可以看到继续使用objupdate字段来使OLE对象的自动更新和加载
然后我们通过rtfobj.py将这个OLE对象提取
我们可以看前面还是28字节的EQNOLEFILEHDR的结构体,我们来看看后面的MIEF data,对应的是下面的阴影部分,第一个字节03代表MTEF的版本号,第二个字节01表示在windows平台生成,第三个字节01表示这个是公式编辑器生成,之后的是产品的主版本号和产品的副版本号
之后是公式数据流,这个一系列的records 字节08 表示Font record,我们通过文档
来具体查看一下这个font字节,分别是tface和style和name,,看来这次出问题的还是font name ,而上次CVE-2017-11882也是这个font name
我们先来动态调试下,确定下漏洞点
设置windbg为默认的调试器,并且设置EQNEDT32.EXE的默认调试器为windbg,这样在EQNEDT32.EXE在启动的时候就会默认附加到windbg上
通过构造Crash和栈回溯我们定位到漏洞地点,函数地址为012D1774,基地址为0x12B0000,由于模块开启了ASLR动态调试地址可能不同
通过动态分析我们发现漏洞点在crash函数的sub_1201E39
溢出点则在拷贝函数中,我们可以看到这个关键函数主要是用来初始化一个LOGFONT的结构体
我们可以看到在拷贝的明显发生了栈溢出,而这次拷贝的是0x94字节,直到遇到0x00,而这次只分配了0x1c个字节,显然发生了栈溢出,
而这次只为了覆盖返回地址,我们看看是如何覆盖返回地址,以及如何绕过ASLR的,我们可以看到在覆盖前的返回地址是012014e2,而这个函数也是crash函数调用以后的下一条指令
我们看看覆盖之后的返回地址的是什么样子的,变成了01200025
而0x01200025这个地址为retn 指令而正是通过这样的覆盖绕过了ASLR,我们知道在32位进程中每次只随机化地址的高2个字节,而低两个字节是不变的,而正是利用了这个特性才绕过ASLR
我们来看一下为什么会选择这个ret指令,因为这样会执行 crash函数的第一个参数
正是lpLogfont,也就是样本可以控制的FontName
由于并没有开启DEP,所以可以在栈中可以执行代码,可以看一下这个shellcodes
还有一个问题是这个漏洞在未打补丁的系统中,并不会执行,因为CVE-2017-11882覆盖返回地址需要的长度远远小于这个样本,而在执行这个样本的时候会先触发CVE-2017-11882导致Crash,网上也出现了将两种洞组合的POC,在CVE-2017-11882利用不成功,会利用CVE-2018-0802
漏洞针对EQNEDT32.EXE公式编辑器,结合CVE-2017-11882漏洞组合攻击将会造成很大的危害,建议尽快打补丁或者禁止EQNEDT32.EXE模块
漏洞修复建议
补丁下载地址 https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-0802
或者通过注册表直接禁用这个模块
reg add “HKLM/SOFTWARE/Microsoft/Office/XX.X/Common/COMCompatibility/{0002CE02-0000-0000-C000-000000000046}” /v”Compatibility Flags” /t REG_DWORD /d 0×400
regadd”HKLM/SOFTWARE/Wow6432Node/Microsoft/Office/XX.X/Common/COMCompatibility/{0002CE02-0000-0000-C000-000000000046}”/v”Compatibility Flags” /t REG_DWORD /d 0×400
关于Office漏洞的详细分析是怎么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/safety/222059.html