多个威胁分子团伙利用泄露的Babuk代码构建ESXi加密器
2023-5-15 12:0:0 Author: www.4hou.com(查看原文) 阅读量:20 收藏

0.jpg

博文摘要

基于2021年泄露的Babuk源代码,SentinelLabs发现了10个勒索软件团伙使用VMware ESXi加密器(locker)。

这些变体出现在2022年下半年和2023年上半年,表明了Babuk源代码采用率与日俱增的趋势。

泄露的源代码使威胁分子能够攻击Linux系统,他们原本缺乏构建切实可行的程序的专长。

随着更多的威胁分子采用工具,源代码泄露进一步加大了追根溯源的复杂性。

背景介绍

在2023年初,SentinelLabs观察到基于Babuk(又名Babak或Babyk)的VMware ESXi勒索软件有所增加。2021年9月的Babuk泄露事件为我们深入了解有组织的勒索软件团伙的开发活动提供了大好机会。

由于ESXi在本地和混合企业网络中很普遍,这种虚拟机管理程序是勒索软件的重要目标。在过去的两年里,多个有组织的勒索软件团伙采用了Linux加密器,包括ALPHV、Black Basta、Conti、Lockbit和REvil。相比其他Linux变体,这些团伙更关注ESXi,利用ESXi虚拟机管理程序的内置工具来终结访客系统,然后加密关键的虚拟机管理程序文件。

我们发现泄露的Babuk源代码和归因于Conti和REvil的ESXi加密器之间存在重叠,后者的迭代版本彼此非常相似。我们还将它们与泄露的Conti Windows加密器源代码进行了比较,发现了共同的定制函数名和功能特性。

除了这些臭名昭著的团伙外,我们还发现了使用Babuk源代码生成更出名的ESXi加密器的小型勒索软件团伙。从Babuk衍生而来的ESXi加密器阵营越来越庞大,包括Ransom House团伙的Mario和之前未记录的ESXi版本的Play勒索软件。

Babuk背景

Babuk是ESXi勒索软件领域的早期团伙之一。该团伙的寿命在2021年受到影响,当时Babuk的开发人员泄露了Babuk基于C++的Linux可执行和可链接格式(ELF)ESXi、基于Golang的网络附加存储(NAS)和基于C++的Windows勒索软件工具的构建器源代码。

直到2022年初,没有太多迹象表明威胁分子改动了泄露的Babuk源代码,除了昙花一现的“Babuk 2.0”变体和偶尔死灰复燃的新的Windows勒索软件外。由于网络犯罪研究常针对Windows,Linux领域的动向悄然出现。

SentinelLabs通过源代码/6а6ак/esxi/enc/main.cpp中的字符串Doesn 't encrypted files: %d\n,发现了由Babuk派生而来的勒索软件。

1.jpg

图1. Babuk源代码main.cpp中的独特字符串

Babuk构建器为新生成的二进制文件指定文件名e_esxi.out。我们发现的几个样本都有类似的命名约定:

2.png

图2

在加密方面,ESXi Babuk使用Sosemanuk流密码的实现对目标文件进行加密,而Windows版本的Babuk使用HC-128加密。ESXi和Windows Babuk都使用Curve25519-Donna来生成加密密钥。

数代Babuk家族

比较方法

SentinelLabs整理出了未精简的Babuk二进制文件,为Babuk的外观和行为确立基准,此后称之为“基准Babuk”(Baseline Babuk)。为了解我们发现的变体是否与Babuk有关,我们将每个变体与这个基准Babuk样本进行了比较,凸显了显著的相似和差异之处。

Babuk 2023(.XVGV)

SHA1:e8bb26f62983055cfb602aa39a89998e8f512466

XVGV又名Babuk 2023,于2023年3月出现在Bleeping Computer的论坛上。基准Babuk和XVGV共享了由main.cpp派生而来的代码、来自args.cpp的参数处理函数和加密实现。

与Babuk一样,XVGV要求勒索软件团伙提供要加密的目录作为参数。在动态分析过程中,我们提供了测试系统的用户目录。在第一次运行时,样本在所有子目录中生成了勒索信HowToRestore.txt。

然而只有6个文件被加密,每个文件的扩展名为.log或.gz。查看包含的文件扩展名可以发现为什么破坏很有限:XVGV针对以VMware为中心的文件,排除那些与指定列表不匹配的文件。这是基准Babuk共有的行为,不过XVGV开发者添加了更多的文件扩展名。

3.jpg

图3. XVGV.rodata部分引用文件扩展名(左)和Babuk源代码对应部分

Play(.FinDom)

SHA1:dc8b9bc46f1d23779d3835f2b3648c21f4cf6151

该文件引用文件扩展名.FinDom以及勒索电子邮件地址[email protected],这些是与Play勒索软件相关的工件。这是针对Linux系统构建的第一个已知版本的Play,这与勒索软件团伙日益攻击Linux的趋势保持一致。Play包含与基准Babuk相同的文件搜索功能;它还使用Sosemanuk实现加密。

4.jpg

图4. 基准Babuk(左)和Play反汇编勒索信构造函数

Play二进制文件作为压缩包(SHA1: 9290478cda302b9535702af3a1dada25818ad9ce)的一部分被提交到VirusTotal,压缩包里有多种黑客工具和实用程序,包括AnyDesk、NetCat、特权升级批处理文件和编码的PowerShell Empire脚本,在获得初始访问权后它们与勒索软件团伙采用的技术相关联。

Mario(.emario)

SHA1:048 b3942c715c6bff15c94cdc0bb4414dbab9e07

Mario勒索软件由Ransom House运营,该团伙于2021年浮出水面。Ransom House最初声称,他们以易受攻击的网络为目标,窃取数据,并不加密文件。然而该团伙此后采用了加密器。

样本同样有一个很相似的find_files_recursive函数,包括默认的勒索信文件名How To Restore Your Files.txt。加密函数也一样。

冗长的勒索信内容是Mario ESXi加密器最独特的部分。Ransom House威胁分子向受害者提供了非常明确的指示,解释应该做什么、如何与他们联系。

5.jpg

图5. Mario字符串显示默认的Babuk日志信息和勒索信

Conti POC(.conti)

Conti POC—SHA1:091f4bddea8bf443bc8703730f15b21f7ccf00e9

Conti ESXi加密器SHA1:ee827023780964574f28c6ba333d800b73eae5c4

令我们惊讶的是,搜寻Babuk过程中发现了几个内部名为“Conti POC”的二进制文件,POC的全称可能是“概念验证”,这些二进制文件出现在2022年9月针对墨西哥实体的一起活动中。

Conti是一个臭名昭著的勒索软件团伙,组织严密、冷酷无情。泄露的信息显示,Conti的组织体系更像许多合法公司,而不是犯罪团伙:该团伙雇佣了中层管理和人力资源部门。大约在2021年初,泄露的聊天记录显示,Conti在让其ESXi加密器发挥功效时遇到了麻烦。

我们比较了Conti和Babuk的几个迭代版本,以评估两者的联系。Conti ESXi于2022年4月问世,这可能意味着Conti在2021年9月Babuk代码泄露后实现了该代码,最终使加密器发挥功效。

Conti POC和Conti ESXi加密器:Conti POC不太成熟,这与“概念验证”的名称倒是一致。Conti POC和Conti ESXi有许多相同的函数名和行为,包括相同的参数处理函数和条件。我们得出结论,这些样本是相关的;Conti POC可能是Conti ESXi加密器的前身。

6.jpg

图6. Conti ESXi(左)和Conti POC Babuk派生参数处理的横向比较视图

Conti POC & 基准Babuk:Conti POC SearchFiles和基准Babuk find_files_recursive函数非常相似,含有相同的文件状态变量名。Conti将此函数的某些部分移植到了其他本地模块,表明比基准Babuk更成熟。这两个家族还有相似的主函数,表明两者也有联系,Conti POC是更成熟的基准Babuk进化版。

7.jpg

图7. 基准Babuk(左)中的find_files_recursive和Conti POC中的SearchFiles

对比Conti Windows泄露代码:在Linux版本的Conti(POC和ESXi)与泄露的Windows Conti代码之间,实用程序和函数名称存在相当大的重叠。两个版本都使用相同的开源ChaCha加密实现。泄露的Conti Windows代码含有注释掉的对HandleCommandLine的引用——这是我们分析的其他Conti变体中看到的一个函数,以及几个需要解析的共享参数,比如prockiller。开发人员可能会在Windows版本与ESXi加密器之间对齐了函数名,以实现功能同等。

8.jpg

图8. Conti ESXi(左)和Windows main.cpp HandleCommandLine函数

REvil,又名Revix(.rhkrc)

RHKRC— SHA1:74e4b2f7abf9dbd376372c9b05b26b02c2872e4b

2021年6月Revix—SHA1:29f16c046a344e0d0adfea80d5d7958d6b6b8cfa

我们发现了一个内部名为RHKRC的类似Babuk的样本,它将.rhkrc扩展名附加到文件名的末尾,这个行为与REvil团伙的“Revix”ESXi加密器相关联。有意思的是,关于外头Revix的报告可以追溯到2021年6月,早于2021年9月的Babuk源代码泄露。

为了明白这在发展时间表中所在的位置,我们比较了相关活动的几个迭代版本:

RHKRC和Conti POC:这两个版本异常相似,都通过上述的ChaCha20实现了加密。它们有一个几乎相同的InitializeEncryptor函数。这些样品是相关的。

9.jpg

图9.来自RHKRC(左)和Conti POC的InitializeEncryptor函数

10.jpg

图10.来自RHKRC(左)和Conti POC的EncryptFull函数

RHKRC和基准Babuk:这些样本有许多相同的函数名,包括Babuk的原生线程池。然而,RHKRC实现加密的方式有所不同,它有更定制的ESXi CLI活动。我们认为这些样本是相关的,不过RHKRC更成熟,尽管同样处于“概念验证”阶段。

RHKRC和2021年6月Revix:我们比较了RHKRC和2021年6月活跃的Revix。Revix要成熟得多,包含在分析的其他变体中未看到的动态代码去混淆措施。RHKRC和Revix都有相同的内部文件名(elf.exe)、勒索信名称和附加的文件扩展名。然而,这些相似之处主要是表面上的,我们无法得出是否明确存在关联的结论。关于这些巧合的任何说法都只是猜测。

荣誉提名

SentinelLabs特别指出,还有另外几个已知的家族由Babuk ESXi源代码派生而来,包括:

Cylance勒索软件(与同名安全公司无关)

Dataf加密器

Rorschach,又名BabLock

Lock4

RTM加密器

虽然毫无疑问有更多的Babuk衍生变体未引起注意,但还有其他独特的ESXi勒索软件家族。粗略看一下ALPHV、BlackBasta、Hive和Lockbit的ESXi加密器,发现它们与Babuk没有明显的相似之处。

Babuk偶尔也会背黑锅。坊间报道的2月份ESXiArgs活动曾短暂摧毁了一些未打补丁的云服务,声称同名加密器由Babuk派生而来。然而我们分析后发现,ESXiArgs(SHA1: f25846f8cda8b0460e1db02ba6d3836ad3721f62)与Babuk几乎没有相似之处。唯一值得注意的相似之处是,使用相同的开源Sosemanuk加密实现。主函数完全不同,如下所示。ESXiArgs还使用外部shell脚本来搜索文件,向esxcli提供参数,因此没有原生的find_files_recursive函数可供比较。

11.jpg

图11. ESXiArgs主函数

结论

SentinelLabs的分析发现了ESXi勒索软件家族之间的意外联系,揭示了Babuk与Conti和REvil等更出名的团伙之间可能存在的关系。虽然与REvil的关系仍是暂时的,但这些团伙(Babuk、Conti和REvil)有可能将ESXi加密器项目外包给了同一家开发商。在勒索软件开发圈,Linux恶意软件开发商面临的人才库肯定要小得多,而勒索软件开发圈在开发高明的Windows恶意软件方面一直拥有可圈可点的专长。勒索软件团伙遭遇过无数次泄密,所以这些圈子中出现小规模泄露也在情理之中。此外,威胁分子可能共享代码进行协作,类似开放开发项目的源代码。

一个明显的趋势是,威胁分子日益使用Babuk构建器来开发ESXi和Linux勒索软件。当由资源较少的威胁分子使用时,这一点尤为明显,因为这些威胁分子不太可能大幅修改Babuk源代码。

从Babuk的ESXi加密器代码的流行程度来看,威胁分子也可能转向该团伙基于Go的NAS加密器。对于许多威胁分子来说,Gang仍然是小众的选择,但其人气在不断提升。被盯上的NAS系统也基于Linux。虽然NAS加密器不那么复杂,但代码清晰易读,这可能使熟悉Go或类似编程语言的开发人员更容易访问勒索软件。

攻陷指标

12.png

图12

本文翻译自:​https://www.sentinelone.com/labs/hypervisor-ransomware-multiple-threat-actor-groups-hop-on-leaked-babuk-code-to-build-esxi-lockers/如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/rq2k
如有侵权请联系:admin#unsafe.sh