Lotus Blossom 行动分析
1 漏洞介绍
1.1 代号 - Lotus Blossom行动
漏洞利用率很高 从2012 —2015或者说最近都还在使用 CVE-2012-0158
Lotus Blossom--莲花: 描述了对东南亚各国政府和军事组织的持续网络间谍活动。该报告公开了目标、工具和攻击技术,并提供了关于莲花营销活动的完整详情,包括所有妥协指标。42小组 使用PaloAlto网络自动聚焦™平台发现了这些攻击,这使得分析人员能够将数百万个报告的结果与野火所产生的结果关联起来。
1.2 具体信息
CVE-2012-0158 漏洞是一个典型栈溢出、长度可控漏洞,该漏洞是微软Office中的MSCOMCTL.ocx中MSCOMCTL.ListView控件检查失误造成的,攻击者可以通过精心构造的数据来控制程序的EIP实现任意代码执行。
CVE-2012-0158 的微软漏洞编号是ms12-027。
MSCOMCTL.ocx 可以认为是一种COM组件动态链接库,以ocx为后缀。MSCOMCTL.ListView 控件可以认为是MFC的列表控件了。
Windows系统下,除了某种编程语言的控件之外,还提供一些通用控件 封装在COM组件以.ocx为后缀的动态链接库里面。
2 分析使用的环境和工具
◆ 漏洞分析环境与工具:
◆ 操作系统: Window 7专业版(32位)
◆ 软件: office 2003 sp3
◆ 工具: Ollydbg, windbg, IDA Pro
◆ OfficeMalScanner, python模块oletools(rtfobj)
注:
OfficeMalScanner 可以用来扫描解析 office 文档格式。
python模块oletools, 可以用来执行 rtfobj 命令。
3.1 获取POC
获取Poc的主要途径有:
◆ 网络,论坛,Metasploit
◆ http://binvul.com/
◆ https://www.exploit-db.com/
◆ https://www.securityfocus.com/
3.2 复现漏洞
◆ 安装office 2003 sp3
◆ 执行poc以及样本
3.2.1 搭建环境执行poc获取现场
◆ 用OD附加目标Office,把poc若拽到Word中运行

分析:
覆盖的返回地址是0x127aac.
3.2.2 定位漏洞
◆ 调试漏洞, 定位漏洞触发点,分析漏洞成因
定位漏洞触发模块/函数/过程
在分析一处点附近堆栈的时候,溢出点下面的堆栈一般是刚刚调用的函数的上一层函数堆栈;溢出后可能已经破坏,溢出点上面的堆栈是刚刚执行的函数堆栈,可以发现一些模块内的地址,由此判断触发的模块.
比如:

原创手绘:

分析: 如果不确定是那一层调用的返回的溢出地址,那就在RETN/RET处下断点. 最接近现场而未移交权力的ret所在模块就是目标模块,即 哪个函数的ret 被Poc代码覆盖了,就是我们的目标模块.
这里的模块是MSCOMCTL!0X275C8A0A.
顺势,找到0x0X275C8A0A所在过程的起始位置

定位模块/函数/过程内具体子过程
在 定位好的模块/函数/过程内部起始位置下断点,然后单步补过,注意观察栈的返回地址,什么时候被覆盖.
把数据窗口定位到刚才被覆盖的位置,然后从刚才找出的模块过程开始位置单步补过跟

跟进结果如下

分析:
可以看到,刚好执行完
0x275c8a05C: call MSCOMCTL.0x275c876d
就将栈空间覆盖修改了.
进入0x275c8a05C: call MSCOMCTL.0x275c876d 跟进

3.2.3 分析漏洞
找出该模块

使用IDA分析:
根据前面的分析结果:
触发漏洞API: MSCOMCTL!0x275C876D
造成溢出的实际位置:MSCOMCTL!0X275C87CB

结合动态调试,查看相关参数异常:

分析:
可以看到,参数0x8282,异常的大
在POC中搜寻以下0x8282查看是否这个数字来源于文档设定
使用010editor打开

分析长度数值果然是通过文档数据设定的,还看到了我们覆盖返回地址的数据41414141
验证栈的覆盖的精确性

4 利用漏洞编写写EXP
这个时候直接使用 一个 jmp esp,就能执行栈中的自定义代码了.
Lotus Blossom 行动分析的更多相关文章
- CVE-2012-0158:Microsoft Office MSCOMCTL.ocx 栈溢出漏洞调试分析
0x01 Lotus Blossom 行动 在 2015 年 6 月,国外安全厂商 Palo Alto Networks 的威胁情报团队 Unit42 发现了一起针对东南亚政府的一次间谍行为,试图获取 ...
- Lotus分析
一 Lotus的任务 Lotus是一个消息通知服务,topic和subscription是多对多的关系.后面我加了一个发送自定义邮件和自定义短信的功能. 产品里面有个监控报警和通知列表.监控报警里创建 ...
- b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...
- b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释
我最近一直在找适合将来用于公司大型bs,b2b b2c的基础架构. 实际情况是要建立一个bs架构b2b.b2c的网站,当然还包括wap站点.手机app站点. 一.现有公司技术人员现状: 1.熟悉asp ...
- Lotus 迁移到Exchange 2010 之准备使用Transport 同步Lotus 相关信息!
这里我们先来分析下Lotus迁移到Exchange2010 的一些原理,由于存在一定周期的共存时间,因此在共存期间必须来实现相应的同步计划,整个同步计划包含了如下的同步计划:
- 使用awstats分析iis站点的日志
环境:win7 + iis7 + perl(ActivePerl-5.20.1.2000) + awstats 7.3 一.找到iis日志所在目录 建议全部都打勾 二.安装perl AWStats是p ...
- Nmon 性能:分析 AIX 和 Linux 性能的免费工具
原文摘自: http://www.ibm.com/developerworks/cn/aix/library/analyze_aix/ 官网:http://www.ibm.com/developerw ...
- 52. 模版和设计元素——Lotus Notes的代码重用
不论是理论上还是实用上,代码重用都是编程的一个重要议题.可以从两个角度来讨论代码重用. 一是逻辑上代码以怎样的方式被重用.既可以通过面向对象的思想普及以来耳熟能详的继承的方式.比如先建了一个车的基类, ...
- NSA Fuzzbunch分析与利用案例
Shadow Brokers泄露出一份震惊世界的机密文档,其中包含了多个 Windows 远程漏洞利用工具.本文主要介绍了其中一款工具Fuzzbunch的分析与利用案例 1 整体目录介绍 解压EQGR ...
随机推荐
- DELPHI 让子窗体显示在任务栏上
重载 CreateParams 方法即可 声明: procedure CreateParams(var Params: TCreateParams);override; procedure TForm ...
- NOIp2018集训test-9-17(am)
这是一套去年在长沙考过的题,但是我当时就没理清楚+没写题解(我以前很多博客都写得跟shi一样,完全没有意义,看到就想打当时的我),所以又考得稀烂. T1.star way to heaven 容易想到 ...
- docker快速安装elasticsearch
一.选择版本,拉取镜像 docker pull elasticsearch:5.6.9 #不选择版本就是最新的 二.运行设置容器 # -d 表示在后台运行 docker run -d -p 9200: ...
- NX二次开发-UFUN读取本地文本文档uc4514a
1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_cfi.h> 5 #include <uf_ui.h> 6 7 us ...
- flutter 超出俩行点点点
Text( '${listItem["title"]}', overflow: TextOverflow.ellipsis, maxLines: 2, style: TextSty ...
- linux 重定向命令
标准输入,输出和错误 --------------------------------- 文件文件 描写叙述符 ----------------------------- ...
- HSF简单实现记录(基于 Pandora Boot 开发)
文章目录 声明 注意 安装轻量配置中心 启动轻量配置中心 配置 hosts 结果验证 开发工具准备 在 Maven 中配置 EDAS 的私服地址 验证配置是否成功 开发 demo下载 服务注册与发现 ...
- java执行顺序之深入理解clinit和init
原文地址:https://blog.csdn.net/qq_36522306/article/details/80582758 前言: 最近研究了深入理解JVM这本书中的知识,对java中各部分执行的 ...
- POJ2406-Power Strings-KMP循环节/哈希循环节
Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc&quo ...
- 2018今日头条湖北省赛【A】
[题目链接]https://www.nowcoder.com/acm/contest/104/A 这题就是很简单的几何题..md现场推了很久的cos sin仿佛像个zz.自己都想给自己一巴掌. 题意就 ...
