介绍
BellaCiao 是一个基于 .NET 的恶意软件家族,它为入侵增添了独特的变数,将 Webshell 的隐秘持久性与建立隐蔽隧道的能力相结合。该恶意软件于 2023 年 4 月下旬首次出现,此后被公开归因于 APT 攻击者 Charming Kitten。BellaCiao 样本的一个重要特点是它们通过各自的 PDB 路径展现了大量信息,包括我们在分析历史记录后能够得出的版本控制方案。
最近,我们正在调查一起涉及亚洲一台计算机上 BellaCiao 样本 (MD5 14f6c034af7322156e62a6c961106a8c) 的入侵事件。我们的遥测数据表明,同一台计算机上还存在另一个可疑且可能相关的样本。经过进一步调查,我们发现该样本是旧版 BellaCiao 的重新实现,但使用 C++ 编写。
BellaCiao:PDB 分析
BellaCiao 拥有非常详细的 PDB 路径,揭示了与攻击活动相关的重要信息,例如目标实体和国家/地区。此外,在分析了多个历史样本后,我们发现所有 PDB 路径都包含字符串“MicrosoftAgentServices”。部分样本在字符串后附加了一位数字,例如“MicrosoftAgentServices2”和“MicrosoftAgentServices3”。使用整数通常表示恶意软件开发者使用的版本控制方式,可能是为了区分不同的迭代或更新。这些版本控制措施可能有助于追踪恶意软件功能的开发和变化,从而帮助 APT 攻击者维护多样化且不断发展的武器库,以实现其目标。
以下是最后 10 个样本及其各自的编译时间。
| md5 | 部分 PDB | 编译器时间戳 |
|---|---|---|
| 44D8B88C539808BB9A479F98393CF3C7 | \MicrosoftAgentServices\Microsoft 代理服务\ | 2023年3月27日星期一05:26:40 |
| E24B07E2955EB3E98DE8B775DB00DC68 | \MicrosoftAgentServices\Microsoft 代理服务\ | 2023年4月12日星期三13:02:04 |
| 8ECD457C1DDFBB58AFEA3E39DA2BF17B | \MicrosoftAgentServices\Microsoft 代理服务\ | 2023年4月14日星期五 15:29:28 |
| 103CE1C5E3FDB122351868949A4EBC77 | \MicrosoftAgentServices\Microsoft 代理服务\ | 2023年4月22日星期六 18:47:41 |
| 28D02EA14757FE69214A97E5B6386E95 | \MicrosoftAgentServices\Microsoft 代理服务\ | 2023年4月23日 星期日 11:33:32 |
| 4C6AA8750DC426F2C676B23B39710903 | \ MicrosoftAgentServices2 \Microsoft 代理服务\ | 2023年5月6日星期六 11:50:21 |
| AC4606A0E10067B00C510FB97B5BD2CC | \ MicrosoftAgentServices2 \Microsoft 代理服务\ | 2023年6月11日星期日08:15:29 |
| AC6DDD56AA4BF53170807234BC91345A | \ MicrosoftAgentServices3 \Microsoft 代理服务\ | 2023年6月 27日 星期二 21:25:29 |
| 36B97C500E36D5300821E874452BBCB2 | \ MicrosoftAgentServices3 \Microsoft 代理服务\ | 2023年6月27日星期二 22:44:06 |
| FEBF2A94BC59011B09568071C52512B5 | \ MicrosoftAgentServices3 \Microsoft 代理服务\ | 2023年6月27日星期二 23:14:44 |
值得注意的是,已知的第一批 BellaCiao 样本并未采用此版本控制系统,该系统后来才出现。这可能是由于该项目随着时间的推移逐渐成熟,从而提高了开发质量并完善了功能。
BellaCPP
| MD5 | 222380fa5a0c1087559abbb6d1a5f889 |
|---|---|
| SHA1 | dccdfc77dd2803b3c5a97af0851efa0aa5bbeeeb |
| SHA256 | e4e3f09c4257269cef6cfbebc83c8a60376ce5e547080502e3e408a3f9916218 |
| 文件类型 | PE32+ 可执行文件 (DLL) (GUI) x86-64,适用于 MS Windows,6 部分 |
| 文件大小 | 17.50 千字节 |
| 文件名 | 动态链接库 |
BellaCPP 是在感染了基于 .NET 的 BellaCiao 恶意软件的同一台计算机上发现的。它是一个名为“adhapl.dll”的 DLL 文件,由 C++ 开发,位于 C:\Windows\System32 目录下。它有一个名为“ServiceMain”的导出函数。其名称和控制处理程序注册表明,与原始 BellaCiao 样本类似,该变体旨在作为 Windows 服务运行。
与 DLL 中导出的 ServiceMain 函数一致,该代码执行的一系列步骤与早期版本 BellaCiao 中观察到的行为非常相似。
-
使用密钥 0x7B通过 XOR 加密解密三个字符串:
- C:\Windows\System32\D3D12_1core.dll
- 安全更新
- 检查DNS记录
-
在上一步解密的路径上加载DLL文件,并使用GetProcAddress解析上面另外两个解密字符串的函数。
-
按照与 .NET BellaCiao 版本相同的方法生成域,使用以下格式:
1 <5 random letters>..systemupdate[.]info -
调用 CheckDNSRecords 函数。如果返回值与硬编码的 IP 地址匹配,则调用 SecurityUpdate 函数,并传递如下所示的参数。
1 ::systemupdate[.]info::<IP_address>::<IP_address>:
遗憾的是,我们无法检索上述 D3D12_1core.dll 文件,因此无法分析该进程中触发的 SecurityUpdate 函数。然而,如上所述,基于 .NET 的 BellaCiao 样本具有类似的行为,但包含由 C++ 版本作为参数传递的参数,并将其作为单独的变量。例如,与 BellaCPP 一起发现的 BellaCiao 样本使用以下工作流程。
-
使用以下模式生成域并发送 DNS 请求以获取 IP 地址。
1 <5 random letters>..autoupdate[.]uk -
如果 IP 地址等于硬编码值,则使用类似于 BellaCPP 传递的参数的值创建 SSH 隧道,并通过该隧道公开本地端口 49450。
根据传递的参数和已知的 BellaCiao 功能,我们中等程度地确信缺失的 DLL 会创建 SSH 隧道。然而,与我们在较早的 BellaCiao 样本中观察到的 PowerShell webshell 不同,BellaCPP 样本缺少硬编码的 webshell。
归因
根据以下因素,我们以中到高的信心评估 BellaCPP 与 Charming Kitten 威胁行为者有关。
- 从高层次的角度来看,这是没有 webshell 功能的 BellaCiao 样本的 C++ 表示。
- 它使用先前归属于该演员的域名。
- 它以类似的方式生成一个域,并以与 .NET 示例中观察到的相同的方式使用该域。
- 受感染的机器的硬盘上发现了较旧的 BellaCiao 样本。
结论
Charming Kitten 一直在利用公开可用的工具来改进其恶意软件家族库。他们持续更新的恶意软件家族之一是 BellaCiao。从研究的角度来看,这个家族尤其有趣,因为 PDB 路径有时可以提供一些关于目标及其环境的洞察。
BellaCPP 样本的发现凸显了对网络及其中的机器进行彻底调查的重要性。攻击者可以部署安全解决方案可能无法检测到的未知样本,从而在“已知”样本被移除后仍能在网络中立足。