导语:一次性加载程序和下载器的使用正变得越来越普遍,甚至在老练的攻击者中也是如此;一次性工具的使用使得检测和分析工作也在变得更加困难,因为它们经常被替换,并且可能从头开始编写,这在“STAYIN’ ALIVE ”活动中很明显。
在过去的几个月里,Check Point Research一直在追踪分析“STAYIN’ ALIVE ”,这是一项至少从2021年就开始活跃的持续活动。该活动在亚洲开展,主要针对电信行业和政府机构。
“Stayin’Alive”活动主要由下载和加载程序组成,其中一些被用作针对知名亚洲组织的初始攻击载体。发现的第一个下载程序名为CurKeep,目标是越南、乌兹别克斯坦和哈萨克斯坦。
观察到的工具的简单化性质以及它们的流行表明它们是一次性的,主要用于下载和运行额外的有效负载,这些工具与任何已知攻击者创建的产品没有明显的代码重叠,并且彼此之间没有太多共同之处。然而,它们都与ToddyCat基础设施有关。
该活动利用鱼叉式网络钓鱼邮件利用DLL侧加载方案来传播压缩文件,最明显的是劫持Audinate的Dante Discovery软件(CVE-2022-23748)中的dal_keepalives.dll。
“STAYIN’ ALIVE ”活动背后的攻击者利用多个独特的加载程序和下载器,所有这些加载程序和下载器都连接到同一套基础设施,与一个通常被称为“ToddyCat”的攻击相关联。
后门和加载程序的功能是非常基本和高度可变的。这表明攻击者将它们视为一次性的,并且可能主要使用它们来获得初始访问权限。
CurKeep后门
调查是从2022年9月发送给越南电信公司的一封电子邮件开始的,该电子邮件被上传到VirusTotal。邮件主题CHỈ THỊ VỀ VIỆC QUY ĐỊNH QUẢN LÝ VÀ SỬ DỤNG USER,翻译为“管理和使用说明:用户规定”,这可能表明目标在IT部门工作。电子邮件包含一个ZIP附件,里面有两个文件:一个合法的签名文件mDNSResponder.exe,重命名为匹配电子邮件,以及一个名为dal_keepalives.dll的侧加载DLL。
原始CurKeep电子邮件诱饵
首先运行合法的可执行文件(由Zoom签名),它加载dal_keepalives.dll,然后加载一个简单的后门程序,称为“CurKeep”。在初始执行期间,它将自己和合法的exe文件复制到%APPDATA%文件夹中,并设置一个名为Reserved的环境变量来指向它的路径。该变量用于名为AppleNotifyService的计划任务,该任务的目的是维护负载执行的久性。
CurKeep攻击链
根据新发现的被劫持DLL方案,我们发现了多个部署相同工具的档案:
Саммит 2022 г (парол - 0809).rar,可能用于针对乌兹别克斯坦,因为它是从乌兹别克斯坦上传的,俄文文本。
QForm V8.zip ,QForm是一个仿真软件,该文件托管在一个已知的研究门户域名上。Приказ №83 от 29.05.2023г.rar,可能用于针对哈萨克斯坦,假设它再次从哈萨克斯坦上传,并带有俄语文本。
CurKeep负载
有效负载本身是一个非常小但高效的10kb文件。它包含26个函数,不使用任何库进行静态编译,在执行时,它首先从msvcrt.dll生成一个导入数组,以获得常见的C运行时函数,因为它没有。
函数导入
全局结构构造
函数
主要有效负载逻辑由三个主要函数组成:report, shell, 和 file。它们中的每一个都被分配到一个不同的消息类型,该消息类型被发送到C&C服务器。当执行时,负载一开始运行report函数,将基本侦察信息发送到C&C服务器。然后,它创建两个独立的线程来重复运行shell和file函数。
report - CurKeep收集有关受攻击计算机的信息,包括计算机名称、用户名、systeminfo的输出以及C:\Program Files (x86)和C:\Program Files下的目录列表。
shell -以JSON格式发送计算机名,使用简单的异或加密和base64编码到C&C。预期的响应包含命令字符串,命令之间以“|”分隔。它执行每个命令并将输出发送到C&C服务器。
file -发送与shell线程相同的消息,并接收如下格式的字符串" [FILE_ID]|[FULL_PATH]|[BASE64_ENCODED_FILE_DATA] "。它解析字符串并将数据写入文件。
通信
后门通信是基于HTTP的,每个函数的结果通过post请求路径/ API /report / API /shell或/ API /file发送到匹配的API。结果被加密并存储在JSON ‘msg’ 字段中。
基础设施分析
我们发现的所有CurKeep样本都与一组C&C服务器通信,这些服务器链接到同一个TLS证书:fd31ea84894d933af323fd64d36910ca0c92af99。该证书在多个IP地址之间共享,我们认为它们都与同一个攻击者有关。
在多个IP地址之间共享证书
除了证书之外,我们还观察到域的类似注册模式以及ip使用重复的asn。
相似的注册模式和重复的asn
新发现的工具
新发现的基础设施揭示了几个额外的样本,主要是加载程序,用于同一地区的针对性攻击,几乎所有加载程序都是通过类似的方法执行的,最常见的是DLL侧加载。加载程序的性质及其多样性表明,攻击者利用简单的加载程序进行攻击,仔细选择部署额外工具的目标。
CurLu加载程序
与此基础结构相关联的最常见的工具是CurLu加载程序,它通常通过滥用bdch.dll的侧加载来加载,但这不是使用的唯一方法。这个加载程序的主要功能是联系C&C服务器并接收要加载的DLL,然后调用预定义的导出。这是通过发送一个URI?cur=[RANDOM]的请求来实现的:
构建随机请求URL
来自服务器的预期响应是DLL,然后将其加载并映射到内存中。接下来,加载程序搜索两个预定义导出中的一个,并执行找到的任何导出。
在下载的DLL中搜索导出函数
CurCore
其中一个新检索的有效负载是通过名为incorrect personal information.img的IMG文件传播的。它是从巴基斯坦上传到VirusTotal的,利用mscoree.dll劫持部署了另一个名为CurCore的小后门程序。这个CurCore变种也指向一个模仿巴基斯坦电信供应商Nayatel的域名ns01.nayatel.orinafz.com。
当执行时,DLL通过比较执行路径与C:\ProgramData\OneDrive\来检查它是否持久化执行。如果没有,它将自己和合法的PE文件复制到前面提到的OneDrive.exe文件夹下,并使用命令schtasks /create /sc minute /mo 10 /tn "OneDrive" /tr "C:\ProgramData\OneDrive\OneDrive.exe创建计划任务。
如果从正确的路径执行,它将创建一个线程,该线程初始化一个大型UUID字符串数组,然后继续加载rpcrt4.dll并动态地导入UuidFromStringA函数。接下来,它使用该函数将整个UUID数组转换为字节,每次一个UUID。
用于生成shellcode的UUID数组
然后,它使用EnumSystemLocalesA函数来执行从uid创建的shellcode。然后,这个shellcode加载并执行最终的有效负载。
将UUID转换为字节并执行提取的shellcode
CurCore负载
CurCore有效负载是一个小而有限的后门。执行时,它加载并解析与winhttp.dll中的HTTP请求和kernel32.dll中的CreatePipe相关的函数(从未使用过)。
接下来,它启动主循环,其中包含负责向C&C域ns01.nayatel.orinafz.com发出HTTP请求的子循环。HTTP请求由以下结构构建:
DWORD custom_checksum; DWORD ukn_1; DWORD message_type; // only being used on ReadFile command WCHAR_T desktop_folder_path[];
custom_checksum是通过对桌面文件夹路径的WCHAR_T数组中的所有第一个字节求和来计算的。该结构是base64编码的,并在以下请求中传输到服务器:
接收到的响应也是用base64编码的,它的第一个DWORD是要执行的命令ID。有效负载总共支持3个功能有限的命令,这表明它只用于初始侦察:
CurLog加载程序
与同一基础设施相连的一个加载程序CurLog也被用来针对哈萨克斯坦的主要目标,我们观察到几个变体,一些通过DLL执行,另一些通过EXE执行。
CurLog加载程序的一个变体是在一个名为Compatible Products - Vector ver7.1.1.zip的zip文件中提供的,该文件包含一个同名的EXE文件。来自哈萨克斯坦的提交者也上传了一个同名的DOCX文件,其中描述了一个名为VECTOR的系统及其兼容性。
VECTOR系统描述
当负载执行时,它通过比较执行路径与C:\Users\Public\Libraries或检查它是否使用参数-u运行来检查它是否会持久性运行。如果没有,它会添加一个计划任务,并将自己和合法的exe复制到前面提到的文件夹中。
接下来,它联系C&C服务器并期望接收解码的十六进制流。如果成功,它将继续验证已解码的十六进制流是否以MZ或cDM开头,并将其保存到文件中。最后,它基于生成的文件创建一个进程。
针对越南的攻击
我们发现的最古老的变种(见下文)是通过一个以越南ISP为主题的ISO映像从越南上传的。严重混淆的示例验证它是否在正确的路径上执行,就像其他加载程序一样。如果没有,它将创建目录C:\ProgramData\ApplicationData\,并将合法的EXE文件复制到该文件夹中,并将恶意的侧面加载的DLL文件mscoree.dll复制到该文件夹中。然后,它将4个硬编码字节写入一个新文件v2net.dll,该文件用作活动ID,它获取计算机名,并发送以下网络请求:
然后使用带有密钥0x44的简单异或加密对网络响应进行解密。接下来,它检查第一个字节XOR 0x09是否等于0x44,第二个字节XOR 0xD7是否等于0x8D。你可能会注意到MZ ^ 0x09D7 = 0x448d,从中我们可以推断C&C响应应该包含PE文件。然后将接收到的文件写入AppData\Roaming\ApplicationData\[HEX_STRING]\common.exe并执行。
StylerServ后门
研究中,我们注意到许多加载程序的一个共同特征:它们的编译时间戳被修改为2015,其标头值表明它们是使用Visual Studio 2017编译的。
副标题显示Visual Studio 2017(上图)和2015年的编译时间戳
绕过这个特征,我们发现了另外一个示例,该示例由某人上传,此人也上传了CurLu加载程序信标的一个变体到127.0.0.1,并在bdch.dll上使用相同的侧加载。
新确定的示例名为StylerServ,它与前面提到的加载程序非常不同,因为它被用作被动侦听器,通过特定端口为特定文件提供服务。当DLL被执行时,它会创建五个线程,每个线程监听一个不同的端口。在样本中,我们观察到以下端口:60810、60811、60812、60813、60814。
创建监听特定端口的线程
每隔60秒,每个线程都会尝试读取一个名为styles .bin的文件。如果该文件可用且文件大小为0x1014,则认为该文件有效,并在后续线程的网络请求中提供该文件。这些线程监督套接字上演变的一整套行为。其逻辑本质上是,每个线程都可以接收远程连接,并提供前面提到的stylesers .bin的加密版本。
具有相同名称的文件(stylesers .bin)也由同一提交者上传,并使用XOR加密。在StylerServ后门中不存在解密文件的密钥,但可以通过执行加密分析获得。当它被解密时,我们可以看到加密的文件看起来像一种配置文件,包含各种文件格式和一些未知的DWORDS:
加密配置
解密配置
受害者研究
在我们对这次活动的分析中,我们观察到亚洲国家的目标一致,即越南、巴基斯坦、乌兹别克斯坦,最突出的是哈萨克斯坦。目标的迹象包括鱼叉式网络钓鱼邮件、VirusTotal提交者和文件命名约定。有证据表明,该活动主要针对这些国家的电信行业。
“Stayin’ Alive”活动的目标国家
此外,各种各样的加载程序和下载程序所使用的域表明,至少有一些目标或最终目标是政府附属组织,主要在哈萨克斯坦,包括:
pkigoscorp[.]com——很可能是为了模仿https://pki.gov.kz/,哈萨克斯坦国家证书颁发机构。
certexvpn[.]com——哈萨克斯坦政府使用的哈萨克VPN软件。
此外,有迹象表明,其中一次攻击是围绕一个名为qform3d的模拟软件进行的。这包括使用域名qform3d[.]in的使用以及在压缩文件QForm V8.zip中传播文件。恶意软件托管在一个研究门户网站上,这表明其目标可能从事研究工作。
幕后组织
该活动利用了许多目前未知的工具和技术。不同的加载程序和下载器集合可能代表了该攻击者的初始攻击媒介,该组织已在该地区活动多年。
本报告中描述的各种工具都是定制的,仅使用一次,因此,它们与任何已知的工具集没有明显的代码重叠,甚至彼此之间也没有。然而,它们都与一组基础设施有关,其中一部分与一个名为todddycat的攻击者有关。
CurLog和CurLu加载程序使用的两个域是fopingu[.]com 和rtmcsync[.]com,它们在该文章中提到过。这两个域也显示了解析到149.28.28[.]159的历史。
虽然这些重叠并不一定表明“STAYIN’ ALIVE ”活动的幕后主使与ToddyCat的幕后主使是同一组织,但很可能两者有共同的联系,共享相同的基础设施。
总结
如上所述,一次性加载程序和下载器的使用正变得越来越普遍,甚至在老练的攻击者中也是如此;一次性工具的使用使得检测和分析工作也在变得更加困难,因为它们经常被替换,并且可能从头开始编写,这在“STAYIN’ ALIVE ”活动中很明显。
本文回顾了针对亚洲电信行业的攻击活动中使用的一些工具,通过基础设施分析不同后门之间的联系时,我们还发现了与ToddyCat的潜在联系,这是一个在该地区活动的已知行动者。虽然我们不能完全肯定ToddyCat是这次活动的幕后组织,但很明显,两者都使用了相同的基础设施攻击求类似的目标。
文章翻译自:https://research.checkpoint.com/2023/stayin-alive-targeted-attacks-against-telecoms-and-government-ministries-in-asia/如若转载,请注明原文地址