概述
响尾蛇(又称SideWinder)APT组织是疑似具有南亚背景的APT组织,其攻击活动最早可追溯到2012年,主要针对其周边国家政府、军事、能源等领域开展攻击活动,以窃取敏感信息为攻击目的。
今年3月,奇安信威胁情报中心捕获到几例利用相关国家外交政策为诱饵的恶意样本。此类样本伪装成大使馆向巴基斯坦委员会的投资回信、建立港口防疫能力等热点信息开展攻击。一旦受害者执行此类恶意样本,初始LNK文件将从远程服务器下载恶意脚本执行,恶意脚本将释放展示正常的诱饵文档以迷惑受害者,并继续从远程服务器获取第二阶段恶意脚本执行。第二阶段恶意脚本中更新了在受害者计算机上部署相关恶意软件的流程,最后通过白加黑的方式加载最终的远程木马,控制受害者机器,从而窃取敏感信息。
本文将披露响尾蛇APT组织在2021年上半年攻击活动中更新的攻击手法及代码细节如下:
- 二阶段荷载不再使用HTA脚本直接将内存数据解码释放在本地,而是由发送本机信息后的回传数据进行后续下载
- 函数调用不再使用系统API,而是由自定义繁杂的函数名封装所需调用的API
样本执行流程如下图所示:
样本分析
基本信息
近期捕获的样本主要以外交、防疫政策相关信息为诱饵,样本基本信息如下:
- | - |
---|---|
Name | MD5 |
BGI-14.pdf.lnk | fa10f48243ea40298e0fa07787e4156c |
Building Port Resilience Against Pandemics (BPR) .doc (建立港口防疫能力) | 344b7370c6e61812eeb1cf1d737f27f3 |
poly pending orders.doc (poly待定订单) | 9016ed3c0fef18cfef81f71953e77572 |
其中BGI-14.pdf.lnk为外交政策相关样本,成功执行后,将展示给巴基斯坦委员会的投资回信,诱饵文档信息如下。
详细分析
原始样本为仿冒PDF的LNK文件,其样本图标仿冒了正常的文档文件。
LNK文件执行后,会通过mshta.exe加载远程服务器上的HTA文件执行。
其远程加载的HTA文件基本信息如下,该文件运行后将解码诱饵文件并展示给受害者,同时加载硬编码在脚本中的.NET DLL程序。
- | - |
---|---|
Name | HTA |
MD5 | 4bbbd405402534d871e0a9e2c6a5574d |
First Seen in Wield | 2021-03-05 17:15 |
FileType | JavaScript |
HTA文件运行后,首先检查本机的.NET Framework版本并根据版本信息下载后续Payload,默认值为v2.0.50727
接着通过WMI获取杀软名称和状态。
最后通过魔改Base64解码数据并带参数内存加载恶意DLL文件,其中参数1为第二阶段Loader下载地址,参数2为杀软信息及报错信息上传地址,参数3为加密状态的诱饵文档数据,参数4为是诱饵文档名称。
释放的诱饵文件为伪装成大使馆向巴基斯坦委员会的投资回信。通过诱饵文件可以得知,此次攻击活动发生在今年2月左右针对巴基斯坦外交政府。
在内存中加载的恶意DLL文件基本信息如下:
- | - |
---|---|
Name | App.dll |
MD5 | 74a06c666b1777ebf0e10580ba4e9d6b |
PEiD packer | Microsoft Visual C# / Basic .NET |
该DLL文件运行后,首先将参数3中编码后的诱饵文档数据解码释放在%temp%目录下,打开pdf诱饵文档以迷惑用户,若未成功释放诱饵文件,则向参数2地址上传相关错误信息。
接着程序将尝试从参数一下载地址获取第二阶段恶意荷载,该过程循环尝试3次,若下载成功则通过.CreateInstance创建实例加载后续文件,若均未成功下载,则休眠5s后向参数二地址上传相关错误信息。
第二阶段Loader基本信息如下
- | - |
---|---|
Name | ModuleInstaller.dll |
MD5 | 7a7a73c69a47ae542f63a15de34a7c99 |
PEiD packer | Microsoft Visual C# / Basic .NET |
样本运行后,首先会收集当前计算机的一些基本信息并格式化拼接起来上传到C2服务器:hxxp://mailmofagovpk.cdn-pak.net/2494/1/50382/3/3/1/1836350211/files-4f4899fa/1/cuui?data={本机信息},收集的信息包括用户名、计算机名、操作系统版本、CPU信息、内存信息、磁盘信息等
程序将收集到的信息上传到C2之后将会接受C2返回值并且尝试对其进行解析,若解析失败则不能进入到后续流程
请求的C2已在TI上有对应标签
该恶意DLL在和获取第一阶段返回值解密后,将字符提取切割为如下格式并调用魔改Base64函数进行解码,解码后的数据如下表所示
- | - | - |
---|---|---|
- | 加密字符 | 解密字符 |
0028 | jxbYB7DYyw6KyxrHjvXbDgXHC5zPBgvZtwfWmq== | %programdata%\AtlasFilesMap1 |
0074 | Ahr5CdOVl76HAwXTB7zHz747CgSUy7rUlxbHAY0UzxqVmJq0nc3XlZuWmZGYlZmVms3XlZe9mZyZntaYmdKVzMLSzxmTnty8ztjMztCVms4WBgfVAq== | http://mailmofagovpk.cdn-pak.net/2494/1/50382/3/1/1/1836350209/files-567e2fe7/1/plaoi |
0074 | Ahr5CdOVl76HAwXTB7zHz747CgSUy7rUlxbHAY0UzxqVmJq0nc3XlZuWmZGYlZmVms3XlZe9mZyZntaYmdKVzMLSzxmTzwvLmgzKmgmVms4SA7POzW== | http://mailmofagovpk.cdn-pak.net/2494/1/50382/3/1/1/1836350209/files-eee0fd0c/1/lkjhg |
0014 | qxrSyxngAwXLC56HCde= | AtlasFilesMap1 |
0010 | CMvRzxL8AxOUzxHL | rekeywiz.exe |
000C | rhvZzxiUzgXS | Duser.dll |
该DLL文件在对返回值解码后,将对各字符串进行拼接并创建对应的文件夹 "C:\ProgramData\AtlasFilesMap1\" ,同时调用下载函数获取后续数据。
程序在这里会下载plaoi、lkjhg两个文件并分别重命名为Duser.dll和gxjvwewc.vub(随机生成),其中gxjvwewc.vub是加密后的RAT,Duser.dll用于解密和加载gxjvwewc.vub。
后续payload成功下载,程序会在本地查找rekeywiz.exe文件并移动到C:\ProgramData\AtlasFilesMap1\文件夹内用于劫持加载当前路径下的Duser.dll,同时在文件夹内创建xml文件配置启动的.NET环境。
最后,程序将C:\ProgramData\AtlasFilesMap1\路径下的rekeywiz.exe写入到开机自启动注册表键中以实现本地持久化,同时创建计划任务防止进程掉线。
解密后释放在本地的DLL文件Duser.dll 基本信息如下:
- | - |
---|---|
Name | Duser.dll |
MD5 | 09fadfa260a969e76a5408c5be264e3f |
Creation Time | 2021-02-09 18:16:50 |
PEiD packer | Microsoft Visual C# / Basic .NET |
Duser.dll仍旧是.NET平台程序,攻击者在编译其他阶段加载器时均抹去了时间戳信息,出于疏忽遗漏修改了Duser.dll时间戳。通过该DLL文件的编译时间可以看出,该组织至少在2月上旬就开始策划此次攻击活动。与诱饵样本的时间内容也较为符合。
该DLL文件运行后将读取同级目录下的随机命名文件"gxjvwewc.vub",并进行解密,解密后通过内存加载该数据。
最终解密后的恶意数据信息如下
- | - |
---|---|
Name | SystemApp.dll |
MD5 | 401949801e605a64e4a43c9b5ed9231c |
PEiD packer | Microsoft Visual C# / Basic .NET |
最终的恶意DLL文件SystemAPP.dll仍为.NET平台程序。该程序加载起来后,首先进行初始化,从资源中解密配置信息。解密的配置信息包括恶意软件路径以及要收集的文件后缀名等信息,初始化结束后,创建两个定时器函数用于执行主要功能。
其中NullGetAlterCommand函数为通信函数,主要用于与c2通信,获取解析命令执行
解析C2返回数据,根据不同数据执行相应功能
支持的指令功能如下
- | - |
---|---|
指令 | 功能描述 |
获取系统基本信息,已安装程序信息,磁盘信息等保存到.sif文件 | |
获取文件列表保存到.flc文件 | |
将指定文件以及信息写入.fls文件 | |
修改配置信息 | |
更换c2地址 | |
更新是否上传文件参数 | |
重置想获取的特殊文件类型 | |
设置上传文件大小限制 | |
指定上传文件 | |
返回 |
部分功能代码如下,获取系统用户名,计算机名,杀软等信息以json格式写入.sif文件。
获取文件列表,将磁盘名,磁盘大小,磁盘类型,目录名,目录创建时间,文件名,文件大小等信息写入.flc文件。
修改配置信息,其中 URL地址被更新为hxxps://fqn-mil.net/202/dt1sarxU0sKRHOxGJuI19nTthaP1Df3yAauT4KJz/50382/2494/f1d1ddf8
另一个定时函数SingleFacadeMutatorMemento用于上传文件,该函数会遍历恶意软件目录下是否存在扩展名为 .fls、.flc、.sif、.err的文件,若有则上传
上传函数如下:
关联分析
奇安信威胁情报中心对此次捕获样本攻击手法,代码逻辑层面分析,发现此次捕获的攻击样本与响尾蛇APT组织常用攻击手法,恶意代码基本一致。但同时在攻击流程以及代码细节方面进行了“升级更新”。
攻击流程方面的更新如下图所示,该组织在第二阶段新增了从远程服务器获取后续的攻击流程,此次更新可以进一步降低代码暴露的风险,使得该组织在攻击过程中及时关停服务器,以切断研究人员的发现披露流程。
代码细节方面的更新以上传函数为例,2020年该组织的样本中,函数调用主要以简洁的系统函数调用为主。而在2021年该组织投放的样本中,几乎所有的系统函数都通过进一步封装使代码看起来更加繁杂。
总结
响尾蛇APT组织近年来一直高度活跃,其攻击链也较为复杂。总体来看,本次攻击活动中使用的代码大体功能仍与2020年保持一致,仍然采用多层解码内存加载其最终恶意dll,但在第二阶段加载后续文件方面有代码更新,即从以前的内存解码加载到现在的上传获本机信息才能获取回传信息。这其中的攻击链越是碎片化,越能够增加研究人员的捕获与发现难度。
此次捕获的样本主要针对南亚地区开展攻击活动,暂未发现影响国内用户,但防范之心不可无,奇安信红雨滴团队提醒广大用户,切勿打开社交媒体分享的来历不明的链接,不点击执行未知来源的邮件附件,不运行夸张的标题的未知文件,不安装非正规途径来源的APP。做到及时备份重要文件,更新安装补丁。
若需运行,安装来历不明的应用,可先通过奇安信威胁情报文件深度分析平台(https://sandbox.ti.qianxin.com/sandbox/page)进行简单判别。目前已支持包括Windows、安卓平台在内的多种格式文件深度分析。
目前,基于奇安信威胁情报中心的威胁情报数据的全线产品,包括奇安信威胁情报平台(TIP)、天擎、天眼高级威胁检测系统、奇安信NGSOC、奇安信态势感知等,都已经支持对此类攻击的精确检测。
IOCs
MD5
f225d7966cb15848279d039e10827962
fa10f48243ea40298e0fa07787e4156c
4bbbd405402534d871e0a9e2c6a5574d
344b7370c6e61812eeb1cf1d737f27f3
9016ed3c0fef18cfef81f71953e77572
74a06c666b1777ebf0e10580ba4e9d6b
7a7a73c69a47ae542f63a15de34a7c99
09fadfa260a969e76a5408c5be264e3f
401949801e605a64e4a43c9b5ed9231c
URL
hxxps://mailmofagovpk.cdn-pak.net/2494/1/50382/2/0/0/1836338576/files-bf3af810/hta
hxxp://mailmofagovpk.cdn-pak.net/2494/1/50382/3/1/1/1836348839/files-d5def770/0/
hxxp://mailmofagovpk.cdn-pak.net/2494/1/50382/3/3/0/1836348839/files-425a30b0/0/data?d=
hxxp://mailmofagovpk.cdn-pak.net/2494/1/50382/3/3/1/1836350211/files-4f4899fa/1/cuui?data=
hxxp://mailmofagovpk.cdn-pak.net/2494/1/50382/3/1/1/1836350209/files-567e2fe7/1/plaoi
hxxp://mailmofagovpk.cdn-pak.net/2494/1/50382/3/1/1/1836350209/files-eee0fd0c/1/lkjhg
hxxps://fqn-mil.net/202/dt1sarxU0sKRHOxGJuI19nTthaP1Df3yAauT4KJz/50382/2494/f1d1ddf8