查看原文
其他

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

CrazymanArmy 看雪学院 2019-05-25

萌新第一次发帖,请各位dalao海涵。

 

近日蔓灵花APT组织对巴基斯坦进行一次定向攻击,因为微步在线情报的dalao已经写过了,链接在这里:


https://x.threatbook.cn/nodev4/vb4/article?threatInfoID=1137


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



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



 

经过笔者分析这个Update Required Case Enq No 192_2018.docx.com是一个DownLoader下载者木马。



0x01.Downloader-初始化加载模块


这个初始化加载模块实现了将自身加到注册表启动项,以及将自己本体文件拷贝到C:\intel下。

 

载入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)

 

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

 

若存在则直接退出线程。

 



0x02. Downloader-下载功能模块


当初始化模块结束后,完成文件重命名复制以及注册表自启动后。

 

msdtcv.exe随即启动,按照初始化模块的操作进行了一遍检查后,开始与C&C服务器进行交流。

 

从下图我们可知,写了一个死循环一直获取从C&C服务器回显的指令。

 

获取主机名称:

 

获取系统版本信息:

 

 

木马与C&C的交流:

 

Sub_402ba0函数

 

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

 

 

向C&C服务器发送上线信息以及请求下一步指令的报文。

 

报文如下:

 

下载攻击者的指定文件:

 

执行下载文件(文件地址如图):

 

 

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

 

发送信息以及下一步请求:

 

接收回显:

 

由于C&C的那个木马下载的页面不能正常访问,木马也不能被下载,所以笔者没办法对下一步木马的操作进行分析。



0x03 关联


首先看看VT的查杀情况。

 

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

 

微步云沙箱的结果。

 

恶意行为:

 

低危行为:

 

这个收集系统相关硬件的指纹信息这部分应该在sub_4037B0函数中。


笔者没有进行详细的分析,同样也有很多混淆,那就请有兴趣的读者自己练手了哟。

 

程序流程图:

 

木马C&C服务器域名:

 

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

 

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

 

 

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

 

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

 

 

程序运行流程图也很类似,这就有很大的可能这两个样本出自一人之手。



0x04总结


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

 

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

 

笔者把样本放到了附件,请各位有心气的读者自行逆向分析。(点击阅读原文即可获取附件)

 

其中这个样本在字符串的隐藏上做的还是很不错,不同的地方有不同的加密,有的不单单有移位加密同时也有一些作者自己写的混淆。同时这个样本调用了很多冷门API在一定程度上阻碍了病毒分析的步伐。但是这个样本的后缀名欺骗真的没法去讲,但是如果是插入unciode的RLO控制字符实现后缀名倒转的话应该能起到一定的欺骗作用,但是图标也是一个大的问题,所以这个弊端也大大降低了入侵成功的可能性。

 

并且该下载者木马可以通过重命名拷贝到 C:\intel文件夹下

 

通过修改注册表达到自启动的目的,攻击者可以修改相应的回显shellcode来改变木马插件的下载内容,在这里看来这个样本还是值得一分析的。



- End -


看雪ID:CrazymanArmy              

https://bbs.pediy.com/user-780480.htm


本文由看雪论坛 CrazymanArmy 原创

转载请注明来自看雪社区



热门图书推荐:

立即购买!



征题正在火热进行中!

(晋级赛Q1即将于3月10日开启,敬请期待!)



推荐阅读
















公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com


点击下方“阅读原文”

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存