尽管勒索软件一直是在不断发展的,但 Royal 勒索软件的进化速度却超乎寻常。自动被在野发现后,Royal 勒索软件不断更新升级,在六个月里针对众多行业和国家发起了频繁的攻击。
Royal 勒索软件采用了各种检测规避技术,一旦成功获取了访问权限就很难中止加密过程。样本的一些特性,让研究人员想起了 2020 年的 Conti 勒索软件。AdvIntel 的 Vitali Kremez 的研究也表明,Conti 勒索软件与 Royal 勒索软件之间存在直接关联。
Royal 勒索软件
Royal 勒索软件最初在 2022 年 1 月被发现时命名为 Zeon,在 2022 年 9 月更名为 Roayl。攻击者经常针对制造业、医疗保健行业、食品行业与教育行业发起攻击,大概超过 60% 的目标都在美国,但欧洲与拉丁美洲等世界上其他国家也没有被排除在外。
Royal 目标行业排行
在过去的半年中,Royal 不仅攻击小公司也攻击大公司。尤其在 2022 年 12 月,似乎有转向攻击大公司的苗头。2023 年第一季度来看,整体的攻击数量有所下降,针对小公司的攻击也在下降。
Royal 目标规模统计
自从 2022 年 9 月,Royal 勒索软件的每个变种都会利用不同的技术手段。例如:
Callback 钓鱼
通过 SMB 进行文件加密
扩大 LOLbin 的利用率
滥用 CVE-2022-27510 等新漏洞
借助常见的恶意软件与攻击工具,例如 Qbot、Batloader、Cobalt Strike 等
Royal 行为变化时间线
投递
在一次利用 SMB 进行文件加密的攻击中,研究人员发现攻击者入侵了目标网络并且远程加密了五台设备上的文件。在这次攻击中,攻击者并没有禁用反病毒软件与 EDR,也没有删除卷影副本。省略这些操作可能是为了避免触发告警,从而影响加密行为被拦截。
攻击者首先获得了对服务器 A 的访问权限,并且启动了虚拟机。利用虚拟机,通过 SMB 协议成功连接到另外五台服务器。
攻击事件中的攻击流程
获取了访问权限后,攻击者开始远程加密。执行的命令行包括 IP 地址与目标驱动器,如下所示:
[RansomwareName].exe -ep 5 -path \\XXX.XXX.XXX.XXX\C$ -id [32 char string]
由于攻击者使用了新创建的虚拟机,其中并没有安装任何防护软件,设备上进行的恶意活动就被掩盖了。
Conti 勒索软件
Royal 勒索软件的攻击与 Conti 勒索软件较为相似。2020 年,Conti 就使用命令行执行的方式针对本地驱动器、网络共享甚至特定 IP 地址进行攻击,不仅如此,2020 年的 Conti 样本与 2023 年的 Royal 样本也存在许多相似之处。
样本相似韦恩图
二者较为关键的区别是 Conti 样本使用的互斥量和用于 API 解析的字符串都经过了高度混淆,而 Royal 样本并没有使用互斥量并且使用了明文的命令。这可能是由于 Conti 的源代码已经泄露,无需大费周章来进行代码混淆。
Royal 的新进展
与 2022 年年底发现的样本相比,2023 年的 Royal 勒索软件又新增了额外的功能,例如两个新的命令行参数、两个要跳过的文件扩展名、修改后的加密后文件扩展名。新增的命令行参数 -localonly
与 -networkonly
允许用户指定在本机还是网络共享上进行扫描,不需要依赖指定路径。
新增命令行参数
新增的要跳过的文件扩展名为 .royal_w
与 .royal_u
。前者是加密后的文件扩展,而后者的用途则尚不清楚。过去的样本文件使用的加密文件后缀为 .royal
,而新样本使用了新的加密文件后缀 .royal_w
。
最近研究人员发现了一个针对 ESXi 服务器的 Roayl 新变种,该样本使用 .royal_u
作为加密文件扩展名。并且 -localonly
与 -networkonly
也被替换为 stopvm
等新参数,也增加了更多的跳过文件扩展名。
Linux 变种加密文件扩展名
检测不断发展的威胁
Royal 在短短三个月内就更新了三个变种,这显示攻击者正在快速调整与更新,能够检出这些不断发展的威胁是至关重要的。
告警截图
结论
Royal 针对多个国家与行业发起了多次攻击,不仅大量应用各种新技术,最近发现针对 Linux 也在进行扩张。这些都表明攻击者创造力十足,并且保持着快速更新的热情。不出意外的话,未来仍然会发现 Royal 勒索软件出现更多的变种。事实上,完成调查后研究人员就又发现了 Royal 使用新技术。
Yara
rule royal_note_cmdln_fileext
{
meta:
author = “Carbon Black TAU” //bdana & snyderd
date = “2023-Feb-28”
description = “Identifies Royal Ransomware Variant with -localonly and -networkonly options available for command line execution”
rule_version = 1
yara_version = “4.2.0”
exemplar_hash = 972429ab773f3f31180430f6fedc8b93b43f0f8d49b9e2d0ef22ac8589744648
strings:
$ransom_note = “If you are reading this, it means that your system were hit by Royal ransomware.” ascii wide
$cmdline_1 = “-path” ascii wide
$cmdline_2 = “-id” ascii wide
$cmdline_3 = “-ep” ascii wide
$cmdline_4 = “-localonly” ascii wide
$cmdline_5 = “-networkonly” ascii wide
$file_ext_1 = “.royal_u” ascii wide
$file_ext_2 = “.royal_w” ascii wide
condition:
all of them
}