内核阴影下的猫鼠游戏:Silver Fox APT利用未公开漏洞驱动攻击分析

本文深度剖析Silver Fox APT组织利用微软签名的WatchDog反恶意软件驱动(amsdk.sys)漏洞的攻击活动。该驱动可终止受保护进程,实现EDR/AV绕过,并采用双驱动策略兼容不同Windows系统。研究还发现攻击者通过修改时间戳字段绕过哈希检测,最终投递ValleyRAT远控木马的全链条技术细节。

技术分析:全功能加载器

所有分析样本均采用自包含的全功能加载器形式部署。加载器由多个部分组成,每个部分承担特定功能:

  • 加载器存根 – 实现反分析技术并设置持久化
  • 两个嵌入式漏洞驱动 – 用于任意进程终止
  • EDR/AV清除逻辑 – 针对安全进程进行禁用
  • ValleyRAT下载器模块和配置 – 获取并执行最终载荷

约75%的检测样本未加壳,但攻击者偶尔会使用未经修改的常见公开加壳器(如UPX)。

反分析技术

样本执行时会执行多项常见反分析检查,包括反虚拟机(检测虚拟环境)、反沙箱(检测沙箱执行)、虚拟机监控程序检测等。任何检查失败都会中止执行并显示伪造的系统错误信息。

虚拟环境和虚拟机监控程序检测例程包含特定排除项,允许在计算机名称为以下值时继续执行:DESKTOP-T3N3M3QDESKTOP-03AMF90WIN-VMHH95J6C26。这些排除项可能用于避免在攻击者开发环境中的系统上中止执行。

部分检测样本还通过公共服务http[://]ip-api[.]com/json进行额外反分析检查。该服务用于获取受感染机器的公网IP信息,包括ISP(互联网服务提供商)和ORG(组织)字段。如果ISP或ORG值与预定义列表匹配,进程将终止并显示错误信息"该程序不支持您的配置。"

持久化设置

为实现持久化,加载器在系统路径C:\Program Files\RunTime下创建名为RunTime的文件夹。全功能加载器样本和根据受感染系统Windows版本选择的漏洞驱动会被放入该文件夹,文件名分别为RuntimeBroker.exeAmsdk_Service.sys

随后创建特定服务确保系统启动时自动执行这些文件。服务Termaintor负责维持全功能加载器副本的持久化,服务Amsdk_Service则是加载漏洞驱动所需的注册表配置项。

嵌入式载荷

虽然样本中大部分全局定义字符串仅经过Base64编码,但嵌入式载荷使用十六进制编码和Base64组合。这些载荷直接作为编码字节字符串嵌入二进制文件的.rdata节。

两个编码载荷是EDR/AV清除逻辑使用的不同漏洞驱动,根据检测到的Windows版本仅部署其中一个:

  • 旧版驱动:64位有效签名的Advanced Malware Protection驱动ZAM.exe(版本3.0.0.000),已知存在漏洞且被LOLDrivers和微软漏洞驱动阻止列表检测
  • 新版驱动:64位有效签名的WatchDog反恶意软件驱动amsdk.sys(版本1.0.600),此前未知漏洞,可绕过LOLDrivers和微软阻止列表

最终嵌入式载荷是编码的ValleyRAT下载器模块,包含其硬编码配置。

ValleyRAT下载器

ValleyRAT下载器阶段以Base64和十六进制字符串组合的编码格式嵌入全功能加载器中。解码后得到64位UPX加壳DLL,该DLL被转换为shellcode并通过反射式加载注入正在运行的进程(通常是svchost.exe实例)。

DLL内部名称上线模块.dll(Online module.dll)保存在导出目录中,同时包含三个导出函数:loadrun和第二个run。这些导出函数提供替代执行入口点,最终触发与DllMain相同的核心逻辑。

C2服务器在嵌入式配置中定义,IP地址和端口均以反向顺序存储。通信使用简单XOR密码加密,密钥为363636003797e4383a36。解密流量后发现下载内容包含最终载荷:ValleyRAT后门(又称Winos)。

技术分析:EDR/AV清除器

EDR/AV清除例程直接嵌入全功能加载器中。根据受感染系统的Windows版本,两个嵌入式漏洞驱动之一被释放。由于两个驱动均基于Zemana反恶意软件SDK,利用逻辑相同:滥用其任意进程终止能力。

核心清除逻辑在KillEDRMain函数中实现,遍历Base64编码的目标进程列表(包含192个独特进程名)。当发现列表中任何进程在系统上运行时,通过Windows API函数DeviceIoControl向驱动设备发送IOCTL序列0x80002010(IOCTL_REGISTER_PROCESS)和0x80002048(IOCTL_TERMINATE_PROCESS)来终止进程。

技术分析:新漏洞驱动

虽然全功能加载器可滥用两个版本的漏洞驱动(取决于目标Windows系统版本),但本节重点分析此前未知漏洞的WatchDog反恶意软件驱动(版本1.0.600)。

该驱动是64位有效签名的Windows内核设备驱动,内部名称为amsdk.sys,但原始PDB路径仍引用zam64.pdb,表明重用了Zemana反恶意软件SDK。由于驱动由微软签名,可在最新完全更新的Windows 10/11系统上加载使用。常见的检测和预防机制(如LOLDrivers和微软漏洞驱动阻止列表)对其无效。

尽管WatchDog反恶意软件开发者修改了部分代码(特别是驱动设备创建相关代码)以缓解Zemana SDK中的已知漏洞,但该驱动仍存在类似影响的漏洞,包括LPE(本地权限提升)、无限制原始磁盘读写访问、任意进程终止等。

漏洞描述

WatchDog反恶意软件驱动存在多个漏洞。首先,驱动可终止任意进程而不验证进程是否以受保护模式运行,这使其成为BYOVD(自带漏洞驱动)技术的理想选择,被滥用作EDR/AV清除器。

更关键的漏洞是其能够跨越安全边界,从非特权用户提升至System权限,直接导致LPE。根本原因在于驱动设备创建例程:虽然使用了更安全的内核函数IoCreateDeviceSecure并设置了强DACL,但设备特性未明确包含FILE_DEVICE_SECURE_OPEN标志。缺少此标志导致强DACL不适用于整个设备命名空间,允许非特权用户与设备通信。

通过结合对驱动设备的无限制访问及其执行特权操作的能力,可触发所有先前描述的漏洞。这些功能通过向设备发送特定IOCTL来触发,包括进程注册、获取完全访问进程句柄、任意进程终止、无限制原始磁盘读写等。

任意进程终止能力通过IOCTL 0x80002048触发,该IOCTL直接调用TerminateProcessById函数。此函数仅阻止标记为关键的进程终止,但不处理受保护进程,因此可自由终止安全解决方案进程。

最终阶段:ValleyRAT后门

所有分析样本最终都部署了知名的ValleyRAT后门。该恶意软件家族被强烈归因于Silver Fox APT组织。

与ValleyRAT下载器类似,部署的后门作为64位DLL转换为shellcode交付。DLL内部名称登录模块.dll保存在导出目录中,同时包含单个导出函数run。该导出函数几乎与DllMain相同,触发相同的主逻辑,可能作为替代执行机制。

其中一个首先执行的避免检测函数是通过Windows API EnumWindows调用的回调函数EnumFunc,用于检测与分析工具相关的窗口标题。如果检测到任何已定义窗口标题,执行将延迟20秒并继续枚举,直到未检测到任何工具。

缓解与修复

攻击者滥用的两个漏洞驱动中,旧版驱动已被微软漏洞驱动阻止列表分类为已知漏洞,但新版驱动可绕过所有检测机制。

由于主要风险来自此前未知的WatchDog反恶意软件驱动,研究人员向供应商报告了该活动。作为回应,供应商发布了补丁版WatchDog反恶意软件驱动wamsdk.sys(版本1.1.100)。新驱动通过强制执行强DACL和设置FILE_DEVICE_SECURE_OPEN设备特性缓解了LPE风险,但未缓解任意进程终止问题。

研究人员随后检测到该活动中滥用修补驱动修改变体的新样本。攻击者通过修改驱动微软Authenticode签名中未经身份验证时间戳字段的单个字节,创建了修改变体。由于此更改不影响嵌入式微软签名的有效性,Windows继续将驱动视为有效签名和受信任,同时文件哈希值不同,可绕过基于哈希的阻止列表。

建议手动应用最新版微软漏洞驱动阻止列表,并监控和预防这些驱动的滥用。

结论

本研究揭示了一个复杂的攻击活动,攻击者利用签名漏洞驱动绕过安全保护并部署ValleyRAT后门。通过滥用两个漏洞驱动,攻击者实现了任意进程终止,能够在多个Windows版本上禁用反恶意软件解决方案并保持隐蔽性。

对WatchDog反恶意软件驱动的新滥用表明,即使签名且看似可信的驱动也可能包含关键漏洞。攻击者通过修改驱动数字签名中未经身份验证属性来规避检测同时保持可信度的技术,暴露了仅依赖基于哈希或签名检测方法的局限性。

研究结果强调需要分层防御策略,包括及时应用微软漏洞驱动阻止列表、YARA签名等自定义检测规则,以及能够启发式识别和阻止此类威胁的基于行为的检测。这些组合措施对于在攻击者提升权限或禁用安全软件之前检测和预防漏洞驱动滥用至关重要。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计