BYOVD技术详解——内核级攻击的艺术

admin 2026-03-27 01:28:05 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文深入解析了BYOVD(BringYourOwnVulnerableDriver)技术,这是一种攻击者利用自身携带的存在漏洞的合法驱动程序,从用户态突破并获得内核级权限,以绕过或禁用EDR等安全软件的攻击技术。文中详细介绍了其攻击流程、常见的漏洞驱动(如RTCore64.sys、DBUtil23.sys等)以及EDRSilencer、EDRSandblast等实战工具,并探讨了相关防御措施。 综合评分: 85 文章分类: 渗透测试,红队,WEB安全,恶意软件,二进制安全


cover_image

BYOVD技术详解——内核级攻击的艺术

原创

pandazhengzheng pandazhengzheng

安全分析与研究

2026年3月20日 08:30 广东

一、前言概述

在现代终端安全防护体系中,EDR和防病毒软件通常运行在内核层,具有强大的自保护能力,传统的用户态攻击技术往往难以对抗这些内核级保护。

BYOVD(Bring Your Own Vulnerable Driver)技术的出现,为攻击者提供了一种从用户态突破到内核态的有效途径。

本文将深入解析BYOVD技术的原理、常见漏洞驱动、实战工具和防御措施,通过学习,读者将理解这一强大的内核级攻击技术,以及如何构建有效的防御体系。

二、相关内容

2.1 BYOVD概念与原理

2.1.1 什么是BYOVD?

BYOVD(Bring Your Own Vulnerable Driver)是一种攻击技术,攻击者将一个存在漏洞的合法驱动程序加载到系统中,利用该驱动的漏洞获得内核级权限,从而绕过或禁用安全软件。

2.1.2 为什么需要BYOVD?

1. 内核级权限需求

  • EDR/AV运行在内核层
  • 用户态攻击难以对抗内核保护
  • 需要内核权限才能终止EDR

2. 合法驱动的优势

  • 驱动有合法签名
  • 可以正常加载
  • 不易被阻止

3. 漏洞利用的价值

  • 利用驱动中的漏洞
  • 执行任意内核代码
  • 绕过驱动签名检查

2.1.3 BYOVD攻击流程

1. 寻找漏洞驱动
   └─▶ 漏洞数据库、已知CVE

2. 加载驱动到系统
   └─▶ 使用合法签名加载

3. 触发驱动漏洞
   └─▶ 利用漏洞执行内核代码

4. 执行内核操作
   └─▶ 终止EDR进程、修改内核数据

5. 清理痕迹
   └─▶ 卸载驱动、删除文件

2.2 常见漏洞驱动

2.2.1 RTCore64.sys

驱动信息:

  • 厂商:MSI (Micro-Star International)
  • 用途:MSI Afterburner显卡超频工具
  • 漏洞:任意内核读写
  • CVE:CVE-2019-16098

漏洞原理:

  • 驱动暴露了IOCTL接口
  • 允许用户态程序读写任意内核内存
  • 无权限检查

IOCTL代码:

#define IOCTL_READ_PHYSICAL_MEMORY 0x80002048
#define IOCTL_WRITE_PHYSICAL_MEMORY 0x8000204C
#define IOCTL_READ_VIRTUAL_MEMORY 0x80002054
#define IOCTL_WRITE_VIRTUAL_MEMORY 0x80002058

利用代码示例:

// 读取内核内存
struct READ_MEMORY {
    ULONG64 Address;
    ULONG64 Value;
};

HANDLE hDriver = CreateFile("\\\\.\\RTCore64", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

READ_MEMORY readMem;
readMem.Address = targetAddress;
DeviceIoControl(hDriver, IOCTL_READ_VIRTUAL_MEMORY, &readMem, sizeof(readMem), &readMem, sizeof(readMem), &bytesReturned, NULL);

2.2.2 DBUtil_2_3.sys

驱动信息:

  • 厂商:Dell
  • 用途:Dell BIOS Utility
  • 漏洞:任意内核读写
  • CVE:CVE-2021-21551

漏洞原理:

  • 驱动提供了读写物理内存的接口
  • 无权限验证

IOCTL代码:

#define IOCTL_READ_PHYSICAL_MEMORY 0x9B0C1EC4
#define IOCTL_WRITE_PHYSICAL_MEMORY 0x9B0C1EC8

2.2.3 其他常见漏洞驱动

| 驱动名称 | 厂商 | CVE | 漏洞类型 | | — | — | — | — | | gdrv.sys | Gigabyte | CVE-2018-19320 | 任意读写 | | capcom.sys | Capcom | – | 任意代码执行 | | PROCEXP152.sys | Sysinternals | – | 任意读写 | | Atszio64.sys | ASUSTeK | CVE-2019-18845 | 任意读写 | | WinRing0x64.sys | OpenLibSys | CVE-2020-12138 | 任意读写 | | AsIO.sys / AsIO64.sys | ASUS | 多个CVE | 任意读写 |

2.3 BYOVD实战工具分析

2.3.1 EDRSilencer

GitHub地址:https://github.com/netero1010/EDRSilencer

功能:

  • 使用BYOVD技术
  • 阻止EDR进程的网络连接
  • 防止EDR与云端通信

工作原理:

  1. 加载漏洞驱动(RTCore64.sys)
  2. 利用驱动修改内核网络过滤表
  3. 阻止EDR进程的网络连接

使用方法:

# 编译
cl EDRSilencer.c

# 运行
EDRSilencer.exe

2.3.2 EDRSandblast

GitHub地址:https://github.com/wavestone-cdt/EDRSandblast

功能:

  • 使用BYOVD技术
  • 终止EDR进程
  • 移除EDR回调
  • 禁用ETW

工作原理:

  1. 加载漏洞驱动(RTCore64.sys或DBUtil_2_3.sys)
  2. 在内核中定位EDR相关结构
  3. 移除EDR的回调函数
  4. 终止EDR进程

支持的目标:

  • CrowdStrike Falcon
  • Carbon Black
  • SentinelOne
  • Cybereason
  • Windows Defender

使用方法:

# 列出EDR进程
EDRSandblast.exe --list

# 终止所有EDR
EDRSandblast.exe --kill-all

# 移除EDR回调
EDRSandblast.exe --remove-callbacks

2.3.3 RealBlindingEDR

GitHub地址:https://github.com/myzxcg/RealBlindingEDR

功能:

  • 使用BYOVD技术
  • 致盲EDR(不终止)
  • 移除内核回调
  • Patch ETW/AMSI

特点:

  • EDR仍在运行
  • 但无法检测恶意活动
  • 更隐蔽

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全分析与研究 pandazhengzheng pandazhengzheng《BYOVD技术详解——内核级攻击的艺术》

AWS云安全加固Checklist 网络安全文章

AWS云安全加固Checklist

文章总结: 文章翻译整理了AWS云安全加固检查清单,覆盖身份与访问管理、网络安全、数据保护、存储、计算与数据库六大阶段,以条目化方式给出关键安全措施,强调最小权
评论:0   参与:  0