[漏洞样本分析]CVE-2018-0802

环境:

Win7(专业版)
office 2007 (完全版:更新到sp3补丁\修复eqnedt补丁)

工具:

Ollydbg IDA Pro PEid Kali-Linux metasploit

POC来源:

https://github.com/rxwx/CVE-2018-0802

漏洞背景:

在2017年11月14日,微软发布11月份安全补丁更新,其中更新了潜伏17年之久的Office远程代码执行漏洞(CVE-2017-11882) “噩梦公式一代“,而在2018年1月,又爆出了office 0day漏洞(CVE-2018-0802),该漏洞的技术原理类似17年修补的漏洞,是由于office公式编辑器组件EQNEDT32.EXE,对字体名的长度没有进行长度检验,导致攻击者可以通过构造恶意的字体名,执行任意代码。
影响版本:
Microsoft Office 2007 Service Pack3
Microsoft Office 2010 Service Pack2 (32)
Microsoft Office 2010 Service Pack2 (64)
Microsoft Office 2013 Service Pack1 (32)
Microsoft Office 2013 Service Pack1 (64)
Microsoft Office 2016 (32)
Microsoft Office 2016 (64)

具体分析:

如果分析有错误,谢谢大家帮我指正
可以看出是打了CVE-2017-11882补丁的版本
在这里插入图片描述
先来打开POC 发现打开了一个计算机,我们打开OD,打开WORD 附加EQNEDT32.EXE公式编辑器,给CreateProcess下断点
在这里插入图片描述
断下 查看堆栈,发现是WinExec调用的 在WinExec下断点
在这里插入图片描述
重复上面步骤 断下往上查看堆栈看是否有残留地址
在这里插入图片描述
找到一个下断
在这里插入图片描述
再重新断到这里发现堆栈地址已经被覆盖了,在函数头部下断,重新打开步过寻找,重复上述步骤,直到找到堆栈覆盖点
在这里插入图片描述
经过仔细的跟踪发现是sub_421774的函数里的sub_421E39 覆盖了原本的返回地址18F1E0处,我们进sub_421E39看一下
在这里插入图片描述
OD动态调试确认是这处把函数地址覆盖了,覆盖的是sub_421774的函数返回地址,并不是自身的返回地址,第一处是覆盖返回地址
在这里插入图片描述
第二处是将两个字节(25 00)将覆盖函数的返回地址,这样就能绕过随机基址(ASLR)
在这里插入图片描述
找到溢出点了,我们进00F50025这个地址看一下

在这里插入图片描述
是个return 所以真正的返回函数地址是下面的0018F22C 这是一个堆栈地址,可能是段shellcode我们单步跟进去分析一下
进到了这段shellcode
在这里插入图片描述
这段shellcode向栈中压入了两个参数,并JMP到一个地址,我们跟进去看一下
在这里插入图片描述
发现刚好是WinExec函数,符合我们之前的观察
在这里插入图片描述
样本分析至此结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值