揭秘RainyDay、Turian与新型PlugX变种如何滥用DLL搜索顺序劫持技术

思科Talos发现自2022年活跃的新攻击活动,针对中亚和南亚电信与制造业,通过DLL侧加载技术部署新型PlugX变种,揭示RainyDay、Turian与PlugX共享RC4密钥与加解密算法的技术关联。

How RainyDay, Turian and a new PlugX variant abuse DLL search order hijacking

Cisco Talos Blog

思科Talos发现自2022年开始活跃的新攻击活动,针对中亚和南亚国家的电信和制造业,投放新型PlugX变种。Talos发现该变种功能与RainyDay和Turian后门存在重叠,包括滥用相同合法应用进行DLL侧加载、使用XOR-RC4-RtlDecompressBuffer算法加解密载荷以及相同的RC4密钥。

与此新型PlugX变种相关的配置与标准PlugX配置格式显著不同,转而采用与RainyDay相同的结构,使我们能够以中等置信度评估该PlugX变种可归因于Naikon组织。

尽管这些恶意软件家族历史上与归因于Naikon或BackdoorDiplomacy的活动相关,但我们对受害情况和技术实现的分析发现了表明这两个威胁行为者之间存在潜在联系的证据,暗示他们可能是同一组织或从同一供应商获取工具。

概述

思科Talos识别出针对中亚和南亚国家电信和制造业的持续攻击活动。基于对收集证据的分析,我们以中等置信度评估该活动可归因于Naikon——一个自2010年开始活跃的中文威胁行为者。该评估基于对活动中使用的PlugX配置格式以及恶意软件感染链的分析,这些与其之前的恶意软件RainyDay非常相似。

在调查和追踪RainyDay后门期间,Talos发现两个重要发现:首先,我们发现多个Turian后门实例和新识别的PlugX后门变种滥用与RainyDay相同的合法Mobile Popup应用将自身加载到内存中;其次,我们观察到三个恶意软件家族利用的加载器不仅具有相似的XOR解密功能,还使用相同的RC4密钥解密加密载荷。尽管在此活动中未观察到与RainyDay或Turian相关的任何活动,但这一发现使我们能够进行归因评估。

归因

Naikon

Naikon是知名的中文网络间谍组织,至少自2010年开始活跃。该威胁组织主要针对东南亚的政府、军事和民用组织。

Naikon使用多种后门,包括Aira-body、Nebulae和RainyDay,以及众多定制黑客工具来维持持久性并从受害者网络环境外泄数据。值得注意的是,Symantec报告该组织使用RainyDay后门针对多个亚洲国家的电信运营商,作为可追溯至2020年的长期间谍活动的一部分。

BackdoorDiplomacy

BackdoorDiplomacy是至少自2017年开始活跃的威胁组织。该组织主要针对非洲、欧洲、中东和亚洲的外交部和电信公司。

他们的主要工具是Turian,被认为是Quarian的升级版。ESET指出Turian与名为Backdoor.Whitebird.1的后门在网络加密方法上存在相似性。Bitdefender认为Quarian、Turian和Whitebird可能是同一后门的不同版本。Bitdefender还发布了关于2022年2月开始针对中东电信公司攻击的博客。

Talos使用钻石模型比较Naikon和BackdoorDiplomacy(图1)。

图1. 使用钻石模型比较Naikon和BackdoorDiplomacy

近期活动中的关联

在调查此活动中使用的DLL搜索顺序劫持滥用时,Talos发现RainyDay、Turian和PlugX变种都滥用相同的合法软件执行其恶意加载器。尽管这些恶意软件家族似乎由不同威胁组织(Naikon和BackdoorDiplomacy)操作,但我们的分析发现了表明它们之间潜在联系的证据。

首先,在Naikon和BackdoorDiplomacy进行的活动中观察到一致的瞄准模式,受影响的国家和行业相似,这可能表明潜在联系。两者都主要关注电信公司,其最新活动延续了这一趋势。在最近观察到的活动中,Naikon针对哈萨克斯坦的电信公司,该国与乌兹别克斯坦接壤——后者曾是BackdoorDiplomacy的受害者。先前的报告表明,针对该地区国家的瞄准与历史BackdoorDiplomacy活动一致。此外,两者都被观察到针对南亚国家。

而且,两组使用的恶意软件加载器和shellcode结构显示出显著相似性,Talos观察到在RainyDay(Naikon)、PlugX(Naikon)和Turian(BackdoorDiplomacy)中使用相同的RC4密钥以及XOR-RC4-RtlDecompressBuffer算法解密恶意软件载荷。这些重叠将在下一节进一步探讨。

Talos通过分析以下数据创建了与这三个恶意软件家族相关的入侵活动时间线(图2):

  • 我们观察到的活动
  • 第三方报告
  • 恶意软件编译时间戳
  • 感染期间生成的击键日志中的时间戳

图2. RainyDay、新型PlugX变种和Turian后门的时间线

虽然我们不能断定Naikon和BackdoorDiplomacy之间存在明确联系,但存在显著重叠方面——如目标选择、加解密载荷方法、加密密钥重用以及使用同一供应商支持的工具。这些相似性表明与该活动中中文行为者存在中等置信度联系。

恶意软件攻击流程

在此活动中识别的RainyDay、Turian和新型PlugX变种都通过DLL搜索顺序劫持执行。

尽管三种恶意软件存在差异,但加载器自身行为相似。通过滥用合法可执行文件加载的RainyDay、PlugX和Turian加载器读取位于与可执行文件相同目录的加密shellcode文件,并解密数据以执行各自的恶意软件。解密的RainyDay和PlugX载荷在内存中解包,并将代码注入调用进程以执行恶意软件。Turian注入新的合法进程(wabmig.exe或explorer.exe)以执行恶意软件。执行后,它加载定义命令与控制(C2)目的地和包含"AntiVir"部分的INI文件的配置数据。

图3. RainyDay恶意软件流程
图4. 新型PlugX变种恶意软件流程
图5. Turian恶意软件流程

RainyDay、新型PlugX变种和Turian加载器

这三个加载器设计用于从Initial目录读取、解密和执行各自恶意软件的加密shellcode。

让我们检查RainyDay、PlugX和Turian加载器的解密例程。三个加载器共享大量通用代码。首先,它们使用GetModuleFileNameA API获取可执行文件的完整路径。然后,它们使用恶意软件内硬编码的文件名从Initial目录读取数据。

Talos在2016年观察到的初始RainyDay加载器未加密数据。然而,在后续恶意软件样本中,每个加载器包含解密例程。如图6-8所示,RainyDay加载器从"rdmin.src"解密数据,PlugX加载器从"Mcsitesdvisor.afx"解密,Turian加载器从"winslivation.dat"解密,各自使用XOR加密。解密的shellcode然后在内存中解包,并使用CALL或JMP指令执行。

图6. RainyDay加载器
图7. PlugX加载器
图8. Turian加载器

三个恶意软件加载器解密的shellcode格式相同。它包含分别使用RC4和LZNT1加密和压缩的数据。然后该数据被解压缩和解密,最终提供在内存中执行的代码。

通过CALL或JMP指令转换后,如下所示的代码被重复执行。在某些情况下可能实施控制流平坦化(CFF)。

图9. RainyDay和Turian用于实现CFF的部分代码

如图所示,它使用基于ROL25的加法API哈希函数解析Windows API。然后,代码使用RC4解密,如下所示。

解密后,代码使用LZNT1压缩,并调用RtlDecompressBuffer API解压缩并部署RainyDay、PlugX或Turian。

图10. 基于ROL25的加法API哈希函数
图11. RC4解密和LZNT1解压缩代码

如下面的图12所示,由LZNT1解压缩的DLL文件已移除其文件头字节。在此示例中,e_lfanew值(指示PE头位置)设置为异常大的值0x01240120,清楚显示已插入无效值。

图12. 由LZNT1解压缩的DLL文件部分

用于恶意软件解密的RC4密钥

下面的图13显示了三个不同恶意软件家族使用的RC4密钥及其对应样本。RainyDay使用"8f-2;g=3/c?1wf+c92rv.a"作为其RC4密钥。此相同密钥也用于PlugX和Turian。在早期版本的RainyDay中,此字符串用于加密通信,而非恶意软件自身。RainyDay中指定的另一个RC4密钥"jfntv`1-m0vt801tyvqaf_)U89chasv"也用于PlugX。我们可以得出结论,相同的RC4密钥在RainyDay、PlugX和Turian之间共享。我们还可以推断攻击者同时操作多个恶意软件家族,并且跨多个恶意软件家族共享RC4密钥表明这些活动由相同或连接的攻击者组执行。

图13. 按恶意软件家族划分的RC4密钥

加载器中包含的PDB路径

在加载器样本中发现了一些PDB路径,解释了DLL加载器文件的作用。

Turian加载器:

1
2
C:\vc_code\No.3\3-2hao\3-2hao-211221\dlltoshellcode_and_shellcodeloader_211221\Resources\pc2msupp.pdb
C:\vc_code\code_test\26.icmpsh-master(tigong wangzhiban)\shellcodeloader_vs2008\Release\shellcodeloader_vs2008.pdb

可能的PlugX加载器:

1
C:\Users\admin\Desktop\Desktop_bak\success_bai\MicrosoftEdgeUpdate.exe\shellcode_xor\dll-MicrosoftEdgeUpdate\Release\2-dll-MicrosoftEdgeUpdate.pdb

对PDB字符串的深入分析揭示了一些关键点。首先,所有加载器包含的shellcode结构在两个后门中一致,该结构被提取并注入内存。其次,Turian加载器PDB路径(Bitdefender也提到)“No.3\3-2hao\3-2hao-211221"似乎引用项目名称、版本和时间戳,“211221"可能代表日期2021年12月21日。

此外,另一个Turian加载器PDB路径包含"icmpsh-master”,可能指ICMP Shell(icmpsh),一种用于隐蔽C2通信的知名工具或恶意软件技术。在PDB字符串中,括号中的短语”(tigong wangzhiban)“从中文翻译为"提供网页版”,表明此版本icmpsh可能已被修改用于基于Web的使用,可能与远程服务器或基于Web的C2基础设施交互。

最后,RainyDay加载器PDB路径指向涉及与"MicrosoftEdgeUpdate"关联的DLL的项目。此DLL可能是恶意的,并设计为注入合法的MicrosoftEdgeUpdate.exe进程。

图14. 每个包含PDB的恶意软件家族加载器

来自同一感染链的RainyDay和新型PlugX变种

本节检查RainyDay后门的历史和技术细节。此恶意软件由Bitdefender在2021年首次发现,卡巴斯基可能根据其分析中描述的行为将其跟踪为FoundCore。通过结合两份研究报告的见解,我们可以概述RainyDay后门的关键特征和行为:

  • 使用合法DLL侧加载运行恶意软件。
  • 载荷包含shellcode,负责提取最终载荷。
  • 使用XOR-RC4-RtlDecompressBuffer加密载荷,其配置使用简单的单字节XOR密钥加密。
  • 最重要的是,配置保存关键细节,如C2服务器地址、文件夹名称、服务描述、互斥体、注册表键路径和其他信息。

根据以上信息,Talos能够在各种恶意软件存储库中找到几个RainyDay后门加载器和载荷。虽然所有样本都匹配RainyDay后门签名,但我们发现最终后门实际上属于两个不同的恶意软件家族:先前报告的RainyDay后门和 notorious 中文远程访问木马(RAT)PlugX的新变种。图15-17显示了包含相同负责配置解密代码的不同恶意软件家族。

图15. Bitdefender识别的RainyDay配置解密代码
图16. 最旧的RainyDay配置解密代码
图17. PlugX变种配置解密代码

旧版RainyDay后门

经过详细分析,Talos识别了RainyDay后门的旧变种。代码结构与其他网络安全厂商出版物中描述的新变种紧密对齐。此旧变种使用相同的代码逻辑确定目标机器的Windows版本和CPU架构。值得注意的是,调试日志在变种之间显示出显著相似性。如图18所示,明显威胁行为者不仅增强了RainyDay后门的功能,还改进了调试日志输出。此增强可能有助于恶意软件开发者更有效地调试单个函数。然而,此旧变种紧密镜像了Bitdefender先前报告中详述的内容,主要区别是缺少C2 HTTP通信能力和文件操作功能。

图18. 左:Bitdefender描述的RainyDay。右:Talos发现的RainyDay旧变种

Talos发现了两个额外的令人信服的证据支持这是RainyDay后门早期版本的结论。首先,此变种的加载器于2018年2月27日12:32:40 UTC编译,使其成为迄今为止识别的最旧样本。其次,配置文件包含可追溯至2016年12月28日的时间戳。基于此信息,我们以高置信度评估RainyDay后门可能至少自2016年开始运行。

图19. 旧版RainyDay配置

Talos还在恶意软件中发现了嵌入的PDB字符串路径,披露了后门的原始文件名。

1
C:\Users\Qs\Desktop\Workspace\1qaz\bin\core.pdb

文件名相同;因此,此发现进一步加强了此RainyDay后门旧变种与2021年FoundCore版本之间的联系。

PlugX变种后门

Talos识别的另一个最终载荷是定制变种的PlugX后门,我们相信它已成为威胁行为者在近期活动中的主要后门。虽然此PlugX变种不是特别新,其插件功能已在先前报告中记录,但它因一个关键原因突出:其配置与先前识别的PlugX配置显著不同。相反,它采用与RainyDay后门相同的配置结构。此异常强烈表明威胁行为者可能有权访问PlugX的原始源代码,使他们能够以这种方式修改它。然而,仍然需要意识到威胁行为者可能进一步修补PlugX后门配置部分以适应其偏好的配置结构。

图20. PlugX配置

Talos以高置信度认为在此活动中观察到的PlugX变种是BackDoor.PlugX.38的定制版本。与原始变种一样,它利用"SetUnhandledExceptionFilter"异常处理程序识别"threads_container"中负责触发异常的线程ID,随后生成关联字符串。然而,此变种引入修改以使用额外的XOR操作加密那些字符串。当恶意软件执行相关函数时,它在运行时动态解密字符串。

图21. 异常过滤器设置

完成其准备过程后,木马通过获取SeDebugPrivilege和SeTcbPrivilege提升其权限。然后它初始化其主例程并确定文件夹路径(在其配置中指定),它将在其中投放感染链文件。恶意软件创建DoImpUserProc线程管理插件操作或执行名为OnlineMainDump的函数。为逃避检测,威胁行为者通过使用修改的微型加密算法(TEA)加密它们来隐藏SeDebugPrivilege和SeTcbPrivilege字符串。

图22. 提升权限

如果PlugX后门执行OnlineMainDump函数,它首先尝试提升其权限以授予其自身进程高级访问权限。然后它检索三个特定插件:KeylogDump、Nethood和PortMap。此后,它采用与BackDoor.PlugX.38相同的技术将其恶意服务隐藏在services.exe进程中。一旦完成,启动OnlineNotifyDump线程,并重新初始化配置。然后恶意软件利用OlProcManager线程在当前进程框架内管理三个插件的执行。

图23. PlugX主函数

一旦所有初始化过程完成,恶意软件开始循环连接到其C2服务器。虽然连接方法保持与BackDoor.PlugX.38相同,但此变种特别利用HTTPS协议进行通信。此外,我们在此PlugX后门中识别了嵌入的库版本名称"VTCP 10.12.08"。VTCP库已在先前分析中确认为通常与PlugX关联的组件,进一步支持此变种归因于同一恶意软件家族。

图24. PlugX协议

此外,Talos观察到威胁行为者在所有分析的PlugX后门载荷中嵌入了键盘记录器插件。键盘记录器的功能和数据写入格式与先前报告中描述的保持一致。然而,存在显著差异:文件名已被更改,并且投放文件路径调整为匹配PlugX后门的当前位置。这些修改表明威胁行为者旨在更好地将键盘记录器与此特定变种集成。

图25. 键盘记录器日志文件路径

此外,通过枢轴分析在VirusTotal上发现的几个键盘记录器日志文件,Talos观察到时间戳表明这些文件在整个2022年主动生成。值得注意的是,其中一个日志文件证明了在受害者环境中的成功持久性,记录了从2022年底到2024年12月的活动——跨越近两年的持续入侵。

覆盖

思科安全端点(原AMP for Endpoints)非常适合防止本文中详述的恶意软件执行。在此免费试用安全端点

思科安全邮件(原Cisco Email Security)可以阻止威胁行为者作为其活动一部分发送的恶意邮件。在此免费试用安全邮件

思科安全防火墙(原Next-Generation Firewall和Firepower NGFW)设备,如Threat Defense Virtual、Adaptive Security Appliance和Meraki MX,可以检测与此威胁相关的恶意活动。

思科安全网络/云分析(Stealthwatch/Stealthwatch Cloud)自动分析网络流量并警报用户每个连接设备上潜在不需要的活动。

思科安全恶意软件分析(Threat Grid)识别恶意二进制文件并将保护构建到所有思科安全产品中。

思科安全访问是基于零信任原则构建的现代云交付安全服务边缘(SSE)。安全访问提供无缝透明和安全的互联网、云服务或私有应用程序访问,无论用户在哪里工作。如果您有兴趣免费试用思科安全访问,请联系您的思科账户代表或授权合作伙伴。

Umbrella,思科的安全互联网网关(SIG),阻止用户连接到恶意域名、IP和URL,无论用户是在公司网络内部还是外部。

思科安全Web设备(原Web Security Appliance)自动阻止潜在危险站点并在用户访问之前测试可疑站点。

来自防火墙管理中心的额外保护提供针对您特定环境和威胁数据的上下文。

思科Duo为用户提供多因素认证,确保只有授权人员访问您的网络。

开源Snort订阅规则集客户可以通过下载Snort.org上可供购买的最新规则包保持最新。

ClamAV检测也可用于此威胁:

1
Win.Loader.RainyDay-10045411-0

入侵指标(IOCs)

IOCs也可以在我们的GitHub存储库中找到。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计