记一次蔓灵花 APT 组织针对巴基斯坦定向攻击样本的分析

2019-02-06 21:55:42 +08:00
 CrazyArmy

近日蔓灵花 APT 组织巴基斯坦进行一次定向攻击

因为微步在线情报的 dalao 已经写过了,连接在这里 [微步在线报告] “蔓灵花”团伙发起新一轮攻击活动

我这个弱鸡就分享一下我的分析记录吧

0x00 开始

样本一开始文件名是:Update Required Case Enq No 192_2018.docx.com

稍微吐槽一下,我也不知道为啥 APT 组织这么想的

.com 后缀的欺骗太容易看出来了

样本截图如下:(笔者没勾去隐藏文件后缀名)

用到的方法是文件后缀名欺骗

笔者查一下壳子

该程序应该由 c 编写的而且通过这个能看出这是一个WinMain入口的win32GUI 程序

那我们载入 IDA 开始分析

我们可以看到其pdb_path

c:\Users\Asterix\Documents\Visual Studio 2008\Projects\28NovDwn\Release\28NovDwn.pdb

0x01.分析 Loader

载入 IDA 后可以看到入口的WinMain 函数

Sub_401140函数里面的窗口回调函数如图,并没有任何问题

调用ShowWindow函数将程序窗口设为隐藏,以达到隐蔽运行的目的

那我们工作的重点是分析sub_401330 函数

调用mkdir 函数创建文件夹C:\intel

Sub_401F00函数:通过修改注册表HKEY_CURRENT_USER\Environment

增加**%AppId%键,键值为:C:\intel\msdtcv.exe**

就是注册环境变量%AppId%为 C:\intel\msdtcv.exe

Sub_401F00函数内容具体如图:

调用CreateThread创造线程,线程回调函数 StratAdress

Paramter 为:

线程回调函数StartAddress分析:主要是创造与cmd.exe的进程通信,用 WriteFile 函数向匿名管道中写入一段 cmd 命令(copy 源文件路径 C:\intel\msdtcv.exe),然后让cmd.exe 执行木马自身文件(Update Required Case Enq No 192_2018.docx.com)复制到 C:\intel\msdtcv.exe

解密出环境变量%ComSpec%

获取环境变量%ComSpec%的路径

得到结果:cmd 的路径

建立与 cmd.exe 的匿名管道进行通讯,并创立子进程 cmd.exe

调用 WriteFile 函数向 cmd.exe 写入 copy 指令实现复制文件

如下图所示:

打开注册表启动项(HKEY_CURRENT_USER\Software\Microsoft\Windows\Currentversion\Run)

判断启动项是否存在如果存在不重新写启动项,不打开木马文件转向下面执行

如果不存在则调用CreateThread创建线程sub_404670来写入开启启动项然后退出进程

将后续工作交给msdtcv.exe这个木马

线程 sub_404670如下图:

打开注册表(HKEY_CURRENT_USER\Software\Microsoft\Windows\Currentversion\Run)

判断是否存在mdstcv键,如果不存在则创建mdstcv键,写入cmd /c start %AppId% && exit键值关闭注册表

若存在则直接退出线程。

0x02 木马本体

Loader将自身复制并重命名到此路径:C:\intel\mdstcv.exe

所以,这个文件和原木马的hash是相同的

如下图所示:

所以这个主体木马就是很照常的对环境变量进行检查以及对注册表启动项进行检查以及建立进程通信执行 copy但是与之不同的自然是其与C&C 服务器的交流,从下图我们可知,写了一个死循环一直获取从 C&C 服务器回显的指令。

获取主机名称

获取系统版本信息

木马与 C&C 的交流

Sub_402ba0函数

通过C&C 服务器域名:framworksupport.net来获取ip:162.222.215.90,端口:80 建立 socket 连接

下载攻击者的指定文件

执行下载文件

再次进行信息发送以及接收回显

发送信息

接收回显

可见这个木马具有基础的 RAT 功能(下载文件,执行文件,接收回显,探测系统变量)

0x03 关联

首先看看 VT 的查杀情况

截止发帖的今天已经有 46 款杀毒软件查杀此木马

微步云沙箱的结果

恶意行为:

低危行为:

这个收集系统相关硬件的指纹信息这部分应该在sub_4037B0函数中 笔者没有进行详细的分析,同样也有很多混淆,那就请有兴趣的读者自己练手了哟。

程序流程图:

木马 C&C 服务器域名:

反查一下域名可见 这个域名是在2019-1-04注册的 而且与之通讯的样本有两个

其中一个是笔者分析的这个在2019/01/17被捕获

另一个2019/01/09被捕获的样本,笔者调出了微步云沙箱的记录

经过比对后,发现这两个样本的pdb_path相同

程序运行流程图也很类似

这就有很大的可能这两个样本出自一人之手

0x04 总结

那这个木马也就这么告一段落了

笔者其实也有一些地方看得不是很明白,而且有的地方描述的也不是很清楚,如果各位读者 dalao 能看出笔者文中的不对以及描述不清楚的地方请在评论区提出来,十分感谢

笔者把样本放到了末尾,请各位有心气的读者自行逆向分析

其中这个样本在字符串的隐藏上做的还是很不错,不同的地方有不同的加密,有的不单单有移位加密同时也有一些作者自己写的混淆。同时这个样本调用了很多冷门 API进行绕过杀软 API 的检测以及运用进程通讯做到进程防杀以及隐藏复制文件行为的效果。但是这个样本的后缀名欺骗真的没法去讲,但是如果是插入unciodeRLO控制字符实现后缀名倒转的话应该能起到一定的欺骗作用,但是图标也是一个大的问题,所以这个弊端也大大降低了入侵成功的可能性

0x05 木马样本

样本连接

这文章经过一次修改.......

2901 次点击
所在节点    程序员
9 条回复
boywhp
2019-02-06 22:14:24 +08:00
同学你是不是发错地方了? 这地方就不是搞安全的, 大部分是搞 web 的
hxndg
2019-02-06 23:22:26 +08:00
很赞,这几年看到这种纯代码方向的帖子很少了,流量倒是大了
dalieba
2019-02-07 01:24:32 +08:00
@hxndg 同赞
pod
2019-02-07 01:38:58 +08:00
有种逛看雪的感觉
whatsmyip
2019-02-07 09:28:34 +08:00
同赞
TotoroSora
2019-02-07 21:30:36 +08:00
这种文章看起来很舒服,支持一下
congeec
2019-02-08 14:39:39 +08:00
@boywhp 所以更应该发
发到 freebuf 也行
red0range
2019-02-08 19:34:27 +08:00
@hxndg emm,作为曾经的安全人员表示,相同类型的文章我们每周要交 3 篇。
而且,过来人表示,基本可以确定是为了找工作发的,毕竟当年都这么干过。

v2 适合发产品,不适合发分析,发看雪、freebuf、52、t00ls,那是国内搞安全常去的地方。
hxndg
2019-02-08 20:20:32 +08:00
@red0range 追求影响力,或者单纯记录都很正常,目的不同而已。况且我不觉得作者只发了 v2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/533241

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX