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

2019-02-05 19:09:21 +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:\inter

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

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

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

Sub_401F00函数内容具体如图:

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

线程回调函数StartAddress分析:主要是创造与cmd.exe的进程通信,让cmd.exe 来执行函数 WriteFile 来释放木马文件 C:\inter\msdctv.exe

如下图所示:

打开注册表启动项(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:\inter\mdstcv.exe释放了木马mdstcv.exe

但很巧的是这个释放的木马和原木马的hash是相同的

如下图所示:

所以这个主体木马就是很照常的对环境变量进行检查以及对注册表启动项进行检查释放 C:\inter 文件夹下的木马文件以及建立进程通信防杀但是与之不同的自然是其与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 的检测以及运用进程通讯做到白加黑的效果。但是这个样本的后缀名欺骗真的没法去讲,所以这也估计大大降低了入侵成功的可能性

0x05 木马样本

样本连接

2995 次点击
所在节点    程序员
4 条回复
Greenm
2019-02-06 09:28:27 +08:00
写得不错,v2 上鲜能看见恶意样本分析的帖子,值得学习。

我看了一下,既然释放出来的样本和原始一样,那应该叫做复制吧,不是刚好很巧的哈希一样。刚好这一块没有看到你贴出来 ida 的分析图,不知道调用了哪些 api 实现的。这一块感觉可以改一下措辞。

进程通讯白加黑的这个技术也可以拓宽来讲一下。一般意义上的白加黑是用签名文件加 Dll 劫持来实现的,既然这里这个技术实现不一样,感觉可以作为亮点来突出一下。


一般会通过反转文件名和后缀来实现欺骗的效果,虽然过时,在 APT 的攻击套路中还是很常见的,配合一些探针,有时候有奇效。

另外威胁情报这一块很有价值,如果想让报告变得更加饱满有深度,可以尝试挖下这个组织的其他信息,当然这块还是有点难度的。

手机回复,纸上谈兵,有不对的欢迎指正。
CrazyArmy
2019-02-06 21:56:26 +08:00
由于修改了一些
新文章地址:https://www.v2ex.com/t/533241#reply0
CrazyArmy
2019-02-06 21:59:20 +08:00
@Greenm 文章我修改了,有新连接的
感谢您的意见
很有可能是 Unicode 控制字符 RLO 实现的倒序,但可能提取过程中复原了
那个白加黑是我措辞的原因,应该不能说是白加黑,只是通过创立进程匿名管道以及写入指令实现的复制文件
再次感谢你的回复
FrankHB
2019-02-07 14:28:29 +08:00
hash 一样。。。一看还以为用了啥高端的碰撞构造技术……结果全一样?

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

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

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

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

© 2021 V2EX