干货分享丨Office漏洞分析(上篇)(ms漏洞列表)
cac55 2025-05-11 14:17 21 浏览 0 评论
今天的文章是 i 春秋论坛作者ERFZE表哥发布的文章,关于CVE-2017-11882及利用样本分析,文章篇幅较长,阅读约12分钟。
漏洞描述
成因:Windows的公式编辑器EQNEDT32.EXE读入包含MathType的OLE数据,在拷贝公式字体名称时没有对名称长度进行校验,使得攻击者可以通过刻意构造的数据内容覆盖栈上的函数返回地址,从而劫持程序流程。
影响版本:Microsoft Office 2007 Service Pack 3, Microsoft Office 2010 Service Pack 2, Microsoft Office 2013 Service Pack 1, Microsoft Office 2016
漏洞分析
笔者复现及分析环境:Windows 7 Service Pack 1、Microsoft Office 2010、x32dbg、IDA 7.0
EQUATION.exe存在:
设置注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\EQNEDT32.EXE:
Debugger键值为x32dbg路径。
生成POC:
打开该文档,于WinExec( )函数处设断:
成功断下后,查看栈中返回地址:
继续向上查看栈,发现调用WinExec( )的函数:
通过IDA分析sub_4115A7功能:
跟进sub_41160F查看:
未校验长度,直接使用strcpy( )函数,此处应该就是漏洞触发位置。进一步确定具体位置:
于0x411658处设断,重新运行。第二次成功断下后,查看ESI寄存器指向内存内容:
此时ECX寄存器值为0xC,即复制48个字节到EDI寄存器指向内存,而var_28实际大小只有36个字节:
到达函数结束处:
leave指令执行完毕后,栈顶0x18F1D0处值为0x430C12,即调用WinExec( )。而传递参数正是0x18F350指向内存中的cmd指令:
成功弹出计算器:
下面对使用到的POC进行简要分析,各变量含义由命名可知,RTF文档格式并非本文重点。
首先判断命令长度是否小于43,而43这个数字是因为:
上图选中部分是插入命令处,具体偏移由POC中COMMAND_OFFSET(0x949*2)变量给出。
将命令插入到构造数据中之后,函数返回拼接好的OLE。下面将OLE嵌入到RTF文档中:
摩诃草(APT-C-09)组织某样本分析
MD5:0D38ADC0B048BAB3BD91861D42CD39DF
于0x411658处设断,在第二次断下时,各寄存器值如下:
继续执行到函数结束处leave指令:
0x18F230地址处值0x430C47即覆盖后的函数返回地址:
而该地址处指令是ret,有些出乎意料。继续向下执行,来到0x18F3B0处,正是0x18F234地址处值:
这方才是构造者意欲执行的指令。经过蓝色方框中的一系列运算后,EBX指向是真正的Shellcode:
上述内容均可在OLE中查看(路径\xl\embeddings):
将OLE0x1000—0x1520中数据复制到一bin文件后,通过IDA查看。sub_247功能如下:
该函数接受的第二个参数即上文提到的EBX指向地址,于OLE中位置是0x1040,而0x1040+0x558处内容如下:
故该函数第一个功能是修正PE文件头。第二个功能流程如下:
将0x1040+0x558后的PE文件数据写入到%APPDATA%\MSBuild.exe中。第三个功能流程如下:
将%APPDATA%\MSBuild.exe写入注册表run项键值lollipop中。
由于文章篇幅较长,我们分了上/下篇为大家分享,请大家持续关注哦~
相关推荐
- 三菱PLC新手必备!20个案例带你打通编程逻辑!!!
-
在当今自动化蓬勃发展的时代,三菱PLC已然成为众多自动化爱好者和从业者踏入控制领域的首选利器。无论是小型的自动化生产线,还是智能家居系统的搭建,三菱PLC都发挥着举足轻重的作用。在接下来的内容...
- 一文教你看懂三菱PLC定位指令应用
-
一动作描述1、分别介绍各个定位指令的使用规则;2、使用定位指令控制伺服步进,(以脉冲加方向的方式);3、M8029应用注意事项。二硬件设备1、三菱PLC:FX3U-32MT;2、步进电机和步进驱...
- 电气人,三菱Q系列和FX PLC系列之间的区别你都知道吗?
-
PLC软元件大比拼,Q系列VSFX系列,你的选择是什么?家,对每个人都很重要;爱,也是。对工程师来说,PLC就像他们的家,用代码搭建的爱。今天,咱们说说三菱PLC里的Q系列和FX系列,看看它们软元件...
- 三菱PLC中定位指令DRVA的使用案例
-
三菱PLC绝对定位指令DRVA使用案例深度解析:从入门到进阶一、案例引入:伺服电机绝对定位控制用户需求:工厂自动化生产线需要对工件进行精准定位,误差必须控制在极小的范围内。这要求伺服电机能够在特定位...
- 三菱FX-PLC设计一个通电和断电均延时的梯形图
-
任务描述设计一个通电和断电均延时的梯形图。当X000由断变通时,延时10S后Y0得电;当X000由通变断时,延时5S后Y000断电。程序#电工交流圈##PLC##三菱PLC##梯形图#...
- 三菱R系列PLC硬件组态案例2(三菱plc硬件结构图)
-
概述本例中将详细介绍模拟量输出模块R60DAV8的使用方法硬件组态设置CPU:R04ENCPU(内置RJ71EN71集成一个以太网口和CC-LinkIEField接口)电源:R62P串行模块:RJ...
- 新手必看:三菱FX PLC输入接线(三菱fx plc教学视频)
-
导读:对于学习三菱PLC编程的初学者,熟悉和掌握PLC输入接线是必须的。PLC输入接线,根据输入端可以接的元件大致可以分为两线制和三线制。通过下文学习三菱FXPLC的输入接线。一个基本回路需要哪三个...
- 这几种方法教你三菱PLC如何控制变频器,对比,哪种最适用
-
变频器是一个执行机构,它的作用就是驱动三相异步电动机,一些高性能的变频器也可以驱动同步电机,甚至增加编码器反馈实现伺服功能。至于如何驱动,就靠PLC控制实现。在工控行业中,PLC与变频器是最常见的一种...
- 三菱PLC编程实例(三菱plc编程实例大全)
-
三菱PLC编程实例-正反转电路PLC控制控制要求:通过PLC程序控制实现三相异步电动机的正反转控制(正反转切换不需要进行停止可直接切换),且设备具有过载保护、短路保护。注:切换方向时,正运行方向立即...
- 三菱plc的数据类型(PLC的基础)(三菱plc常用的型号)
-
三菱PLC的数据类型根据其软元件和用途可分为以下几类:1.位(Bit)用途:表示开关状态(ON/OFF)。软元件:`X`(输入继电器)、`Y`(输出继电器)、`M`(内部继电器)、`S`(步进继电...
- 三菱R系PLC高级应用(三菱plc高级编程实例)
-
三菱R系PLC高级应用一、模块配置1.添加模块打开GXWorks3,新建工程,选择PLC型号。添加CPU,系统提示设置模块。模块标签,用于在程序中使用标签对模块的参数设置和模块的状态读取。样本注...
- 三菱PLC特殊功能辅助继电器-分类总结清单
-
1.FX系列PLC2.Q系列PLC3.A系列PLC关注我,学习更多电气知识!...
- [三菱PLC] 三菱FX各系列轴输出和插补说明
-
三菱FX系列PLC当下常用的有FX3SA、FX3GA、FX3U、FX5U(IQ-F)。这几个系列里对应晶体管型号的主机具备轴定位功能。之前呢,FX3SA、FX3GA、FX3U只能让单轴单独...
- 三菱PLC的几种类型(常用的三菱plc)
-
三菱PLC分几种类型,其中这几种要记住三菱PLC分几种类型,今天分享大家分享三菱PLC分几种类型。一、PLC的类型:1、小型PLC一体式结构、I/O点数:256点(384点)多用于单机控制如:FX1...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)