CVE-2018-0798_微软公式编辑器漏洞分析

微软公式编辑器(EQNEDT32)漏洞样本分析

CVE-2018-0798漏洞分析

公式编辑器存在多个漏洞CVE-2017-11882和CVE-2018-0802

 

该样本利用的漏洞为CVE-2018-0798

 

出现漏洞的函数为sub_443F6C(无随机基址),该函数内部并没有对参数 v12 的长度做限制

 

图片描述

 

从而导致栈溢出

 

图片描述

 

在OD里面比较直观,我们可以看到,在长度不限的情况下,我们是可以覆盖到上层函数的返回地址,这样我们便可以劫持到EIP,执行我们的shellcode

 

图片描述

 

然而该样本并没有直接劫持EIP跳转到shellcode,而是用了下述的方法(该组织的shellcode也是相当有意思)

 

在上述中我们有看到 sub_443F6C 函数执行了两次,两次执行后,只是为了构造下面函数的参数

 

图片描述

 

第4个参数的内容

 

图片描述
我们可以看到a4是第4个参数,因此我们可以控制memcpy源地址的内容

 

图片描述

 

通过控制第二个和第三个参数,修改该区域指令为jmp短跳,并把想要复制的内容放进来

 

图片描述

 

到这里已经淹没了返回地址,一个短小的ROP链,还是比较容易理解

 

图片描述

 

继续执行便到了我们刚才复制过去的数据,因为公式编辑器并没有开启DEP,所以可以直接执行

 

图片描述

 

这里是之前构造的代码,对eax进行计算从而跳转到shellcode。

图片描述

 

到这里有个疑问,为什么要计算出,0x45BD3C这个地址呢?

 

其实这是一个基址,这个地址里保存的值永远是 0x12F560

 

图片描述

 

而对0x12F560+0x14=0x12F574 又进行取值,这里边保存就是我们的word程序传入的buffer了

 

取出来的值+固定的offset,就是真正的shellcode了

 

图片描述
图片描述

样本概况

样本为一个word类型的文档,打开后如下

 

图片描述

 

运行该样本后,发现该样本创建了计划任务

 

图片描述

 

用oletools工具对doc文档进行分析,内置4个ole对象
图片描述

 

id为0和1的,明显是与0xFC异或加密,解密后是一个PE文件

 

图片描述

 

id为3的包含了漏洞利用的代码

 

图片描述

恶意代码分析之shellcode

之前的介绍中,已经调试到shellcode部分

 

该段shellcode首先会通过异或0xb9解密自身

 

图片描述

 

通过PEB的方法,获取msvcrt.dll,kernel32.dll的基址

 

图片描述

 

获取msvcrt模块的clearerr函数地址,并修改其地址属性

 

图片描述
进行inlineHook

 

图片描述
hook之后,可以传入,字符串从而获取API的地址,不是用普通的GetPorcAddress

 

而是调用了ntdll的 LdrGetProcedureAddress

 

图片描述
图片描述

 

然后读取临时目录下的8.t,并在内存中解密

 

图片描述

 

因为当前是调试状态,他会通过GetModuleFileName获取当前模块名,并创建一个同名的线程

 

图片描述
傀儡进程技术,写入真正要执行的代码,就是释放的8.t,然后ResumeThread并结束自身

 

图片描述
图片描述

Loader

8.exe会在临时目录释放,两个文件,并创建计划任务

 

图片描述

 

![1565779110142] 图片描述

白名单程序分析

如图释放的exe为有签名的白名单文件,是一个白利用程序

 

图片描述

 

wce.dll是被更改过的黑dll,该dll获取导出函数_run@4并调用

 

图片描述

 

该函数解密域名后会进行链接,nicetiss54.lflink.com

 

图片描述

 

发送的数据为 GET请求 image/logo.png

 

图片描述

 

该图片应该是一个PE文件,会去执行他的导出函数

 

图片描述)
注:可以利用样本制作exp,这里不放exp,附上样本,有兴趣的可以自己编写。(授人鱼不如授人以渔)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值