V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
CrazyArmy
V2EX  ›  程序员

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

  •  
  •   CrazyArmy · 2019-02-05 19:09:21 +08:00 · 3203 次点击
    这是一个创建于 2152 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    0x00 开始

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

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

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

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

    pic1

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

    笔者查一下壳子

    pic2

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

    那我们载入 IDA 开始分析

    我们可以看到其pdb_path

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

    pic3

    0x01.分析 Loader

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

    pic4

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

    pic5

    pic6

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

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

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

    pic7

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

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

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

    pic8

    Sub_401F00函数内容具体如图:

    pic9

    pic10

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

    pic11

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

    pic12

    pic13

    pic14

    如下图所示:

    pic15

    pic16

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

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

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

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

    pic17

    线程 sub_404670如下图:

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

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

    若存在则直接退出线程。

    pic18

    pic19

    0x02 木马本体

    Loader释放了在此路径:C:\inter\mdstcv.exe释放了木马mdstcv.exe

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

    如下图所示:

    pic20

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

    pic21

    获取主机名称

    pic22

    获取系统版本信息

    pic23

    pic24

    木马与 C&C 的交流

    pic25

    Sub_402ba0函数

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

    pic26

    下载攻击者的指定文件

    pic27

    执行下载文件

    pic28

    再次进行信息发送以及接受

    pic29

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

    0x03 关联

    首先看看 VT 的查杀情况

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

    pic30

    微步云沙箱的结果

    恶意行为:

    pic31

    低危行为:

    pic32

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

    程序流程图:

    pic33

    木马 C&C 服务器域名:

    pic34

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

    pic35

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

    pic36

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

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

    pic37

    程序运行流程图也很类似

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

    pic38

    0x04 总结

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

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

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

    其中这个样本在字符串的隐藏上做的还是很不错,不同的地方有不同的加密,有的不单单有移位加密同时也有一些作者自己写的混淆。同时这个样本调用了很多冷门 API 进行绕过杀软 API 的检测以及运用进程通讯做到白加黑的效果。但是这个样本的后缀名欺骗真的没法去讲,所以这也估计大大降低了入侵成功的可能性

    0x05 木马样本

    样本连接

    4 条回复    2019-02-07 14:28:29 +08:00
    Greenm
        1
    Greenm  
       2019-02-06 09:28:27 +08:00 via iPhone   ❤️ 1
    写得不错,v2 上鲜能看见恶意样本分析的帖子,值得学习。

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

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


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

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

    手机回复,纸上谈兵,有不对的欢迎指正。
    CrazyArmy
        2
    CrazyArmy  
    OP
       2019-02-06 21:56:26 +08:00
    由于修改了一些
    新文章地址:https://www.v2ex.com/t/533241#reply0
    CrazyArmy
        3
    CrazyArmy  
    OP
       2019-02-06 21:59:20 +08:00
    @Greenm 文章我修改了,有新连接的
    感谢您的意见
    很有可能是 Unicode 控制字符 RLO 实现的倒序,但可能提取过程中复原了
    那个白加黑是我措辞的原因,应该不能说是白加黑,只是通过创立进程匿名管道以及写入指令实现的复制文件
    再次感谢你的回复
    FrankHB
        4
    FrankHB  
       2019-02-07 14:28:29 +08:00
    hash 一样。。。一看还以为用了啥高端的碰撞构造技术……结果全一样?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1300 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:45 · PVG 01:45 · LAX 09:45 · JFK 12:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.