在之前的一篇文章中,研究人员通过概述其工作原理来分析了 Purple Fox 僵尸网络。此外,研究人员还检查了它的初始访问技术和一些相关的后门。
在这项研究中,研究人员更深入地了解了研究人员通过 Trend Micro Managed XDR 观察到的感染链的后期阶段,特别是它如何通过插入恶意 SQL CLR 程序集来感染 SQL 数据库,以实现持久和隐蔽的执行。应该注意的是,这次攻击中使用的大多数文件并不存储在磁盘上,而是在从命令和控制 (C&C) 服务器中提取或加密后从内存中执行,然后由另一个进程加载这些文件。
研究人员还讨论了僵尸网络的底层 C&C 基础设施,以及 Purple Fox 运营商在最近的活动中选择以 SQL 服务器为目标的动机。
进程注入
研究人员先来分析一下Purple Fox的进程注入例程。该恶意软件首先通过生成一个挂起的 svchost.exe(由随附的 rootkit 更改为 fontdrvhost.exe)进程来加载其各种组件。然后它在进程地址空间中加载 DLL 组件,然后将执行重定向到加载的 DLL。
进程树概览
C&C服务器
该恶意软件通过三种不同的方式与其 C&C 服务器进行通信,每种方法都在执行的特定阶段用于不同的目的。
DNS
DNS 用于在每个进程执行开始时获取 C&C IP 地址列表。如果所有服务器在此阶段或在研究人员接下来看到的稍后阶段都未能响应,它也用于更新此列表。需要注意的一件事是,DNS 请求收到的 IP 地址并不是 C&C 服务器使用的真实 IP 地址。尽管 DNS 请求接收到的那些是经过编码的,但可以通过从 IP 地址中减去一个固定数字来对其进行解码。下表显示了这方面的示例。
表 1. 通过 DNS 请求接收的 IP 地址示例和实际解码的 IP 地址
以下是用于 DNS 请求的域:
Kew[.]8df[.]us 指向 m[.]tet[.]kozow[.]com;
ret[.]6bc[.]Us 指向 a[.]keb[.]kozow[.]com;
返回的 IP 地址列表每隔几分钟左右就会更改一次,以便在僵尸网络C&C基础设施中循环使用。
UDP
第二种通信方法是用户数据报协议(User Datagram Protocol, UDP),用于各种类型的消息,包括构建用于进一步通信的缓存IP地址列表。此外,它还用于为运行工具提取配置,并检索下一节讨论的HTTP流量的IP:PORT列表。
从 DNS 中选择一个 IP 地址后,将其解码为真实 IP 地址和端口号,然后请求拉取缓存 IP 地址列表。如果缓存列表出现故障,恶意软件将返回DNS获取一个新IP地址来构建另一个缓存IP地址列表。
HTTP
为了开始在系统上执行其例程,恶意软件通过发出格式为 http://IP:PORT/xxxx[.]moe 的 GET 请求来提取加密的 DLL,其中 IP:PORT 由 UDP 消息且 xxxx[. ]moe 是Worker DLL 之一。这些 DLL 被保存在一个文件中,并由解密、解压缩和执行它们的工作进程加载。
Worker DLL
SQL Server 扫描程序 [32A7E157.moe]
第一个Worker DLL 是 SQL Server 扫描程序,它使用前面描述的 HTTP 通信从 /3FE8E22C.moe 中提取其核心模块。这个核心模块被注入到一个新进程中,并使用 UDP 通信拉取扫描器配置,该通信具有用于扫描的起始公共地址。
它通过端口 1433 扫描 SQL Server 的本地和公共 IP 地址。如果它找到一个开放端口,它就开始使用1000万个单词列表对SQL Server身份验证进行暴力破解。
当恶意软件通过身份验证时,它会执行一个 SQL 脚本,该脚本在 SQL Server 数据库上安装一个后门程序集 (evilclr.dll),该程序集用于使用 SQL 语句执行命令。使用此程序集,在 SQL Server 上执行 PowerShell 命令以启动 Purple Fox 的感染链,如研究人员之前的博客文章所述。
SQL 暴力请求
对 SQL 暴力请求的响应失败
对SQL蛮力请求的成功响应
执行 SQL 语句
感染前的数据库
感染后的数据库
XMR Coinminer [F30DC9EB.moe]
第二个Worker DLL 是一个 XMR Coinminer,它通过UDP检索配置来启动它的例程。然后它开始执行一个嵌入的 XMRig 二进制文件,并拉取配置,使计算机人在 108[.]177[.]235[.]90:443 加入挖矿池。
在前台运行的自定义 XMRig
通过 SQL Server 执行操作系统
Purple Fox 将 SQL 服务器作为其目标,而不是用于加密货币挖掘活动的普通计算机。这主要是因为服务器通常具有更强大的硬件配置——CPU 和内存。更具体地说,对于 SQL 服务器,CPU、内存和磁盘因素的组合应该随着与数据库相关的操作而扩展,以避免性能瓶颈。
与普通台式机相比,这些计算机通常具有更大的计算能力,可产生显着更高的基于哈希的计算量(哈希率),从而使服务器更具挖矿优势。
由于 SQL 数据库支持直接执行操作系统命令的不同向量,Purple Fox 利用了最隐蔽的方法,将二进制文件插入 SQL 服务器数据库,该方法可以通过 TSQL 命令执行。 SQL 组件提供了以下接口,供攻击者在针对 SQL 服务器时使用:
SQL 组件的可用接口
Purple Fox 选择在其感染链中使用 CLR 程序集(一组可以导入 SQL Server 的 DLL)来使用 .NET 方法,而不是更流行的 xp_cmdshell,后者已经受到安全分析师的严密监控。一旦导入了 DLL,它们就可以链接到可以通过 TSQL 脚本执行的存储进程。此向量的受影响版本从 SQL Server 2008 开始。
该方法默认需要系统管理员角色,以SQL Server服务帐号执行。通过利用这个接口,攻击者能够编译 .NET 程序集 DLL,然后将其导入 SQL 服务器。它还可以将程序集存储在 SQL Server 表中,创建映射到 CLR 方法的进程,最后运行该进程。
据报道,CLR Assemblies 方法之前已被 Purple Fox 以外的组织使用,例如 MrbMiner 和 Lemon Duck。
基础设施
此处描述的通信方案中使用的 C&C 服务器是受感染的服务器,它们是僵尸网络的一部分,用于托管 Purple Fox 的各种有效载荷。研究人员通过以下事实推导出这个结论:
C&C 服务器本身就是 SQL 服务器;
HTTP服务器报头是mORMot,它是用Delphi编写的,各种组件使用的是同一种语言;
有大量的服务器(一周内超过 1000 台);
两个初始 DNS 请求都是对 kozow[.]com 下子域的 CNAME,这是 dynu[.]com 提供的免费动态域服务。可以使用 API 更新此服务以使其指向不同的 IP 地址,攻击者使用这种技术定期更改 IP 地址。
其他显着特征
研究人员发现非服务器系统感染了 Purple Fox,这表明除了 SQL Server 暴力攻击之外,还有其他可能的初始访问方法来传播恶意软件。
此活动类似于在 Lemon Duck 攻击中看到的活动,甚至共享一些技术,例如使用 PowerSploit 进行反射 PE 加载并为 SQL Server 程序集实现相同的后门 evilclr.dll。两种攻击也有相同的目标,即挖掘门罗币。
安全建议
在观察到与 SQL 服务器上的 Purple Fox 僵尸网络相关的任何可疑活动后,研究人员建议执行以下步骤以彻底清除感染中的所有恶意程序:
1.检查所有 SQL Server 的存储进程和程序集,以查找 DBA 无法识别的任何可疑程序集。如果检测到,请删除这些组件中的任何一个。
2.执行以下 TSQL 脚本以删除插入到数据库中的恶意 CLR 程序集的以下残余恶意软件:
USE [master] GO DROP ASSEMBLY [fscbd] GO
3.禁用数据库服务器上的所有未知帐户并更改所有密码;
4.不要将对外暴露的 TCP 1433 端口发布到不受信任的区域。此外,通过具有良好保护的访问策略的 DMZ 区域中的外围防火墙保护 SQL 服务器主机;
5.实施适当的网络微分段和网络分区,同时通过网络安全控制应用零信任策略;
6.限制进出 SQL 服务器的流量,这些服务器具有非常特殊的功能;因此,它们应该只被允许与其他受信任的主机通信,还应控制入站和出站互联网可访问性。
本文翻译自:https://www.trendmicro.com/en_us/research/21/l/a-look-into-purple-fox-server-infrastructure.html如若转载,请注明原文地址