Lotus Blossom 行动分析

Posted leibso-cy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,就能执行栈中的自定义代码了.

以上是关于Lotus Blossom 行动分析的主要内容,如果未能解决你的问题,请参考以下文章

从用户的接触|认知|兴趣|行动来全面分析运营数据

公告关于Memcached DRDoS攻击风险分析,华为云计算一直在行动

大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析

炫“库”行动-人大金仓有奖征文-金仓库分析型数据库

将Python远控隐藏在文档图片中的行动分析

将Python远控隐藏在文档图片中的行动分析