标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-3476] 作者: 闲云野鸡 发表于: [2024-12-05]
本文共 [24] 位读者顶过
摘要这种攻击方式被称为BYOVD攻击, BYOVD 攻击的核心是攻击者将一个已知存在漏洞的内核驱动程序写入磁盘并加载,然后利用该漏洞执行特权操作。这些操作可能包括终止安全产品、绕过 EDR 防篡改保护、提取特权进程信息,或执行通常被 Windows 操作系统或安全软件阻止的其他操作。 [出自:jiwo.org]BYOVD技术背景 BYOVD(“自带漏洞驱动程序”)是指攻击者将合法但存在漏洞的驱动程序写入磁盘并加载到操作系统内核中,从而获得内核级访问权限。这种方式使他们能够绕过检测机制并在系统深层进行操控,通常可避开如 EDR(端点检测与响应)等防护措施。要实现这种攻击,攻击者首先需将驱动程序引入目标系统,然后启动特权进程加载该驱动程序,为后续的恶意行为奠定基础。 从历史来看,Windows 内核中的代码执行几乎没有任何限制,允许对内存进行不受约束的访问。然而,随着微软引入如 PatchGuard 和基于虚拟化的安全(VBS)以及具有虚拟化保护的代码完整性(HVCI)等安全措施,这种情况发生了改变,为内核建立了新的防护屏障。尽管如此,由于内核提供了强大的权限,它依然是恶意攻击者的主要目标。
为了保护内核,Windows 64 位操作系统强制要求所有驱动程序必须经过数字签名才能被加载。这项由代码完整性模块(CI.dll)支持的安全措施,被称为驱动程序签名强制(DSE)。这一要求极大地增加了攻击者在内核空间执行代码的难度,迫使他们寻找替代方法。 面对这些严格的安全措施,攻击者开发了 BYOVD 策略以获取内核访问权限。一旦驱动程序被引入系统,它便成为利用的目标,攻击者可通过其漏洞实现一系列恶意目的,体现了安全防御者与攻击者在内核安全领域的持续博弈。 攻击者的目标主要包括以下几个方面:
被利用的驱动程序种类 被BYOVD攻击滥用的驱动程序主要分为三类: 漏洞驱动程序、可武器化驱动程序和恶意驱动程序。 漏洞驱动程序是合法的驱动程序,但由于存在软件缺陷,攻击者可利用这些缺陷执行超出驱动程序设计功能范围的操作。例如,漏洞可能允许任意读取和写入内核内存,从而加载一个未签名的恶意驱动程序,绕过 Windows 的代码签名限制。 可武器化驱动程序是漏洞驱动程序的一个子集,具备特定的合法功能,但这些功能可以被恶意行为者重新利用,或“武器化”以达到恶意目的,而无需通过漏洞进行利用。例如,一些安全产品的驱动程序可终止受保护的进程。尽管这些功能是为了合法用途设计的,但攻击者可以利用它们对安全防护机制进行恶意篡改。 漏洞驱动程序与驱动程序中的可武器化功能有一个关键区别:漏洞是可以通过厂商提供的补丁或用户更新修复的,而可武器化功能是内置的功能,这些功能无法通过补丁移除,并且厂商可能会继续在其应用程序中提供这些功能。 恶意驱动程序通常出现在 BYOVD 攻击链中,往往在滥用漏洞驱动程序后由攻击者加载。这些驱动程序可能通过漏洞驱动程序代理加载,或者攻击者获取了被盗用或受损的代码签名证书后直接加载。恶意驱动程序通常会注销已知 EDR 驱动程序的内核回调,或隐藏文件系统、网络活动或注册表活动,以规避监控。 可武器化驱动程序因其能终止 EDR 进程且易于操作,受到许多网络犯罪分子的青睐,因为它们不需要额外的恶意驱动程序支持。这种趋势也体现在本文讨论的入侵案例中,攻击者携带了六个可武器化驱动程序,这些驱动程序都有公共的概念验证(POC)代码,可以在代码共享网站或 loldrivers 项目中获取。 以下展示了攻击者利用 BYOVD 攻击链中的6个漏洞驱动程序进行持续攻击的操作: BYOVD利用驱动1-TfSysMon.sysTfSysMon.sys 是一个已知的漏洞驱动程序,被观察到多次被 eCrime 团伙滥用。该驱动程序来自 ThreatFire System Monitor应用,属于可被武器化的漏洞驱动程序类别。在这种情况下,TfSysMon.sys可以通过特定构造的 IOCTL 请求终止受保护的进程(例如 EDR 产品)。 最初,攻击者尝试通过 wmic.exe使用命令行 process call create 间接启动恶意文件 WatchMgrsCore.exe进行代理执行。这种通过 Windows Management Instrumentation (WMI) 的执行行为由 Falcon 检测为可疑并被阻止,其父进程显示为 WmiPrvSe.exe。 随后,攻击者切换账户,通过 RDP 再次登录到域控制器,并尝试以该用户直接执行 WatchMgrsCore.exe。这次执行将驱动程序文件 TfSysMon.sys写入磁盘,并因对该驱动程序发起的可疑 IOCTL 请求触发了 BYOVD 防护机制。此驱动程序伪装为文件 C:\Windows\WatchMgrsCore.sys。 BYOVD利用驱动2-TrueSight.sys对手随后尝试通过引入新的二进制文件 C:\Users\Public\syscoreservice.exe来切换到一个新的驱动程序。此文件放置了另一个已知的易受攻击驱动程序 TrueSight.sys,伪装成 C:\Windows\System32\drivers\truepath.sys文件。该文件也被归类为“可武器化”,可用于终止 EDR 产品。 BYOVD利用驱动3-aswArPot.sys在多次尝试执行恶意 PowerShell 脚本失败之间,攻击者将著名的易受攻击驱动程序 aswArPot.sys 复制到磁盘,存储路径为 C:\Users\Public\aswArPot.sys。该易受攻击的驱动程序是 Avast Anti-Rootkit 的一部分,包含允许终止受保护进程的 API 函数。多年来,电子犯罪勒索软件的攻击者已多次使用该驱动程序。 BYOVD利用驱动4-viragt64.sys攻击者随后试图在 C:\AU_Data\Bin 下的新位置部署进一步的恶意软件。这些文件中的两个,loader.exe 和 loader_protected.exe,接着,攻击者执行了另一个独特的二进制文件:magic.exe。此二进制文件被执行后,写入了易受攻击的驱动程序 viragt64.sys,路径为 C:\Users\<REDACTED>\AppData\Local\Temp\20240815.sys。该驱动程序最初是 Vir.IT eXplorer Anti-Virus 产品的一部分。随着时间的推移,该驱动程序存在多个关联的 CVE,允许在内核中执行任意代码。 magic.exe 加载程序通过服务控制以伪装成 Microsoft 知识库更新的服务名来尝试启动驱动程序,使用的命令行是“sc create KB20240815 binpath= C:\Users\<REDACTED>\AppData\Local\Temp\20240815.sys type= kernel start=auto” 和 “sc start KB20240815”。 BYOVD利用驱动5-rentdrv2.sys攻击者随后将另一个易受攻击的驱动程序 rentdrv2.sys复制到磁盘,伪装成 C:\AU_Data\1721289943.sys.5。rentdrv2.sys 也存在漏洞,具有终止受保护进程的可武器化能力。 BYOVD利用驱动6-ksapi64.sys该易受攻击的驱动程序是可武器化的 ksapi64.sys,是 Kingsoft Antivirus Security System 的一部分,可被滥用来终止受保护的进程。该驱动程序伪装为 C:\Users\Public\WinDAPI.sys 和 C:\Users\Public\WinDAPI64.sys。 |