WinRAR零日漏洞(CVE-2025-8088)利用检测:基于Defender XDR的KQL狩猎指南

4 阅读4分钟

Detecting CVE-2025-8088 post-exploitation attempts with Defender XDR via KQL.

(点击或回车查看全尺寸图片) Photo by the blowup on Unsplash

引言

ESET的研究人员发现了一个存在于WinRAR中的漏洞,并观察到该漏洞已在野外被利用。这是一个路径遍历漏洞,通过使用备用数据流(Alternate Data Streams)得以实现。他们已于昨日发布了相关报告

补丁更新

如果您、您的用户或客户正在使用WinRAR,或其受影响的相关组件,例如Windows版本的命令行工具、UnRAR.dll或可移植的UnRAR源代码,请立即升级到最新版本。

已打补丁的最新版本是WinRAR 7.13,请查看最新版本: WinRAR 7.12 最终版发布 - 适用于Windows的数据压缩、加密和归档工具,支持打开RAR和ZIP文件。

目标读者

鉴于存在漏洞的旧版WinRAR(v7.12)已被修复,且其最终版本已于2025年7月30日发布,我希望大多数使用WinRAR的组织目前都在运行已打补丁的最新版本。

但是,如果您或您的防御同仁正在使用微软安全套件(例如Defender XDR, Microsoft Sentinel)中的产品,并希望查询端点日志以寻找与此次WinRAR漏洞相关的、历史或潜在的利用后迹象,请继续阅读下文。

ESET和Talos均将下文所述的利用后技术归因于RomCom组织(亦称 Storm-0978、Tropical Scorpius 或 UNC2596)。

让我们开始深入探讨吧🧵

基于威胁报告的检测视角

我根据以下两份威胁报告构建了检测方法:

视角 #1:Mythic代理执行链

在第一个执行链中,恶意的LNK文件 Updater.lnk 会添加注册表项 HKCU\SOFTWARE\Classes\CLSID\{1299CF18-C4F5–4B6A-BB0F-2299F0398E27}\InprocServer32,并将其值设置为 %TEMP%\msedge.dll

因此,在受害者启动恶意的 .rar 文件后,某些注册表键中会留下预期的痕迹。

首先,%TEMP% 对应路径 C:\Users\<用户名>\AppData\Local\Temp。结合监控 InprocServer32 注册表值中的数据,应该能达到检测目的:

DeviceRegistryEvents
| where RegistryKey has_all("InprocServer32", "CLSID") 
    and RegistryValueData has @"AppData\Local\Temp" // %TEMP% 的转换路径

视角 #2:SnipBot变种执行链

在第二个执行链中,恶意的LNK文件 Display Settings.lnk 会运行 %LOCALAPPDATA%\ApbxHelper.exe

只有当特定的注册表值(在此样本中为 68)存在于 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\ 注册表键下时,Shellcode才会被执行。

这次,%LOCALAPPDATA% 对应路径 C:\Users\<用户名>\AppData\Local。我们需要确保检测到 \AppData\Local\ 内的其他备选路径,并将其添加到之前的查询部分。

此外,我们还可以添加一个针对ESET报告中提到的“Recent Docs反分析技术”的 or 语句:如果最近打开的文档数至少为69个,下一阶段的Shellcode会使用注册表项名称(例如 68,但从字符串转换为整数)进行解密。

DeviceRegistryEvents
| where (RegistryKey has_all ("InprocServer32", "CLSID") 
    and RegistryValueData has_any (@"AppData\Local\Temp", @"AppData\Local\"))
    or (RegistryKey has @"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\" 
    and RegistryValueName == 68)

视角 #3:MeltingClaw执行链

最后,此链由ESET在关于WinRAR利用活动的报告中提及,但最初由Talos追踪为一个基于C++的变种,称为“MeltingClaw”。

下一阶段的有效载荷 ShadyHammock 被放置在类似 C:\Users\<user>\AppData\Local\AppTemp\libapi.dll 的位置。 通过在注册表项 HKEY_USERS\S-1-..-CLASSES\CLSID\{F82B4EF1–93A9–4DDE-8015-F7950A1A6E31}\InprocServer32\ 中指定此DLL,将其加载到 explorer[.]exe 进程中。

之前的查询已经涵盖了这些利用后指标:

  • 注册表键 InprocServer32
  • 详细文件放置位置:AppData\Local\

最终检测查询语句

我认为下面的查询语句能为大多数环境中的威胁狩猎提供一个良好的起点。当然,在将其部署为检测规则前,请务必先进行验证。需要在注册表值中指定或排除某些预期的文件位置(例如 AppData\Local\Programs\<程序名> 可能是预期且良性的行为)。

// 排除常见或预期的条目。根据您的环境定义更多排除项。
let exclusions = dynamic([@"\AppData\Local\Microsoft\"]);
DeviceRegistryEvents
| where not(RegistryValueData has_any (exclusions))
| where (RegistryKey has_all("InprocServer32", "CLSID") 
    and RegistryValueData has_any (@"AppData\Local\Temp", @"AppData\Local\", @"%TEMP%", @"%LOCALAPPDATA%"))
    or (RegistryKey has @"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\" 
    and RegistryValueName == 68)
| project-reorder TimeGenerated, DeviceName, InitiatingProcessAccountName, ActionType, RegistryKey, RegistryValueData, RegistryValueType

额外查询

据报告,多种有效载荷是通过鱼叉式钓鱼活动传播的。您也可以通过以下查询,在您的环境中狩猎 .dat.rar 邮件附件的出现情况:

EmailEvents
| join EmailAttachmentInfo on $left. NetworkMessageId == $right.NetworkMessageId
| where FileType == "rar" or FileType == "dat"
| where DeliveryAction == 'Delivered'
| join DeviceFileEvents on $left.FileName == $right.FileName
| project-reorder DeliveryAction, Subject, FileName, FileExtension, EmailDirection, ThreatTypes, FolderPath, InitiatingProcessFileName, PreviousFileName

以上便是全部内容。希望您喜欢这篇文章,期待听到您的想法或反馈。祝好,注意安全。 CSD0tFqvECLokhw9aBeRqkTyXJZO5MFKTZZhZyvGlIegPgdKVb/uPXpjvJp172mE+zkIm2TFvEFyQcdYsMi4s6XogVnsK9H0Cu/EulbgwdCVGdEhXw4/e1VRiWYyDE4CRTBUAynCG5UeZtd5dGH2Xg==