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 定位漏洞

◆ 调试漏洞, 定位漏洞触发点,分析漏洞成因

  1. 定位漏洞触发模块/函数/过程

在分析一处点附近堆栈的时候,溢出点下面的堆栈一般是刚刚调用的函数的上一层函数堆栈;溢出后可能已经破坏,溢出点上面的堆栈是刚刚执行的函数堆栈,可以发现一些模块内的地址,由此判断触发的模块.

比如:

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

  1. 定位模块/函数/过程内具体子过程

    在 定位好的模块/函数/过程内部起始位置下断点,然后单步补过,注意观察栈的返回地址,什么时候被覆盖.

  • 把数据窗口定位到刚才被覆盖的位置,然后从刚才找出的模块过程开始位置单步补过跟

    • 跟进结果如下

      分析:

      可以看到,刚好执行完

      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,就能执行栈中的自定义代码了.

原文地址:https://www.cnblogs.com/leibso-cy/p/Vulnerabilities-Lotus_Blossom.html

时间: 2024-09-21 01:44:31

Lotus Blossom 行动分析的相关文章

Lotus分析

一 Lotus的任务 Lotus是一个消息通知服务,topic和subscription是多对多的关系.后面我加了一个发送自定义邮件和自定义短信的功能. 产品里面有个监控报警和通知列表.监控报警里创建alarm时会让选通知给谁.供选择的就是topic.如果alarm被触发,就会发通知给和该alarm绑定的topic,topic再查找它的所有subscription,都发通知. 二 Lotus代码分析 1.lotus的两个进程 lotus-api lotus-dbsync 2. lotus-dbs

电影功夫熊猫使用的单词分析

你英语四级过了吗?功夫熊猫看了吗?功夫熊猫使用了995个英语单词,你会说很简单吧,别急,我给你分析一下,这些单词中有236个单词不在四级词汇范围内,花两分钟时间看看你是否认识这些单词,单词后面跟的数字表示该单词在电影中出现的次数. 你也可以获取本文的分析程序,这样你就可以分析其他电影了.看一部电影之前,先通过这种方式分析一下,然后学习自己不认识的单词,然后再去看电影,如此这样坚持下去,英语水平就会有很大的提升. words(995): 1. you 2492. the 1893. i 1844.

云计算下的数据库 分析 以及部分互联网公司眼下採用的新型数据库总结

云计算下的新型数据库技术 摘要:在这个信息化的时代,我们的一举一动都离不开与数据打交道,特别是云计算和大数据时代的到来,使得传统数据库的性能已无法满足海量数据的实时交易查询需求.在性能和成本的双重压力之下.云计算下的数据库须要寻找突破之路. 1.简单介绍: 云计算通过整合.管理和调配分布在互联网中的全部计算资源,以统一的界面同一时候向用户提供服务. 互联网提供的各种计算形式的应用以及提供这些服务的数据中心和软硬件基础设施.提供的服务成为软件即服务(SaaS),数据中心的软硬件基础设施即为云,这样

云计算发展与BPaaS构建企业Private PaaS分析

1. 云计算发展概述 云计算的发展[2],追根溯源是从并行计算.分布式计算.网格计算.虚拟化.SaaS.SOA 等技术混合演进的结果. 1959年6月,ChristopherStrachey 发表虚拟化论文,虚拟化是今天云计算基础架构的基石. 1996年,网格计算Globus 开源网格平台起步,网格计算是聚合分散资源,支持大型集中式应用,从技术层面面向科研计算. 2000年,SaaS 兴起. 2004年,Google 发布MapReduce 论文.Hadoop 就是Google 集群系统的一个开

lotus notes 数据库中附件的批量导出 2

Lotus Notes 数据库中附件的批量导出 Lotus Notes 数据库是一种文档型数据库,其中文档的富文本域中往往嵌入许多附件(如 Word 文档.PDF 文档.Excel 文档等).用户时常需要将这些附件导出到其他系统中进行使用处理.然而当需要导出许多文档中的附件时,只能手动逐个打开各个文档并将附件导出,然后再将附件导入到其他系统中,那么,当附件数量很大时则会大大降低效率.本文从用户角度出发,分析了若干附件批量导出的需求并给出了相应的解决方案. 引言 Notes 数据库是一种文档型数据

BestCoder Round #91 1002 Lotus and Horticulture

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6012 题意: 这几天Lotus对培养盆栽很感兴趣,于是她想搭建一个温室来满足她的研究欲望. Lotus将所有的nn株盆栽都放在新建的温室里,所以所有盆栽都处于完全相同的环境中. 每一株盆栽都有一个最佳生长温度区间[l,r][l,r],在这个范围的温度下生长会生长得最好,但是不一定会提供最佳的研究价值(Lotus认为研究发育不良的盆栽也是很有研究价值的). Lotus进行了若干次试验,发现若第ii株盆

NSA Fuzzbunch分析与利用案例

Shadow Brokers泄露出一份震惊世界的机密文档,其中包含了多个 Windows 远程漏洞利用工具.本文主要介绍了其中一款工具Fuzzbunch的分析与利用案例 1 整体目录介绍 解压EQGRP_Lost_in_Translation-master.zip文件(下载地址:https://github.com/x0rz/EQGRP_Lost_in_Translation).总共包含三个目录: 1. windows目录针对Windows操作系统的利用工具和相关攻击代码: 2. swift目录

缺陷漏测分析:测试过程改进

一.漏测的定义 所谓漏测,是指软件产品的缺陷没有被测试组发现而遗漏到了用户那里,却最终被用户所发现.如果产品在用户那里出现问题,产生的后果是非常严重的.在软件开发过程中,缺陷越早被发现,发现和解决缺陷所花的成本就越小.如果缺陷是在测试组测试中发现的而不是被用户使用时发现的,那么所花的成本将小得多.如果缺陷是被开发组在开发过程中发现的,那么所花的代价将更小.因此,进行漏测分析.预防漏测.促使缺陷尽可能在开发过程的早期被发现,是非常有意义的,它有利于降低软件产品成本.提高软件产品质量. 二.漏测分析

云计算下的数据库 分析 以及部分互联网公司目前采用的新型数据库总结

云计算下的新型数据库技术 摘要:在这个信息化的时代,我们的一举一动都离不开与数据打交道,特别是云计算和大数据时代的到来,使得传统数据库的性能已无法满足海量数据的实时交易查询需求,在性能和成本的双重压力之下,云计算下的数据库需要寻找突破之路. 1.简介: 云计算通过整合,管理和调配分布在互联网中的所有计算资源,以统一的界面同时向用户提供服务.互联网提供的各种计算形式的应用以及提供这些服务的数据中心和软硬件基础设施.提供的服务成为软件即服务(SaaS),数据中心的软硬件基础设施即为云,这种虚拟化资源