概述
2025年7月下旬,我们在VirusTotal上发现可疑勒索软件样本,这些从波兰上传的文件使用包括notpetyanew.exe在内的多种文件名,暗示其与2017年席卷乌克兰等多国的极具破坏性恶意软件存在关联。NotPetya攻击被认为是史上破坏性最强的网络攻击,总损失超过100亿美元。尽管NotPetya与2016年3月首次发现的Petya勒索软件相似,但NotPetya的目的纯粹是破坏,因为无法从受害者的个人安装密钥恢复加密密钥。由于当前发现的样本同时具有Petya和NotPetya的特征,我们将这一新发现命名为HybridPetya。
虽然ESET遥测数据显示HybridPetya尚未在野外活跃使用,但这些样本中有一个重要细节引起了我们的注意——与原始NotPetya(以及Petya勒索软件)不同,HybridPetya还能够通过向EFI系统分区安装恶意EFI应用程序来感染现代UEFI系统。部署的UEFI应用程序负责加密NTFS相关的主文件表(MFT)文件——这是包含NTFS格式分区上所有文件信息的重要元数据文件。
经过进一步挖掘,我们在VirusTotal上发现了更有趣的内容:一个包含整个EFI系统分区内容的存档,其中包括非常相似的HybridPetya UEFI应用程序,但这次捆绑在特殊格式的cloak.dat文件中,该文件存在CVE-2024-7344漏洞——我们的团队在2025年初披露的UEFI安全启动绕过漏洞。
有趣的是,尽管VirusTotal上的文件名和当前样本中勒索票据的格式表明它们可能与NotPetya相关,但用于生成受害者个人安装密钥的算法与原始NotPetya不同,允许恶意软件操作员从受害者的个人安装密钥重建解密密钥。因此,HybridPetya可以作为常规勒索软件(更像Petya),而不是像NotPetya那样纯粹具有破坏性。
HybridPetya技术分析
在本节中,我们提供HybridPetya组件的技术分析:引导工具包及其安装程序。我们还单独剖析了能够通过利用CVE-2024-7344绕过UEFI安全启动的HybridPetya版本。请注意,HybridPetya支持传统和基于UEFI的系统——在本博客中,我们将重点介绍UEFI部分。
UEFI引导工具包
我们获得了两个不同版本的UEFI引导工具包组件,两者非常相似但存在某些差异。执行时,引导工具包首先从\EFI\Microsoft\Boot\config文件加载其配置,并检查指示当前加密状态的加密标志——与原始Petya/NotPetya样本相同,加密标志可以具有以下值之一:
- 0 - 准备加密
- 1 - 已加密
- 2 - 已支付赎金,磁盘已解密
磁盘加密
如果加密标志的值为0,引导工具包从配置数据中提取32字节长的Salsa20加密密钥和8字节长的随机数,随后重写配置文件,此时加密密钥被清零,加密标志设置为1。它继续使用Salsa20加密算法和配置中的密钥和随机数加密\EFI\Microsoft\Boot\verify文件。然后,在进行其主要功能——磁盘加密——之前,它在EFI系统分区上创建文件\EFI\Microsoft\Boot\counter;该文件的用途稍后解释。
磁盘加密过程从识别所有NTFS格式的分区开始。如图2所示,样本通过获取连接的存储设备句柄列表,通过检查EFI_BLOCK_IO_MEDIA->LogicalPartition为TRUE来识别各个分区,最后通过比较第一个分区扇区中数据的前四个字节与NTFS签名NTFS来验证分区是否为NTFS格式。
一旦识别出NTFS分区,引导工具包继续加密主文件表(MFT)文件,这是包含有关其他文件及其在NTFS格式分区上数据位置信息的基本元数据文件。如图3所示,在加密过程中,引导工具包用已加密磁盘簇的数量重写\EFI\Microsoft\Boot\counter文件的内容,并更新显示在受害者屏幕上的虚假CHKDSK消息(如图4所示),提供当前加密状态的信息(尽管根据消息,受害者可能认为正在检查磁盘错误,而不是正在加密)。
当加密完成时,引导工具包重新启动机器。
磁盘解密 如果引导工具包检测到磁盘已加密,意味着配置文件中的加密标志值为1,它会显示图5或图6中的勒索票据(取决于引导工具包版本),并要求受害者输入解密密钥。请注意,虽然HybridPetya勒索票据的格式与原始NotPetya(如图7所示)相同,但赎金金额、比特币地址和操作员的电子邮件地址不同。此外,通过UEFI安全启动绕过部署的版本使用不同的联系电子邮件地址(wowsmith999999@proton[.]me),而不是通过获得的安装程序部署的版本(wowsmith1234567@proton[.]me)。值得一提的是,两个版本中的比特币地址是相同的。
当输入正确长度——32个字符——的密钥并由受害者按Enter确认时,引导工具包继续验证密钥。如图8所示,通过尝试使用提供的密钥解密上述\EFI\Microsoft\Boot\verify文件,并检查明文是否仅包含值为0x07的字节来建立密钥有效性。请注意,通过UEFI安全启动绕过部署的引导工具包变体使用可能基于SPONGENT-256/256/16的算法对提供的密钥进行哈希处理,使用该哈希值作为解密密钥,而通过获得的安装程序部署的引导工具包直接使用用户输入。
如果输入了正确的密钥,引导工具包将加密标志值设置为2更新配置文件,并填入解密密钥。然后它读取\EFI\Microsoft\Boot\counter文件的内容(包含先前加密的磁盘簇数量)并继续进行磁盘解密。对于解密,引导工具包进行与NTFS分区发现和MFT解密非常相似的过程(Salsa20加密和解密过程相同),如磁盘加密部分所述。当解密的簇数等于计数器文件中的值时,解密停止。在MFT解密过程中,引导工具包在受害者屏幕上显示当前解密过程状态,如图9所示。
接下来,引导工具包继续从安装过程中先前创建的备份文件\EFI\Microsoft\Boot\bootmgfw.efi.old中恢复合法的引导加载程序\EFI\Microsoft\Boot\bootmgfw.efi和\EFI\Boot\bootx64.efi。
最后,在解密过程完成并恢复合法的引导加载程序后,引导工具包提示受害者重新启动设备(图10)。如果一切顺利,设备在重新启动后应成功启动操作系统。
部署UEFI引导工具包组件
在本节中,我们重点介绍发现的HybridPetya安装程序的引导工具包安装功能。请注意,我们能够获得的安装程序没有考虑UEFI安全启动。但是,如CVE-2024-7344利用部分所述,可能存在具有此类改进的变体。
为了确定系统是否基于UEFI,安装程序检索磁盘信息(IOCTL_DISK_GET_DRIVE_LAYOUT_EX),检查是否使用GPT分区方案(PARTITION_STYLE_GPT),并遍历分区,直到发现PARTITION_INFORMATION_GPT.PartitionType设置为PARTITION_SYSTEM_GUID的分区,这是EFI系统分区的标识符。在发现EFI系统分区后,它继续:
- 移除存储在
\EFI\Boot\Bootx64.efi中的备用UEFI引导加载程序。 - 将磁盘加密相关配置以及加密标志放到EFI系统分区上的
\EFI\Microsoft\Boot\config文件;加密配置包含Salsa20加密密钥、8字节随机数和受害者的个人安装密钥(base58编码数据)。 - 将包含值为0x07的0x200字节的加密验证数组放到EFI系统分区上的
\EFI\Microsoft\Boot\verify文件;该数组随后由引导工具包组件使用与磁盘加密相同的Salsa20密钥加密。该数组的目的是验证受害者是否输入了有效的解密密钥(通过使用输入的密钥解密数组,并验证明文包含值为0x07的字节数组)。 - 通过将基于Windows系统的默认引导加载程序
\EFI\Microsoft\Boot\bootmgfw.efi复制到\EFI\Microsoft\Boot\bootmgfw.efi.old来创建其备份。
完成后,它通过使用与Petya相同的方法——调用NtRaiseHardError API,ErrorStatus参数设置为0xC0000350(STATUS_HOST_DOWN),ResponseOption设置为值6(OptionShutdownSystem)——触发系统崩溃(蓝屏死机,BSOD),导致系统关闭。
上述更改确保在将Windows设置为主操作系统的系统上,一旦设备再次通电,引导工具包二进制文件将被执行。
CVE-2024-7344利用
在本节中,我们检查在VirusTotal上发现的存档,该存档包含UEFI引导工具包部分中描述的UEFI引导工具包的变体,但这次捆绑在与CVE-2024-7344相关的特殊格式的cloak.dat文件中——我们的团队在2025年初公开披露的UEFI安全启动绕过漏洞。
存档中存在的文件列表及其内容表明,此EFI系统分区是从已由此Petya/NotPetya仿冒变体加密的系统复制的。请注意,我们尚未获得负责部署此具有UEFI安全启动绕过的版本的安装程序,但基于存档的内容(如图11所示),该过程将与前一节中描述的过程非常相似。具体来说,存档包含:
\EFI\Microsoft\Boot\counter,一个已包含非零值的文件,表示先前由引导工具包加密的磁盘簇数量,\EFI\Microsoft\Boot\config,一个加密标志值设置为1的文件,意味着磁盘应该已经加密,引导工具包应继续显示勒索票据,\EFI\Microsoft\Boot\bootmgfw.efi.old,一个前0x400字节与值0x07进行XOR运算的文件,\EFI\Microsoft\Boot\bootmgfw.efi,一个合法但存在漏洞(CVE-2024-7344)的由Microsoft签名的UEFI应用程序(自2025年1月起在Microsoft的dbx中撤销);在本节中,我们将以其原始名称reloader.efi引用此文件,以及\EFI\Microsoft\Boot\cloak.dat,一个特殊制作的文件,可通过reloader.efi加载,并包含XORed的引导工具包二进制文件。
正如我们在2025年1月的报告中所述,利用机制非常简单。cloak.dat文件包含特殊格式的数据,其中包含一个UEFI应用程序。当reloader.efi二进制文件(部署为bootmgfw.efi)在启动期间执行时,它搜索EFI系统分区上cloak.dat文件的存在,并以非常不安全的方式从文件加载嵌入的UEFI应用程序,完全忽略任何完整性检查,从而绕过UEFI安全启动。
请注意,我们2025年1月的博客文章没有详细解释利用;因此,恶意软件作者可能基于反向工程易受攻击的应用程序自行重建了正确的cloak.dat文件格式。
在应用了Microsoft 2025年1月dbx更新的系统上无法利用此漏洞。有关如何保护和验证您的系统是否暴露于此漏洞的指导,请查看我们2025年1月博客文章的保护和检测部分。
结论
HybridPetya现在是至少第四个公开已知的真实或概念验证UEFI引导工具包,具有UEFI安全启动绕过功能,加入了BlackLotus(利用CVE-2022-21894)、BootKitty(利用LogoFail)和Hyper-V后门PoC(利用CVE-2020-26200)的行列。这表明安全启动绕过不仅是可能的——它们正变得越来越常见,对研究人员和攻击者都更具吸引力。
尽管HybridPetya没有主动传播,但其技术能力——尤其是MFT加密、UEFI系统兼容性和安全启动绕过——使其在未来的威胁监控中值得关注。
IoCs
全面的危害指标(IoCs)和样本列表可以在我们的GitHub存储库中找到。
文件
| SHA-1 | 文件名 | 检测 | 描述 |
|---|---|---|---|
| BD35908D5A5E9F7E41A61B7AB598AB9A88DB723D | bootmgfw.efi | EFI/Diskcoder.A | HybridPetya - UEFI引导工具包组件。 |
| 9DF922D00171AA3C31B75446D700EE567F8D787B | N/A | EFI/Diskcoder.A | HybridPetya - UEFI引导工具包组件,从cloak.dat提取。 |
| 9B0EE05FFFDA0B16CF9DAAC587CB92BB06D3981B | N/A | Win32/Injector.AJBK | HybridPetya安装程序。 |
| CDC8CB3D211589202B49A48618B0D90C4D8F86FD | core.dll | Win32/Filecoder.OSK | HybridPetya安装程序。 |
| D31F86BA572904192D7476CA376686E76E103D28 | f20000.mbam_update.exe | Win32/Filecoder.OSK | HybridPetya安装程序。 |
| A6EBFA062270A321241439E8DF72664CD54EA1BC | improved_notpetyanew.exe | Win32/Kryptik.BFRR | HybridPetya安装程序。 |
| C8E3F1BF0B67C83D2A6D9E594DE8067F0378E6C5 | notpetya_new.exe | Win32/Kryptik.BFRR | HybridPetya安装程序。 |
| C7C270F9D3AE80EC5E8926A3CD1FB5C9D208F1DC | notpetyanew.exe | Win32/Kryptik.BFRR | HybridPetya安装程序。 |
| 3393A8C258239D6802553FD1CCE397E18FA285A1 | notpetyanew_improved_final.exe | Win32/Kryptik.BFRR | HybridPetya安装程序。 |
| 98C3E659A903E74D2EE398464D3A5109E92BD9A9 | bootmgfw.efi | N/A | 易受CVE-2024-7433攻击的UEFI应用程序。 |
| D0BD283133A80B47137562F2AAAB740FA15E6441 | cloak.dat | EFI/Diskcoder.A | 与CVE-2024-7433相关的特殊格式cloak.dat,包含XORed的HybridPetya UEFI引导工具包组件。 |
MITRE ATT&CK技术
此表使用MITRE ATT&CK框架版本17构建。
| 战术 | ID | 名称 | 描述 |
|---|---|---|---|
| 资源开发 | T1587.001 | 开发能力:恶意软件 | HybridPetya是未知作者开发的具有UEFI兼容性和UEFI引导工具包组件的新勒索软件。 |
| 资源开发 | T1587.004 | 开发能力:漏洞利用 | HybridPetya的作者开发了用于CVE-2024-7344 UEFI安全启动绕过漏洞的漏洞利用。 |
| 执行 | T1203 | 客户端执行的漏洞利用 | HybridPetya利用CVE-2024-7344在启用UEFI安全启动的过时系统上执行未签名的UEFI引导工具包。 |
| 执行 | T1106 | 本机API | HybridPetya安装程序使用未记录的本机API NtRaiseHardError导致系统崩溃后安装引导工具包。 |
| 持久性 | T1542.003 | 预启动:引导工具包 | HybridPetya使用引导工具包组件持久化。它支持传统和UEFI系统。 |
| 持久性 | T1574 | 劫持执行流 | HybridPetya安装程序通过用恶意的替换合法的Windows引导加载程序来劫持常规系统启动过程。 |
| 权限提升 | T1068 | 权限提升的漏洞利用 | HybridPetya利用CVE-2024-7344绕过UEFI安全启动,并在启动期间以高权限执行恶意UEFI引导工具包。 |
| 防御规避 | T1211 | 防御规避的漏洞利用 | HybridPetya利用CVE-2024-7344绕过UEFI安全启动。 |
| 防御规避 | T1620 | 反射代码加载 | HybridPetya安装程序使用反射DLL加载技术。 |
| 防御规避 | T1036 | 伪装 | HybridPetya引导工具包在磁盘加密期间在屏幕上显示虚假CHKDSK消息以掩盖其恶意活动。 |
| 影响 | T1486 | 数据加密影响 | HybridPetya安装程序加密指定扩展名的文件,引导工具包组件加密每个NTFS格式分区上的MFT文件。 |
| 影响 | T1529 | 系统关闭/重启 | HybridPetya在MFT加密后重新启动设备。 |