文章总结: 本文深入解析了BYOVD(BringYourOwnVulnerableDriver)技术,这是一种攻击者利用自身携带的存在漏洞的合法驱动程序,从用户态突破并获得内核级权限,以绕过或禁用EDR等安全软件的攻击技术。文中详细介绍了其攻击流程、常见的漏洞驱动(如RTCore64.sys、DBUtil23.sys等)以及EDRSilencer、EDRSandblast等实战工具,并探讨了相关防御措施。 综合评分: 85 文章分类: 渗透测试,红队,WEB安全,恶意软件,二进制安全
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与云端通信
工作原理:
- 加载漏洞驱动(RTCore64.sys)
- 利用驱动修改内核网络过滤表
- 阻止EDR进程的网络连接
使用方法:
# 编译
cl EDRSilencer.c
# 运行
EDRSilencer.exe
2.3.2 EDRSandblast
GitHub地址:https://github.com/wavestone-cdt/EDRSandblast
功能:
- 使用BYOVD技术
- 终止EDR进程
- 移除EDR回调
- 禁用ETW
工作原理:
- 加载漏洞驱动(RTCore64.sys或DBUtil_2_3.sys)
- 在内核中定位EDR相关结构
- 移除EDR的回调函数
- 终止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技术详解——内核级攻击的艺术》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论