微软公式编辑器(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,附上样本,有兴趣的可以自己编写。(授人鱼不如授人以渔)

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

  1. 黑客组织从2018年底开始利用CVE-2018-0798公式编辑器漏洞

    Anomali研究人员在追踪Royal Road RTF文档武器化过程中发现多个攻击组织利用CVE-2017-11882和CVE-2018-0802漏洞. Anomali研究人员在追踪Royal Ro ...

  2. 墨者学院-编辑器漏洞分析溯源(第1题)

    编辑器漏洞分析溯源(第1题) 难易程度:★★ 题目类型:编辑器漏洞 使用工具:FireFox浏览器.burpsuite.菜刀 1.打开靶场,看到提示信息显示fckeditor. 2.首先查看fcked ...

  3. Word公式编辑器快速上手指南

    转自:http://tech.163.com/06/0621/14/2K57J2CQ000915A7.html 目录: 一.公式编辑器的基本知识/二.用公式编辑器创建公式/三.用公式编辑器编辑公式/四 ...

  4. wpf window 不执行show 就不能load执行_Numpy反序列化命令执行漏洞分析(CVE-2019-6446)附0day...

    1.介绍 NumPy 是 Python 机器学习库中之一,主要对于多为数组执行计算.NumPy 提供大量的 函数和操作,能够帮助程序员便利进行数值计算.在 NumPy 1.16.0 版本之前存在反序列 ...

  5. python pickle反序列化漏洞_Numpy反序列化命令执行漏洞分析(CVE-2019-6446) –vr_system...

    1. 介绍 NumPy 是 Python 机器学习库中之一,主要对于多为数组执行计算.NumPy提供大量的函数和操作,能够帮助 程序员 便利进行数值计算.在NumPy 1.16.0版本之前存在反序列化 ...

  6. (23)【漏洞利用】【原理、利用过程】中间件解析漏洞、CMS漏洞、编辑器漏洞、CVE漏洞

    目录 解析漏洞: 原理: 变化因素: 熟知的中间件(解析漏洞) 0x01    IIS5.x-6.x解析漏洞: (1)目录解析漏洞(IIS6.0) 原理: 利用过程: (2)文件解析漏洞 原理: 利用 ...

  7. 2022CTF培训(十一)IOT 相关 CVE 漏洞分析

    附件下载链接 D-Link DIR-823G 固件全系统仿真 2022CTF培训(十)IOT 相关 CVE 漏洞分析 是采用 qemu-user 对个别程序进行仿真,而对于完整的仿真需要使用 qemu ...

  8. php.ini 米拓_独家发布米拓metinfo6系统ueditor编辑器getshell漏洞分析及终极解决办法...

    原标题:独家发布米拓metinfo6系统ueditor编辑器getshell漏洞分析及终极解决办法 最近笔者所有米拓metinfo系统做的网站都被植入木马,连最新版6.2.0都能被攻击,而且修改了后台 ...

  9. 国产软件CVE漏洞分析系列:泛微OA系统 漏洞编号:SSV-91661

    今天开始扒拉一下各种国产软件已经公布的漏洞,有些公司自己把漏洞保密起来,其实真是傻啦吧唧的,以为不让大家知道,漏洞就不存在吗!没办法,可能也是为了上市公司的股价吧.普通人对于漏洞的理解还是有点狼来了的 ...

  10. linux内核安全数据,【漏洞分析】Linux内核XFRM权限提升漏洞分析预警(CVE–2017–16939)...

    0x00 背景介绍 2017年11月24日, OSS社区披露了一个由独立安全研究员Mohamed Ghannam发现的一处存在于Linux 内核Netlink socket子系统(XFRM)的漏洞,漏 ...

最新文章

  1. numpy.savetxt()保存两列
  2. pandas中两个dataframe差集
  3. searchsploit漏洞查找工具使用指南(exploit-db.com 离线工具 exploitdb)
  4. 在matlab中怎么录制音频_怎么录制淘宝页面中的视频?简单方法,轻松搞定
  5. Unicode 和 UTF-8 有什么区别?
  6. iqc工作职责和工作内容_监理工程师工作职责
  7. java中包装类介绍
  8. Magento事件与事件监听
  9. 从 AI、芯片到量子计算,阿里达摩院发布 2020 十大科技趋势
  10. 华为云媒体査勇:华为云在视频AI转码领域的技术实践
  11. 移动端h5 隐藏滑动滚动条
  12. CodeForces round 753 problem A Linear Keyboard(线性键盘)
  13. 为什么mysql填不了数据库_求助,为何我的数据不能写入数据库
  14. 以十年维度思考技术的发展
  15. go语言加解密算法 md5 sha256
  16. Github优秀Android开源项目,值得引用与学习(图文结合~~~)
  17. Python获取抖音视频链接
  18. 体感互动LED显示屏系统|体感互动屏幕|体感互动大屏软件
  19. Android蓝牙系统框架和代码架构
  20. 《自控力》第四章读书笔记

热门文章

  1. SAP各模块表清单及逻辑关系介绍
  2. GL_TEXTURE_WRAP系列参数的取值
  3. 基于STM32的红外万能遥控器完整教程
  4. 【C语言】统计素数并求和
  5. 软件工程在线画图工具
  6. 天轰穿视频非知识点总结
  7. 基于Multisim的循环彩灯控制器仿真设计
  8. arm linux 看库的依赖,Linux命令查看X86平台 ARM平台上可执行文件与库的依赖关系...
  9. 迁移学习—Geodesic Flow Kernel for Unsupervised Domain Adaptation
  10. php滚动播报,卫星云图滚动播放(实时更新)