欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

技术剖析:海莲花OceanLotus Encryptor样本分析

来源:本站整理 作者:佚名 时间:2015-06-09 TAG: 我要投稿

上周,360发布了海莲花的报告,数据收集,分析,解释,加工方面很能让人折服,但是看了其对所谓OceanLotus Encryptor样本的分析,和我自己观查到的,我觉得有些地方描述的不正确,而且其对病毒攻击流程的分析语焉不详——一个APT攻击报告不能详细说明其攻击流程,其他数据分析的再好我觉得都是没有说服力。
很多地方看似是语法错误导致的,其实是其并没有完全分析清楚攻击流程所导致的,比如 :

另外关于64位强密匙绕过杀软,其实质就是OceanLotus Encryptor 在创建进程时候的用到的一个64bytes的随机数,并没有什么其他的作用。还有一点释放的同名doc不是木马本身释放的,而是由其子进程解密母体文件,然后覆盖母体文件的所产生的。
综述
该病毒我首次注意到是今年4月初,时就觉得这个病毒非同一般,但是却没有深入的去分析,直到看到360的报告,我觉得写的很模糊,所以就详细分析了下。该样本所采用的技并不是说很复杂,但是各种技巧的组合还是很有杀伤力的,很好的绕过了杀软的检测,具有很强的隐蔽性,而且从代码逻辑与攻击流程来看,该病毒绝对不是脚本小子,freshman所能写的。关于是不是专门针对中国的APT攻击,直到我分析完该样本,我觉得这应该不是专门针对中国大陆的APT攻击,原因有两点:
1、在其释放的文件中,有一个%appdata%/tencent/qq.exe的文件。该文件文件信息伪造为国际版qq.exe 如下图,

2、在核心功能组建中,bundle.rdb会创建这样一个路径用于存放从服务器下载的其他攻击组件

如果是专门针对大陆的APT攻击,未免有点牵强。因为大陆很少会用到yahoo,而且qq政府工作人员也不会去用国际版,就算有那也很少。如果说是APT攻击人员的失误,那么这这两点将是致命性的错误,会造成攻击失败。
综上我觉得如果说非要说是APT攻击,那么该攻击要么是针对驻外大使馆,或者海外中国企业的职工。qq用于自己使用,yahoo 则应该用于与当地人民,工作交流使用,这样就能说的通了。
当然这只是我的推断,代表个人意见,如有不对勿喷。
攻击流程
2.1 攻击流程
该样本攻击流程分为三个阶段:第一阶段为释放,总共释放了两个文件%appata%tencent/qq.exe,%appdata/tencent/plugin/ Com.Tencnt.DirectShow/bundle.rdb。第二阶段注入代码到傀儡进程中让其加载核心功能组建bundle.rdb。第三阶段为核心功能组件,负责收集被感染系统信息,执行远程命令,并与服务器通信上传这些信息


过程解释:
1.恶意电子邮件附件中包含Oceanlotus
2.在%TEMP%中自拷贝自身
3.释放同名白doc文件,释放下一阶段执行体qq.exe与核心功能组建bundle.rdb文件
4.qq.exe运行之后注入代码到傀儡进程中
5.傀儡进程加载bundle.rdb
6.收集账号信息
7.上传被感染机器信息到服务器,获取服务器指令
3.1dropper技术细节
Dropper,即360命名的OceanLotus Encryptor运行之后,首先会在%temp%中自释放一个副本,然后创建一个自进程,该进程命令行为%temp%[random].tmp  –help[parentpath] [0-9a-f]{64} .
然后结束进程。子进程创建之后,先获取filepath路径,即母体的路径,然后读取母体id为65的资源数据,并解密,随后覆盖原文件,释放doc文档。之后会检测是否运行在虚拟机里,检测完之后便会解密数据释放qq.exe,与bundle.rdb,注册mspaint键值,建立计划任务,创建qq.exe进程,结束运行。
3.1.1 判断运行参数,以判断自身是否为母体的子进程。这样是为了确保正确释放doc文件。

3.1.2然后接下来获取资源节数据并解密资源节id为65的资源,即为doc文件内容。
3.1.3.检测是否运行自虚拟机中,如果是则结束运行。
通过这段指令,就可以检测运行环境是否在vmware里,该反虚拟机技术为公开的vmware 与客户机之间会话用的一段指令序列。

反虚拟机的手段其实有很多,但是选择这种方式本人认为:一是相对检测注册表,进程名可靠性比较高,更加通用,二是这样子会更加的隐蔽,因为检测注册表,与进程名很容易被分析人员识别出来,而且代码量会大.
3.1.3接下来是对解密自身数据,为释放%appdata%/Tencent/qq.exe 与%appdata% Tencent /plugin/Com.Tencnt.DirectShow/bundle.rdb 做准备,值得注意的是解密数据不是整体存放的,而是分块解密,这样做是为了对抗杀毒软件, 扰乱分析人员的深入分析,其中解密算法相当复杂,下图为解密流程一部分:

3.1.4 解密之后设置注册表,伪装为mspaint的注册表信息,分别设置
HKCU/SOFTWARE/mspaint 值为bundle.rdb的路径。
HKLM/SOFTWARE/mspaint 值为qq.exe的路径。
3.1.5将qq.exe 加入计划任务
每过十五分钟启动一次%appdata%/Tencent/qq.exe

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载