针对终端目标的持续钓鱼尝试——“苦象”攻击组织近期样本分析
时间:2025年05月22日
1.概述
2012年以来,安天安全研究与应急处理中心(安天CERT)持续关注分析了来自南亚次大陆方向的网络攻击活动,对相关组织进行归因画像,并对其中最为活跃的组织命名为白象[1]。我们发现该地缘安全方向有多个活跃组织进行频繁活动,2016年开始,安天陆续发布报告《潜伏的象群》、《折纸行动》等,先后命名了“白象”、“苦象”、“暗象”、“幼象”、“儒象”等多个攻击组织。其中“苦象”组织,又名“BITTER”、“蔓灵花”,与白象一样,是具有南亚地缘政治背景的国家级APT组织,其攻击活动最终最早可追溯至2013年。其攻击目标长期聚焦于中国、巴基斯坦等国的政府机构、军工企业、能源与科研机构,旨在窃取敏感政治、军事及科技情报。近期,安天CERT监测发现该组织持续活跃,通过邮件投递多种载荷,图谋攻击我国相关单位和人员,意在对目标信息系统进行持久化控制与敏感信息窃取。
本报告针对“苦象”组织在2025年初进行的攻击波次,分析其攻击战术技巧,重点解析其攻击武器样本,为国内用户和周边国家提升防范能力提供参考。
2.钓鱼邮件分析
2025年初,攻击者使用互联网邮箱账号发送大量鱼叉式钓鱼邮件。其中一例典型的钓鱼邮件,主题为“Ministry of Foreign Affairs Document”(外交部文件),邮件携带两个恶意附件。
表2-1 攻击活动特征卡片
攻击时间 |
2025年初 |
攻击意图 |
持续控制、窃密 |
诱饵类型 |
CHM帮助文件 |
攻击手法 |
鱼叉式钓鱼邮件、chm帮助文件诱饵 |
武器装备 |
远控木马、窃密木马 |
图2-1 “苦象”组织投递的鱼叉式钓鱼邮件
2.1 附件1:压缩包
表2-2 恶意邮件附件1
病毒名称 |
Trojan/Win32.Agent |
原始文件名 |
03_2024N_MFA_doc.rar |
MD5 |
F26C1083B42ADECBBEF7108D1C2A798C |
文件大小 |
2.79 KB (2,866 bytes) |
文件格式 |
Archive/Eugene_Roshal.RAR[:Roshal ARchive] |
最后内容修改时间 |
2024年10月24日 14:48:12 |
解压密码 |
无 |
包含文件内容 |
03_2024N_MFA_doc.chm |
钓鱼邮件携带的附件之一为压缩包形式,解压缩后为CHM帮助文档形式,受害者打开后会添加计划任务定时执行powershell命令,从而获得持久化入口。
表2-3 恶意CHM文档
病毒名称 |
Trojan/HTML.Agent[Downloader] |
原始文件名 |
03_2024N_MFA_doc.chm |
MD5 |
4B91AB01AD75B5485D4F8D33FA3C0AFF |
文件大小 |
10.5 KB (10,756 bytes) |
文件格式 |
Document/Microsoft.CHM[:Microsoft Compiled
HTML Help] |
时间戳 |
2024年10月24日 14:48:12 |
CHM(Compiled HTML Help)[3]是微软为Windows平台开发的编译型帮助文档格式,基于复合文档结构将HTML页面、图像、CSS样式表及脚本资源通过LZX压缩算法整合为单一文件(.chm后缀),兼具高压缩率与快速检索特性。其通过目录树(.HHC)和索引(.HHK)实现结构化导航,并支持JavaScript、ActiveX控件及ms-its:协议超链接,可动态执行脚本或调用系统功能,因此广泛用于软件帮助系统(如Office)、电子书和技术文档分发。然而,由于CHM依赖Windows原生解析器hh.exe运行,攻击者常滥用其脚本执行能力(如通过WScript.Shell启动恶意代码),并利用文件格式的信任度伪装为合法文档传播恶意负载。
本事件中攻击者利用CHM帮助文档内部嵌恶意脚本, CHM打开后创建名称为ChromeCrashReport的计划任务,每15分钟执行一次。计划任务产生的上线包携带主机信息请求C2服务器(****centrum.com),并接受服务器下发的指令。下发指令存储在Public用户文档下,命名为fc.cdt,并通过cmd执行。
图2-2 CHM中恶意脚本
通过持续监测和分析发现,该攻击组织利用fc.cdt下载压缩包并解压执行,会在ProgramData目录下载后续攻击载荷。
图2-3 攻击者投递的攻击载荷
2.2 附件2:PDF文档
钓鱼邮件携带的另一个附件为PDF文档形式,PDF中插入了恶意脚本。PDF文档点击后,会运行嵌入的恶意脚本,跳转至攻击者搭建的钓鱼网站。脚本中的恶意连接使用了短链接的形式,当前短链接指向的服务已经停止。短链接的解析结果显示,目的地址服务疑似用于针对邮箱的钓鱼攻击,目标地址为:https://****filedownload.com/mail.I29.com.session.expired/mod_prc.login.again。该连接使用较长的字符,在中间使用仿冒邮箱地址字符欺骗攻击目标。
表2-4 钓鱼邮件附件2
病毒名称 |
Trojan/PDF.Agent[Phishing] |
原始文件名 |
MFA_2024_note_document.pdf |
MD5 |
86EF4F713FFAA1810067ED609AD32055 |
文件大小 |
69.5 KB (71,247 bytes) |
文件格式 |
Document/Adobe.PDF[:AdobeReader-1.5] |
图2-4 “苦象”组织投递的鱼叉式钓鱼邮件附件PDF文档
3.攻击载荷分析
3.1 wmRAT远控木马:mvcnrs.msi
wmRAT远控木马是攻击中用于对目标进行信息收集、文件操作、命令执行的恶意代码,本章节中3.1、3.2、3.3均是wmRAT同家族不同配置的远程控制木马。
表3-1 mvcnrs.msi样本标签
病毒名称 |
Trojan/Win32.WmRAT[APT] [8] |
原始文件名 |
mvcnrs.msi |
MD5 |
B4A8C113A24A2878DBCBE911EE7CED9B |
处理器架构 |
Intel 386 or later processors |
文件大小 |
739.00 KB (756,736 bytes) |
文件格式 |
Archive/Microsoft.MSI |
时间戳 |
2024:08:08 13:03:06 UTC |
编译语言 |
Microsoft Visual C/C++ |
加壳类型 |
无 |
MSI(Microsoft Software Installer)[7]文件是微软定义的安装程序包,通过Windows Installer解析安装。其复用了微软为早期版本之前定义的OLE(对象链接与嵌入)复合文档格式,因此其文件头|D0 CF 11 E0|也与OFFICE文件一致。由于MSI文件会被Widows Installer解析,并执行其中定义的安装指令,因此其不仅广泛被用于微软和其他软件厂商进行软件发布或提供升级补丁,也被攻击者用来包裹和运行恶意代码。
本样本为规避检测便使用MSI格式打包其核心载荷,运行后将在C:\Windows\Installer目录下释放文件并运行,释放文件的信息如下表所示。
表3-2 释放文件样本标签
病毒名称 |
Trojan/Win32.WmRAT[APT] [8] |
原始文件名 |
Binary._3A169D0A20F57B076AAB5D938251A2DB |
MD5 |
DC4BA30C67986D6213FCDD40280A4449 |
处理器架构 |
Intel 386 or later processors |
文件大小 |
91.50 KB (93,696 bytes) |
文件格式 |
BinExecute/Microsoft.PE[:X86] |
时间戳 |
2023-11-01 17:55:54 UTC |
编译语言 |
Microsoft Visual C/C++ |
加壳类型 |
无 |
释放样本运行后,首先执行延时操作。执行24个sleep函数,每个sleep睡眠100秒。并穿插有申请释放内存的动作。
图3-1 延时操作一
延时动作还包括创建线程,执行1000次循环,循环函数的功能无实际意义。
图3-2 延时操作二-循环1000次无意义函数
样本后续行为亦穿插有大量的延时操作,在此不再赘述。样本随后尝试对****console.com的60099端口建立连接。
图3-3 回连C2域名
截至样本分析时,该域名已失效。若连接成功建立,样本将创建线程来接收服务器的相关指令并执行。线程函数如下图所示。
图3-4 远控木马主要功能函数
远控木马指令的功能包括:屏幕截图,文件上传与下载,信息收集,命令执行等。具体远控木马指令功能见下表:
表3-3 远控木马指令功能表
指令 |
功能 |
5 |
发送截屏数据到服务器 |
6 |
接收文件数据 |
8 |
从服务器接收信息,寻找指定文件处理后发送至服务器 |
10 |
打开指定的URL,并获取文件 |
11 |
查找指定目录文件,并进行操作 |
13 |
搜索指定目录文件,将文件信息发送至服务器 |
15 |
获取信息上传,包括计算机名、用户名、磁盘占用率等 |
16 |
进程创建、利用管道进行数据传输 |
20 |
关闭指定文件流 |
21 |
向指定文件流中写入数据 |
23 |
打开指定文件流,并向服务器传输数据 |
26 |
发送文件数据到远程服务器,并计算发送进度 |
3.2 wmRAT远控木马:vncrms.exe
表3-4 vncrms.exe样本标签
病毒名称 |
Trojan/Win32.WmRAT[APT] [8] |
原始文件名 |
vncrms.exe |
MD5 |
EFB54F507F2B7796DF5EDD923935C2C2 |
处理器架构 |
Intel 386 or later processors |
文件大小 |
92.00 KB (94,208 bytes) |
文件格式 |
BinExecute/Microsoft.PE[:X86] |
时间戳 |
2024:08:29 19:30:35 UTC |
编译语言 |
Microsoft Visual C/C++ |
加壳类型 |
无 |
样本与mvcnrs.msi释放的样本为同源样本,且同样与****console.com的60099端口进行连接,两个样本的功能完全一致,因此不再赘述。
图3-5 回连C2域名
3.3 wmRAT远控木马:urvcs.exe
表3-5 urvcs.exe样本标签
病毒名称 |
Trojan/Win32.WmRAT[APT][8] |
原始文件名 |
urvcs.exe |
MD5 |
1AD144815A97407F2FFAB6A54BE11262 |
处理器架构 |
Intel 386 or later processors |
文件大小 |
92.00 KB (94,208 bytes) |
文件格式 |
BinExecute/Microsoft.PE[:X86] |
时间戳 |
2023:11:02 20:56:08 UTC |
编译语言 |
Microsoft Visual C/C++ |
加壳类型 |
无 |
样本也与mvcnrs.msi释放的样本为同源样本,且同样尝试与****console.com进行连接。但连接的目标端口为80。除此以外,两个样本的功能完全一致,因此不再赘述。
图3-6 回连C2的目标端口80
3.4 MiyaRAT远控木马:nsrzx.exe
MiyaRAT远控木马是“苦象”组织2024年开始使用的新型远程访问木马,主要用于针对政府、国防、能源等高价值目标的网络间谍活动,本报告中3.4、3.5、3.6章节分析的样本均为MiyaRAT家族。
表 nsrzx.exe样本标签
病毒名称 |
Trojan/Win32.MiyaRAT[APT] [9] |
原始文件名 |
nsrzx.exe |
MD5 |
B11D50D48CB10C40DCAD8B316253885D |
处理器架构 |
Intel 386 or later processors |
文件大小 |
446 KB (456,704 bytes) |
文件格式 |
BinExecute/Microsoft.PE[:X86] |
时间戳 |
2024:09:13 18:56:19 UTC |
编译语言 |
Microsoft Visual C/C++ |
加壳类型 |
无 |
该样本的PDB为:“C:\DRIVE_Y\EDRIVE\repos\Leov3_client\Release\Leov3_client.pdb”。Leo是一个比较常见的西方男名,源自拉丁与的狮子,也可能是一个缩略词。但可推测为该组织的内部项目、小组名称或人员名称,V3为对应文件的版本号。 。
图3-7 样本PDB路径信息
样本首先获取C2地址,通过WSAConnectByNameW连接C2服务器****psvc.com。
图3-8 回连C2域名
样本随后对系统信息进行获取,包括用户名、计算机名、磁盘信息等。
图3-9 获取系统信息数据
样本将获取的系统信息构造为下图所示的结构。即:“DiskInfo|ComputerName|UserName|MalwarePath|UserProfile|SystemBuildVersion|3.0|”。
图3-10 获取的全部系统信息
样本将系统信息加密后发送给C2,随后循环接收攻击者指令并执行。样本支持的远控木马指令整理如下表:
表3-6 远控木马指令功能表
指令代码 |
功能 |
GDIR |
目录枚举 |
DELz |
文件删除 |
GFS |
目录枚举(递归) |
SH1start_cmd、SH1start_ps |
进程创建(cmd、powershell) |
SH1、SH2 |
命令传递 |
SFS |
文件传输,二级指令UPL1文件上传,DWNL文件下载 |
GSS |
屏幕截图 |
SH1exit_client |
进程退出 |
攻击者指令明文经过0x43异或加密,接收指令后会对指令进行解密。下面对每个远控木马指令进行具体分析。
图3-11 与0x43指令代码异或加密
GDIR指令,类似于windows的dir指令,用于列举文件和子目录信息。
图3-12 GDIR指令——获取系统信息
DELz指令,用于对指定文件进行删除。
图3-13 DELz指令——删除文件
GFS指令,计算指定目录中所有文件和子目录的大小。计算结果分三次发送给C2,以“@@GSF=总文件大小”开始,以“=@@GFS”结束。
图3-14 GFS指令——目录枚举获取文件和子目录大小
SH1start_cmd、SH1start_ps指令,用于启动cmd、powershell,执行管道中的命令,并将执行结果返回给C2。
图3-15 SH1start_cmd、SH1start_ps——执行cmd、ps指令
SH1、SH2指令,用于执行写入管道的shell指令。SH2会视情况在写入前后执行短暂的睡眠。
图3-16 SH1、SH2指令——写入管道shell指令
SFS指令,用于文件的上传和下载。
图3-17 SFS指令——文件上传和下载
GSS指令,用于对目标机器执行屏幕截图动作。对应执行的功能逻辑为获取屏幕设备上下文(Device Context),创建兼容的内存DC,用于离屏绘制。默认创建分辨率为1920(0x780)x1080(0x438)的位图对象,用于存储截图数据,将屏幕内容拷贝到内存位图中,实现截图功能。同时对截图图像的宽高分别进行原图1/3和1/5的缩小处理,可能意在降低图片大小,减少后续传输带宽。也可能说明获取截图动作主要目的是为了快速判断当前主机的运行状态和攻击价值。
图3-18 GSS指令——屏幕截图
SH1exit_client指令,退出当前木马程序。
图3-19 SH1exit_client指令——退出
3.5 MiyaRAT远控木马:winzxlz.msi
表3-7 winzxlz.msi样本标签
病毒名称 |
Trojan/Win32.MiyaRAT[APT] [9] |
原始文件名 |
winzxlz.msi |
MD5 |
F3943F24B7BD752B19DAB25A5409F20C |
处理器架构 |
Intel 386 or later processors |
文件大小 |
519.00 KB (531,968 bytes) |
文件格式 |
Archive/Microsoft.MSI |
时间戳 |
2024:10:25 19:02:01 UTC |
编译语言 |
Microsoft Visual C/C++ |
加壳类型 |
无 |
样本运行后,将在C:\Windows\Installer目录下释放文件并运行。释放文件的信息如下表所示。
表3-8 释放文件标签
病毒名称 |
Trojan/Win32.MiyaRAT[APT] [9] |
原始文件名 |
Binary._CCA3E30A6A966CBDD6526C4D6229BFFA |
MD5 |
B6631F979E854C4C313F48AC85009A61 |
处理器架构 |
Intel 386 or later processors |
文件大小 |
463.00 KB (474,112 bytes) |
文件格式 |
PE32 executable (GUI) Intel 80386, for MS Windows |
时间戳 |
2024:10:25 19:02:01 UTC |
编译语言 |
Microsoft Visual C/C++ |
加壳类型 |
无 |
样本的PDB路径为:“C:\Users\DOMS\KugelBlitz\VSRepos\DEV\Leo_v4Client\Release\Leov4_client.pdb”,此处可以与3.4节的“Leov3”分析相互验证,LEO为对应小组、人员和项目编号,V4则是版本号。。
图3-20 PDB信息
释放样本的核心功能位于函数sub_F49DE0。运行后将尝试对****psvc.com的46346端口进行连接。
图3-21 样本要连接的目标域名和端口
样本随后对目标机器的用户名称、机器名称、木马文件路径、%userprofile%环境变量、磁盘信息、系统版本等数据进行收集,进而对收集的信息加密后发送至目标服务器。
图3-22 获取主机系统信息
循环等待服务器下发的指令并执行对应功能。
图3-23 循环接收指令执行
木马的指令功能与nsrzx.exe样本相同,在此不在赘述。
3.6 MiyaRAT远控木马:wsrvx.exe
表3-9 wsrvx.exe样本标签
病毒名称 |
Trojan/Win64.MiyaRAT[APT] [9] |
原始文件名 |
wsrvx.exe |
MD5 |
EAE58B38AA86E0FEEC37A529807F3FA0 |
处理器架构 |
Intel 386 or later processors |
文件大小 |
145 KB (148,992 bytes) |
文件格式 |
BinExecute/Microsoft.PE[:X64] |
时间戳 |
2024:10:25 18:59:18 UTC |
编译语言 |
Microsoft Visual C/C++ |
加壳类型 |
无 |
该样本回连的C2地址和端口也与nsrzx.exe样本相同,均为****psvc.com的46346端口。
图3-24 连接C2域名和端口
wsrvx.exe样本为64位程序,除软件架构不同外,wsrvx.exe样本行为与nsrzx.exe基本一致,在此不在赘述。
3.7 C#远控木马:winapricin.exe
该样本为“苦象”组织近些年使用的C#语言开发的远控木马,使用 .NET Framework 作为运行时框架,确保在Windows系统中的高兼容性,支持跨版本运行,通过兼容性优势降低开发成本,其技术演进方向与南亚APT组织的典型特征一致。
表3-10 winapricin.exe样本标签
病毒名称 |
Trojan/Win32.APosT [10] |
原始文件名 |
winapricin.exe |
MD5 |
A3DD7F773CD3B374071CC9C98A0DAE4F |
处理器架构 |
Intel 386 or later processors |
文件大小 |
40.50 KB (41,472 bytes) |
文件格式 |
BinExecute/Microsoft.PE[:X86] |
时间戳 |
2078-11-13 15:18:10 UTC |
编译语言 |
Microsoft Visual C# |
加壳类型 |
无 |
该样本文件名用win开头,应为让用户误认为系Windows文件的社工技巧。时间戳为2078年,显然样本经过了时间戳构造,以回避时区比对,增加溯源难度,但也带来了一个非常鲜明的异常点。
样本首先创建了一个有序列表,有序列表注册并存储了不同的MessageType来定义不同的功能。
图3-25 注册存储含远控木马功能的MessageType
每个MessageType类型包含有name、opcode和Message成员,每个Message成员均指向一个具体的类。不同类及其功能见下表。
表3-11 不同Message的远控木马类功能
MessageType对应的类 |
类的功能 |
drawon_Drives |
遍历获取驱动器信息 |
drawon_callhelimer |
遍历指定目录的文件夹以及文件信息 |
drawon_filechangebegin |
根据文件变化,如文件添加与重命名。对字典中指定ID的文件信息进行修改 |
drawon_changeSend |
处理文件信息修改 |
drawon_changeend |
从字典中移除指定ID的文件信息 |
drawon_facts |
未实现 |
drawon_startcommand |
启动cmd |
drawon_Shell |
写数据至管道并读取处理管道的输出 |
drawon_Stopcmd |
未实现 |
drawon_RefreshClient |
客户端刷新 |
drawon_changestart |
文件下载 |
drawon_copyme |
文件复制 |
drawon_deletefile |
文件删除 |
drawon_ScreenCapture |
屏幕截图 |
drawon_folderdetailcount |
获取指定目录及其子目录的文件和文件夹详情 |
drawon_stopfiledownloading |
设置静态变量stop_filedownloading 为True |
drawon_startshellwithpath |
启动一个指定路径的命令行shell |
drawon_SearchFileExtension |
根据指定的目录和文件扩展名查找文件 |
drawon_ScreenCaptureLive |
实时屏幕截图 |
drawon_ScreenCaptureLiveStop |
设置静态变量StopRecording 为True |
drawon_StartPS |
启动PowerShell |
drawon_powercommand |
获取并处理命令请求 |
样本随后执行fn_rlioeltiy459ytghvjkfg函数。fn_rlioeltiy459ytghvjkfg函数首先执行一段延时操作,随后对临时目录下的Sample.txt进行文件写入,写入内容见下图代码。
图3-26 延时操作
样本随后循环尝试与C2建立网络连接,每次连接失败后随机睡眠1-4秒再次连接。
图3-27 获取目标域名对应IP
目标域名经解码后为:“****webset.com”,解析ip为:***.***.57.194目标端口为51620。
图3-28 编码的C2域名
成功建立连接后,样本将执行Read和sendmessage函数。
图3-29 与C2建立连接
其中,Read函数用于从socket接收数据,即接受远程服务器指令。
图3-30 Read函数接收远程数据
sendmessage函数用于收集目标机器的信息并发送。
图3-31 sendmessage函数发送收集信息
成功建立连接后,受害机将根据攻击者发送的不同指令执行相应的功能。
3.8 Python窃密器:updater.exe
该样本是近期发现“苦象”组织的窃密木马,基于Python脚本开发,后通过PyInstaller工具实现伪编译,将其转换为PE程序,从而能在Windows系统里直接运行,攻击者利用Python开发木马一方面是效率和成本考虑,一方面是伪编译后的样本,其恶意功能并不在PE的代码节中,与普通PE样本有一定差异,具有一定的规避检测能力。
表3-12 updater.exe样本标签
病毒名称 |
Trojan/Win64.Agentb [11] |
原始文件名 |
updater.exe |
MD5 |
F7642CE7B3BA1B18F1175C0390D7EA11 |
处理器架构 |
Intel 386 or later processors |
文件大小 |
7.57 MB (7,943,567 bytes) |
文件格式 |
BinExecute/Microsoft.PE[:X64] |
时间戳 |
2023-06-08 09:25:00 UTC |
编译语言 |
Python |
加壳类型 |
无 |
该木马解包后的全部文件如下图所示,主要功能位于名为chrome的pyc文件中,核心功能为窃取浏览器凭证信息。浏览器凭证(Browser Credentials)是用户通过浏览器访问网络服务时,由浏览器自动存储或生成的身份验证数据集合,包括但不限于,本地存储的网站用户名和密码、Cookie信息(包括会话令牌、身份标识和个性设置信息)、记录的表单自动填充数据(电子邮件地址、身份证号等)、SSL/TLS客户端证书、公私钥对等等。攻击者获取了浏览器凭证就拥有了与受害者一致的网站和应用访问权限,从而可以获取更多信息数据、实施撞库猜测和其他攻击操作。
图3-32 pyinstxtractor.py解包后的文件
pyc文件由python3.11生成,对chrome.pyc添加文件头后,使用pycdc进行反编译的结果如下图所示。由于部分opcode不支持,pycdc仅能对pyc文件的一部分opcode成功进行反编译。
图3-33 pycdc反编译结果
对chrome.pyc文件进行反编译如下图所示。
图3-34 chrome.pyc的反编译结果
根据chrome.pyc的反编译还原的python源代码如下表所示。其主要功能为:读取名为“Local State”的文件(浏览器的Local State用于保存浏览器本地加密密钥(Master Key),该密钥用于解密存储的登录密码和Cookie等敏感数据),提取加密的 master key并解密浏览器数据,将解密后的结果保存至名为“my_file.txt”的文件中。
表3-13 chrome.pyc部分反编译结果
import
os import
json import
base64 import
sqlite3 import
win32crypt import
shutil with
open('Local State', 'r', encoding='utf-8') as f: local_state = json.loads(f.read()) encrypted_key
= local_state['os_crypt']['encrypted_key'] master_key
= base64.b64decode(encrypted_key) master_key
= master_key[5:] master_key
= win32crypt.CryptUnprotectData(master_key, None, None, None, 0)[1] with
open('my_file.txt', 'wb') as binary_file: binary_file.write(master_key) |
4.关联溯源
从资源运用分析,本次攻击活动中发现的C2: ****console.com、****psvc.com、****webset.com均可关联到“苦象”组织的历史C2。
“苦象”组织近年来的攻击活动中,多次利用钓鱼邮件投递CHM恶意载荷。本次攻击活动使用的CHM中,恶意脚本如下图所示:
图4-1 “苦象”使用的CHM格式文件内嵌恶意JS脚本
“苦象”组织在成功攻陷目标机器后,往往会向目标机器投递后续的恶意组件。本次攻击活动发现的后续组件中, wmRAT以及MiyaRAT特种木马与“苦象”组织历史使用的特种木马的代码结构与支持的远控木马指令基本保持一致。攻击者将其本次攻击活动中使用的MiyaRAT特种木马称为Leo,包括32位和64位的载荷,且进行了V3、V4两个版本的演进。
5.攻击战术分析与威胁战术框架映射
通过样本分析,和样本攻击实施的依赖条件分析,可以复盘其战术过程。其以社工技巧构建带有一定欺骗性的钓鱼邮件内容,其未使用漏洞利用作为攻击入口,而是通过PDF和CHM的内置脚本执行能力,试图绕过防护方的检测能力,实现后续的载荷分发。其中有多个功能等效载荷,可能为适配不同目标,或进行免杀加工。本次系列攻击活动共涉及ATT&CK框架中11个阶段的18个技术点,具体行为描述如下表:
表5-1 本次攻击活动的技术行为描述表
ATT&CK阶段 |
具体行为 |
注释 |
侦察 |
搜集受害者身份信息 |
搜集受害者网络账号、工作内容等信息 |
搜集受害者组织信息 |
搜集受害者所属工作单位信息 |
|
资源开发 |
获取基础设施 |
搭建载荷分发节点、远程控制C2等 |
能力开发 |
恶意组件研发制作 |
|
初始访问 |
网络钓鱼 |
攻击者通过鱼叉式钓鱼邮件投递恶意附件 |
执行 |
诱导用户执行 |
初始诱饵伪装成CHM文档诱导用户执行 |
利用命令和脚本解释器 |
利用CMD命令执行下载及持久化行为 |
|
持久化 |
利用计划任务/工作 |
利用计划任务执行CMD命令 |
凭证访问 |
从存储密码的位置获取凭证 |
从Chrome浏览器缓存窃取凭证 |
发现 |
发现浏览器信息 |
木马获取Chrome浏览器固定位置 |
发现系统信息 |
木马获取系统信息 |
|
发现系统所有者/用户 |
木马获取系统用户账号信息 |
|
发现文件和目录 |
木马获取系统指定目录信息 |
|
收集 |
屏幕捕获 |
木马获取系统屏幕截图 |
命令与控制 |
编码数据 |
木马对窃密数据加密后传输 |
数据渗出 |
自动渗出数据 |
木马自动向C2传送窃密数据 |
使用C2信道回传 |
攻击者可能通过已有C2信道回传数据 |
|
影响 |
操纵数据 |
攻击者可能操纵受控机数据内容 |
将涉及到的威胁行为技术点映射到ATT&CK框架如下图所示:
图5-1 攻击行动和攻击执行体行为和战术能力映射图
6.检测和防御相关攻击活动所需安全能力评估
通过威胁事件详尽分析,得出攻击载荷执行体全生命周期中运行对象和运行动作的攻击过程,可进一步评估终端侧部署的安全防护软件应具备反病毒引擎和主动防御的关键能力映射矩阵。本次系列攻击活动的检测和防御关键能力点描述如表XX所示,安天AVL SDK反病毒引擎和智甲终端防护系统主防能力具备清单中所枚举的全部能力。
表6-1 对抗攻击行动和攻击执行体所需要的能力清单
攻击执行体 |
对象 |
动作 |
反病毒引擎 |
主动防御能力 |
|
预 |
投 |
鱼叉式钓鱼邮件 |
攻击者发送鱼叉式钓鱼邮件主题为外交部文件 |
1. 邮件元数据提取 |
1.(钓鱼邮件防护)邮件协议解析和提取邮件源数据,拆解出正文内容、附件文件名、附件文件和发件人等邮件对象元数据 |
邮件附件1:RAR压缩包 |
接收邮件附件1和附件2 |
1. RAR压缩包格式识别 |
1.(文件防御)设定文件防御全盘监控 |
||
邮件附件2:PDF文档 |
1. PDF数据流Stream对象解析 |
||||
加 |
执 |
邮件附件1:压缩包 |
邮件附件1:欺骗用户打开CHM文件 |
1. CHM格式识别 |
(进程防御)通过hh.exe调用WScript、Powershell和CMD等设定告警/拦截规则 |
邮件附件2:PDF文档 |
邮件附件2:打开PDF文档跳转攻击者搭建的钓鱼网站 |
恶意URL检测 |
(主机防火墙)监测应用程序访问C2服务器请求数据包,获取访问的IP、域名和URL,投递引擎检测,拦截威胁C2服务器访问请求数据包 |
||
持 |
CHM文件创建的系统计划任务 |
邮件附件1:CHM打开后创建计划任务 |
/ |
1.(进程防御)监控计划任务的创建/修改,拆解计划任务中执行对象的文件路径和命令参数后,投递引擎检测,删除威胁计划任务 |
|
致 |
过 |
CHM文件打开后创建计划任务的执行PE格式载荷文件 |
携带主机信息请求C2服务器 |
恶意URL检测 |
1.(主机防火墙)监测应用程序访问C2服务器请求数据包,获取访问的IP、域名和URL,投递引擎检测,拦截威胁C2服务器访问请求数据包 |
1.接受C2服务下发的指令并将下发指令 |
/ |
1.(文件防御)监控磁盘文件创建/修改,投递引擎检测,删除威胁文件 |
|||
远控木马wmRAT: |
1.执行下载的载荷文件 |
1. MSI格式识别、结构解析、签名验证、衍生文件递归检测 |
1.(进程防御)监控进程启动行为 |
||
远控木马MiyaRAT: |
1. PE格式识别 |
||||
C#远控木马: |
1. PE格式识别 |
||||
Python窃密器:updater.exe |
1.编译器/打包器的识别(py转exe) |
||||
目 |
Python窃密器:updater.exe |
载荷文件执行后窃取浏览器凭证数据 |
/ |
1.(主动防御)监控程序读取浏览器凭证行为 |
|
远控木马MiyaRAT: |
载荷文件执行远控指令-截屏 |
/ |
1.(主动防御)监控应用调用API截屏行为 |
7.防御思考
“白象”、“苦象”等攻击组织代表了一种作业风格,即其完全忽略暴露、甚至被曝光风险,进行大面积看起来水平不高的前导攻击。其将攻击者发起攻击的主动性优势发挥到最大,依托广泛撒网,捕捉概率事件。而这种行为方式,同样是APT攻击中的“持续”性的体现。安天研究者在2015互联网大会的技术报告《A2PT与“准APT”事件中的攻击武器》[12]中指出,APT不是单纯技术概念,必须关联其政经背景。A(高级性)具有相对性,其本质是攻击能力与防御能力的位势差,而P(持续)取决于攻击方的作业意志的持续和成本支撑能力,其可能是连接能力、也可能是持久化的能力、或者反复进入的能力。因此P才是APT的本质属性。我们今天需要做一个观点补充,P本身不止包括连接维持、持久化和反复进入的能力,更包括持续的尝试。
从本报告中分析的攻击载荷可以看出,本次活动攻击特征与该方向的威胁行为体一直以来的攻击风格一致,其整体技巧依然以电子邮件为主要攻击入口,采用广撒网的模式捕获小概率的机会。基于对我方相关机构的一定了解,对邮件内容有一定的社工技巧和包装,构造相应的工作邮件和文档来实现社工攻击,其并不使用漏洞来构造执行机会,而是直接采用在附件中嵌入恶意脚本或链接的形式。反映出攻击组织漏洞储备并不丰富,也说明其在“撒大网、撞运气” 阶段,尽量避免使用宝贵的漏洞资源,试图通过社工欺骗、格式嵌套等方式以较低的成本达成相关的攻击效果。
自2013年安天捕获该方向组织攻击活动开始,该方向组织一直采取相对野蛮粗暴的方式运行,但这种方式还在持续,也侧面说明了这种攻击是可能达成致效效果的。暴露我国部分政企和个人用户,在防御能力和安全意识上均存在盲点。在这些攻击过程中,都是以邮件为入口,直达被攻击人员的终端设备。由于电子邮件收发已经普遍使用加密协议,因此在政企机构网关出口和旁路流量侧,相关攻击已经高度不可见。而大量的移动办公、政企机构使用互联网免费信箱等情况,也可能导致攻击链路不在政企机构安全防御边界之内。这种攻击的成功率虽然并不高,但一旦得手,被控制主机终端的控制权就被攻击者取得,其主机信息资料和本机可访问的资源都可以被攻击者获取。相关主机和获取的凭证还会进一步成为攻击者进行横向移动、信任链传播的攻击入口。
而由于在较长的时间内国内安全投入的重点在于边界和流量安全盒子设备,在终端安全防护上投入始终占比较低,采购上采用低价中标模式,并未把有效安全防护和病毒查杀能力作为安全软件采购的考核指标,,甚至少数信息安全管理者已经认为反病毒一个功能性开关,只要打开就具备相应能力,而忽视了检测防护能力是依赖先进反病毒引擎和内核主防的持续运营迭代才能达成。未将防御资源和成本更多布置在攻击落地的关键点上,从而使得一定比例的国内政企终端处于低水平的防护之下,极易被类似攻击击穿。
针对主机安全环境侧,有许多需加强的关键应用防御点,如对开放端口、开放服务暴露面的有效收敛、对主机系统合理的配置加固、对浏览器、邮件(WEB和客户端)的有效防护,特别是对执行体的安全检查和执行动作管理和拦截。这些防护需要对主机策略的长期积累和持续运营需要构建起驱动级主防能力,才能捕获到深度安全事件,如果只是凭借一般性的应用层事件采集,一方面很多攻击无法识别、获取和留痕,另一方面发现的时候威胁已经感染扩散,没有实现将绝大部分威胁在第一次投放中拦截,也会给网管在管理上带来巨大的负担。
因此,从基础防护上来看,安全的支点重回主机系统侧,只有将有效的终端安全防护能力覆盖至每一个工作主机、每一个云工作负载、每一个移动办公终端,持续强化系统侧安全防御基石,并在此基础上构建端到端的安全运营闭环,形成网络安全运管体系与每一个端点的检测响应闭环、形成每一个端点资产间的协同联动闭环、形成安全厂商与用户侧安全情报消费闭环,才能够更好的防护威胁,提升对手的攻击成本。同时,由于关键人员的个人信箱,家庭主机,智能终端等设备也是相关的攻击点,在这种情况下事实上已经构成了政企侧安全防护能所需要的必要的安全延伸,因此需加强对移动办公,便携机的相应安全管理和感知能力,而不是“裸奔”或者依赖互联网的安全软件,使有效的威胁情报和感知能力逃逸出了政企侧联动的范围。
威胁是有效的试金石,尽管在这些年中,该地缘方向的威胁行为体未看到实质性的能力提升,但本身由于它攻击粗放的特点,其实是我相关机构和重点人员检验自身基础防护能力的度量衡,只有能够防护这一等级的攻击,才有可能防护更高水平的A2PT攻击。