文章总结: BYOVD攻击指攻击者利用合法签名但存在漏洞的驱动程序获取Windows内核权限从而绕过防御。攻击流程包括获取管理员权限、投递并加载漏洞驱动、利用IOCTL禁用EDR回调及部署载荷。文章以原神驱动滥用为例,指出该攻击得逞源于微软对旧证书的信任机制、黑名单更新滞后及EDR自我保护不足。 综合评分: 85 文章分类: 漏洞分析,终端安全,内网渗透,红队
什么是自带易受攻击驱动程序(BYOVD)攻击?
原创
网络安全9527 网络安全9527
安全圈的那点事儿
2026年3月2日 14:01 北京
BYOVD(自带漏洞驱动程序)攻击是一种Windows内核漏洞利用技术,攻击者将一个合法的、经过数字签名的、但存在漏洞的驱动程序加载到目标系统上。然后,他们利用该驱动程序中的漏洞来获取任意内核模式(Ring 0)的执行权限,这是Windows系统中最高的权限级别。
通过内核访问权限,攻击者可以终止 EDR 进程、禁用安全工具、篡改内核回调并绕过端点保护。由于驱动程序是受信任且已签名的,BYOVD 实际上滥用了微软的驱动程序信任模型来规避防御措施。
在MITRE ATT&CK框架中,BYOVD对应于T1068——权限提升利用,并且经常与T1562.001——削弱防御:禁用或修改工具重叠。它已成为勒索软件组织和APT攻击者寻求隐蔽权限提升和规避防御的常用技术。
BYOVD攻击是如何运作的?逐步技术解析
在BYOVD 攻击中,拥有管理员权限的攻击者会将包含已知漏洞的合法数字签名驱动程序安装到目标系统上。通过利用这些特定的驱动程序缺陷,攻击者可以获得关键的内核级访问权限,从而绕过或禁用端点安全控制措施,例如 EDR 和防病毒解决方案。
以下是典型的BYOVD 攻击的展开过程:
从初始访问到有效载荷部署的杀伤链流程
步骤 1:攻击者在 BYOVD 执行前获取管理员权限
BYOVD并非初始访问技术。它要求攻击者已拥有目标系统的本地管理员权限。这些权限通常通过网络钓鱼、利用面向公众的应用程序漏洞或从初始访问代理处购买访问权限等方式获得。
步骤二:将存在漏洞的驱动程序文件放到磁盘上以进行攻击
攻击者将.sys 文件(存在漏洞的驱动程序)放置在可写目录中,例如C:\Windows\Temp或C:\Users\Public。该驱动程序通常是合法的,通常直接取自供应商自己的安装程序,因此更难被检测出来。
步骤 3:在 Windows 中注册并加载存在漏洞的驱动程序
攻击者使用Windows 服务控制管理器注册并加载存在漏洞的驱动程序。这可以通过类似以下命令实现:
| | | — | | sc.exe 创建 vuln_driver类型= 内核 binPath= C:\Windows\Temp\vulnerable_driver.sys sc.exe 启动 vuln_driver |
或者通过NtLoadDriver API 以编程方式实现。
步骤 4:通过精心构造的 IOCTL 请求利用驱动程序漏洞
驱动程序加载完成后,攻击者会通过DeviceIoControl调用与其交互。这使得攻击者能够发送利用漏洞的特定I/O 控制代码。
例如,RTCore64.sys公开了 IOCTL 代码,可以对任意物理内存和虚拟内存进行读/写操作。
步骤 5:使用内核访问禁用端点安全工具
攻击者利用内核访问权限,通过读写原语枚举并删除系统上注册的所有EDR 回调函数。然后,他们禁用EDR 的用户模式进程,使端点无法抵御进一步的攻击。
步骤 6:防御绕过后部署主有效载荷
攻击者成功绕过安全防御后,便可部署勒索软件、数据窃取工具或其他持久化机制,而不受任何干扰,从而利用现在未受保护的系统。
现实版 BYOVD 攻击:原神驱动器滥用
勒索软件攻击者利用了热门角色扮演游戏《原神》中存在漏洞的反作弊驱动程序mhyprot2.sys [1]。
攻击者使用被盗用的管理员帐户通过远程桌面协议( RDP )连接到域控制器,然后将两个关键文件传输到系统桌面。第一个文件是mhyprot2.sys,它是游戏《原神》的合法且经过数字签名的反作弊驱动程序。第二个文件是一个名为kill_svc.exe的恶意可执行文件。
攻击者运行kill_svc.exe来启动绕过攻击。该文件将存在漏洞的mhyprot2.sys驱动程序安装为名为mhyprot2的服务。
驱动程序激活后,kill_svc.exe会扫描系统,查找特定的反病毒进程列表,例如uiWatchDog.exe和TmWSCSvc.exe 。它使用DeviceIoControl函数将此目标列表传递给易受攻击的驱动程序。在此步骤中,该可执行文件直接向驱动程序发送了控制代码0x81034000 。
0x81034000控制代码指示mhyprot2.sys驱动程序终止指定的进程。由于该驱动程序以 ring-0 内核权限运行,因此它成功地使用了ZwTerminateProcess函数终止了防病毒软件,绕过了标准用户模式保护。
由于终端保护完全禁用,攻击者启动了名为svchost.exe的勒索软件有效载荷,该有效载荷立即开始加密文件。
为什么 BYOVD 攻击如此有效地绕过防御?
BYOVD之所以有效,是因为它利用了Windows在建立内核代码信任方面存在的结构性缺陷。
数字签名问题
要了解攻击者如何利用驱动程序信任漏洞,我们必须考察微软如何保护 Windows 内核。自 Windows 10 起,微软通过要求所有新的内核模式驱动程序都必须通过开发者门户提交并获得直接数字签名来规范这种访问。
此前,开发者可以使用第三方“交叉证书”自行对驱动程序进行签名,而无需明确请求微软签名。为了避免破坏数百万依赖这些旧签名的旧设备,Windows 无法一概拒绝这些签名。
如果系统满足以下任一条件,Windows 将继续允许加载交叉签名的驱动程序:
- 旧证书:驱动程序使用 2015 年 7 月 29 日之前颁发的最终实体证书进行签名(前提是该证书可以追溯到经批准的交叉签名证书颁发机构)。
- 已禁用安全启动:计算机的 BIOS 已配置为关闭安全启动。
- 系统升级:该机器运行的是 Windows 10 版本 1607,但它是通过从较旧的 Windows 版本升级而来的,而不是全新安装的。
这些向后兼容性例外恰恰造成了 BYOVD 攻击所利用的漏洞。由于 Windows 仍然信任这些旧的、有效签名的驱动程序,攻击者无需伪造或窃取新的 Microsoft 签名即可获得内核级访问权限。
为什么微软存在漏洞的驱动程序黑名单无法阻止 BYOVD 攻击
任何黑名单最大的缺陷在于其被动性。驱动程序只有在漏洞被发现、报告之后,而且往往是在漏洞已被实际利用之后,才会被添加到黑名单中。攻击者深知这一点,因此会不断寻找新的、鲜为人知的或已被遗忘的驱动程序。
为了使黑名单能够有效抵御快速转移攻击目标的威胁行为者,必须持续更新。然而,微软的漏洞驱动程序黑名单通常会随着Windows操作系统的主要版本更新而更新(通常每年1-2次)。
为什么EDR自我保护不足
大多数 EDR 供应商都实现了防篡改保护,以防止其进程和驱动程序被停止。但是,防篡改保护与攻击者加载的易受攻击驱动程序运行在相同的权限级别(Ring 0)。如果诸如基于虚拟化的安全机制( VBS ) 之类的缓解措施被禁用,一旦攻击者获得任意内核读/写权限,他们就可以:
- 修改内存中的篡改保护检查
- 移除PspNotifyEnableMask和回调数组中 EDR 的回调注册
- 直接操纵EPROCESS结构以隐藏他们自己的进程
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全圈的那点事儿 网络安全9527 网络安全9527《什么是自带易受攻击驱动程序(BYOVD)攻击?》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论