当前样本是一个RTF文档,内嵌一个公式编辑器对象,该对象利用Office编辑器漏洞CVE-2018-0798执行shellcode,对EQNEDT32.exe进行代码注入,执行恶意代码。

  使用rtfobj查看文档结构,可以看到携带了3个OLE对象,但是id为1的对象并未被使用。

  第二个是一个package对象,原路径为” C:\Users\n3o\AppData\Local\Microsoft\Windows\INetCache\Content.Word\wd32PrvSE.wmf”,实际是一个经过加密的exe文件,在漏洞触发后,被Shellcode解密并注入新起的EQNEDT32.exe进程中;

  第三个为公式编辑器对象,其中 {0002CE02-0000-0000-C000-000000000046}即为Equation Editor 3.0关联CLSID,该对象会触发CVE-2019-0798漏洞,从而执行Shellcode。



  在EQNEDT32.exe中CVE-2018-0798漏洞函数sub_443E34处下断点,打开RTF文档,程序将中断于断点。

  在sub_443E34中,会对公式编辑器对象进行处理。其中sub_416352用于获取控制数据,之后在sub_443F6C函数中会进行数据复制操作,而之前获取的偏移0x1E、0x1F处的字节将被用于控制数据复制的长度。



  sub_443F6C中,参数a1即为控制长度的字节,计算值”(2*a1+9)>>3”,结果作为复制数据的长度值,该函数被连续调用两次,完成目标的覆盖。

  覆盖前的栈:

  覆盖后的栈:

  接着调用sub_4428F0,利用之前覆盖的数据,构建一个Trampoline Shellcode片段,用于跳转执行RTF本身携带的Shellcode。

  在sub_43A78F中控制程序再次调用漏洞函数sub_443E34,最终覆盖函数sub_443E34的返回地址。通过构造并覆盖成功的ROP链跳转到Trampoline Shellcode处,最终成功跳转并执行自身携带的Shellcode。

  Shellcode进行异或自解密,并继续执行解密后的代码。

  读取被释放到目录下的package对象wd32PrvSE.wmf,进行异或解密,得到一个EXE文件。

  使用Process Hollowing技术将解密后的EXE隐藏于EQNEDT32.exe进程中执行。

  解密出的EXE将会复制自身的执行文件(即EQNEDT32.exe)到目录,并以当前时间创建文件名。接着访问URL:https://internetcasinoweblog.com/wp-admin/js/xfn/joel.exe(已失效),下载资源,写入下被创建的时间命名的文件,最终执行程序。

  如果下载失败,执行的将是一开始复制过来的EQNEDT32.exe,只是名字被更改。

公式编辑器CVE-2018-0798样本分析的更多相关文章

  1. CVE-2018-0798:Microsoft office 公式编辑器 Matrix record 字段栈溢出漏洞调试分析

    \x01 前言 2018 年 1 月 9 日,Office 公式编辑器再曝出新漏洞,编号为 CVE-2018-0798.提起公式编辑器大家都不陌生,之前的 CVE-2017-11882 和 CVE-2 ...

  2. CVE-2018-0802:Microsoft office 公式编辑器 font name 字段二次溢出漏洞调试分析

    \x01 前言 CVE-2018-0802 是继 CVE-2017-11882 发现的又一个关于 font name 字段的溢出漏洞,又称之为 "第二代噩梦公式",巧合的是两个漏洞 ...

  3. CVE-2017-11882:Microsoft office 公式编辑器 font name 字段栈溢出通杀漏洞调试分析

    \x01 漏洞简介 在 2017 年 11 月微软的例行系统补丁发布中,修复了一个 Office 远程代码执行漏洞(缓冲区溢出),编号为 CVE-2017-11882,又称为 "噩梦公式&q ...

  4. office2003安装公式编辑器mathtype5.2

    同事的一台电脑,xp系统,需要安装公式编辑器mathtype,安装完后,启动word时出现了宏的警告. 在菜单中,无论如何设置宏,都不能去除该提示框.删除了模板normal.dot,也不能解决该问题. ...

  5. 公式编辑器MathType基本使用方法总结----应付本科毕业论文完全没问题啦^_^

    本人计算数学专业毕业,写毕业论文和外文翻译的时候会遇到大量公式需要编辑,而且学校一般都要求用word.但是Word自带的公式编辑器只支持一种字体,当公式中涉及到特殊字体就不太方便了.如果用Latex来 ...

  6. ocky勒索软件恶意样本分析1

    locky勒索软件恶意样本分析1 1 locky勒索软件构成概述 前些时期爆发的Locky勒索软件病毒这边也拿到了一个样本,简要做如下分析.样本主要包含三个程序: A xx.js文件:Jscript脚 ...

  7. ocky勒索软件恶意样本分析2

    locky勒索软件恶意样本分析2 阿尔法实验室陈峰峰.胡进 前言 随着安全知识的普及,公民安全意识普遍提高了,恶意代码传播已经不局限于exe程序了,Locky敲诈者病毒就是其中之一,Locky敲诈者使 ...

  8. Mac下门罗币矿工样本分析

    背景 今天遇到一个JSONRPC的告警,怀疑挖矿木马,IOC是132.148.245.101,无其他信息,随即google一波. 查询网络 遇到了,主动下载样本分析,下载地址:http://rjj.q ...

  9. MS Office CVE-2015-1641 恶意 Exploit 样本分析

    MS Office CVE-2015-1641 恶意 Exploit 样本分析 在对最近的一个恶意 MS Office 文档样本进行分析时,我们发现了一些有趣的特性.这个文档利用 CVE-2015-1 ...

随机推荐

  1. X-Forwarded-for漏洞解析

    首先了解X-Forwarded-for(简称:XFF) X-Forwarded-for:简称XFF,它代表客户端,也就是HTTP的请求真实的IP,只有在通过了HTTP代理或者负载均衡器时才会添加该项. ...

  2. 简单Spring MVC项目搭建

    1.新建Project 开发环境我使用的是IDEA,其实使用什么都是大同小异的,关键是自己用的顺手. 首先,左上角File→New→Project.在Project页面选择Maven,然后勾上图中所示 ...

  3. 一文搞清楚 DNS 的来龙去脉

    目录 美国霸权 ICANN:互联网界的联合国 IP 地址分配 域名解析架构 分层架构: DNS 缓存: 根 DNS 服务器: 顶级 DNS 服务器(TLD): 权威 DNS 服务器: 本地 DNS: ...

  4. HashMap的实现原理(看这篇就够了)

    一线资深java工程师明确了需要精通集合容器,尤其是今天我谈到的HashMap. HashMap在Java集合的重要性不亚于Volatile在并发编程的重要性(可见性与有序性). 我会重点讲解以下9点 ...

  5. 1013day-人口普查系统

    1.shuchu.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  6. LSM树以及在hbase中的应用

    转自:http://www.cnblogs.com/yanghuahui/p/3483754.html 讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来: 哈希存储引擎  是哈希 ...

  7. [JavaWeb]利用JSP的编码特性制作免杀后门

    利用JSP的编码特性制作免杀后门 这里是借鉴了Y4stacker师傅的thinkings 待解决的问题 JSP解析 JSP"乱码"为什么还能被识别 "乱码"的J ...

  8. golang中的channel

    1. 概念 单纯的将函数并发执行是没有意义的,函数与函数之间需要交换数据才能提现并发执行函数的意义虽然可以使用共享内存来进行数据的交换,但是在共享内存在不同的goroutine中容易发生竟态问题,为了 ...

  9. 多线程-创建线程第二种方式-实现Runnable接口-细节和好处

    1 package multithread2; 2 3 /* 4 * 创建线程的第一种方法:继承Thread类 5 * 6 * 创建线程的第二种方式:实现Runnable接口 7 * 8 * 1,定义 ...

  10. Kubernetes 微服务最佳实践

    本文由个人笔记 ryan4yin/knowledge 整理而来 本文主要介绍我个人在使用 Kubernetes 的过程中,总结出的一套「Kubernetes 配置」,是我个人的「最佳实践」. 其中大部 ...