二进制文件中是否包含BYOVD漏洞
结论(先给答案)
是。
这是典型的 RTCore64 内核驱动(\Device\RTCore64 / \DosDevices\RTCore64)。该驱动公开了 IOCTL 接口,任意用户进程都能读写任意内核地址,属于已公开的 BYOVD(Bring-Your-Own-Vulnerable-Driver)漏洞家族,曾被分配 CVE-2019-16098 / CVE-2020-15979 等编号,经常被攻击者用于本地提权与关闭 EDR。
为什么这么判定
-
文件身份
• 导入表全是 ZwOpenSection、MmIsAddressValid、ObReferenceObjectByHandle 等常见驱动 API。
• .rdata 中存在字符串 “\Device\RTCore64”、“\DosDevices\RTCore64”。
• 入口函数把 IRP_MJ_DEVICE_CONTROL 等分派例程指向 0x11400(未命名函数),且未设置安全描述符 → 任何用户皆可打开设备并发送 IOCTL。 -
关键函数行为(FUN_00011250)
反编译片段摘录:*(uint *)(ulonglong)*param_1 = uVar3; // 写入任意地址 *(byte *)(ulonglong)param_1[2] = (byte)param_1[4]; // 同样无检查写 for (i=0; i<param_1[7]; i++) *(byte *)(ulonglong)param_1[2] = *(byte *)((ulonglong)param_1[6]+i);· param_1 完全来自用户缓冲区(DeviceIoControl 的输入)。
· 驱动直接把这些字段当作内核地址读 / 写,没有地址验证(MmIsAddressValid 之类也未调用)。
→ 任意地址读写(写-what-where)。 -
漏洞利用面
• 用户态打开 “\\.\RTCore64”,构造特定 IOCTL 结构体即可写任意 4/8 字节到内核,或从任意地址读数据。
• 可覆写 Token->Privileges、HalDispatchTable、Callback 对象等实现 SYSTEM 提权、内核代码执行或关闭安全产品。
• 由于该驱动由微软 WHQL 签名,攻击者常用“挂靠”方式绕过驱动签名强制(即 BYOVD 场景)。 -
已知公开资料
• RTCore64.sys 随 MSI Afterburner、EVGA Precision、NZXT CAM 等软件分发。
• 多篇 POC / Metasploit 模块利用相同 IOCTL 0x9C403C0C / 0x9C40240C 等完成任意读写。
• 2022 年起多家 APT(BlackByte、AvosLocker、Lapsus$ 等)在实战中携带该驱动完成防护绕过。
风险与处置建议
• 任何拥有普通用户权限的攻击者都能瞬间获得 SYSTEM/Kernel 权限。
• 检查系统或映像中是否存在 RTCore64.sys / RTCore32.sys,并立即删除或更新到厂商新版本(2021-07-16 后的补丁版已限制 IOCTL)。
• 若必须使用相关软件,可在需求结束后停用并移除驱动,或采用微软 HVCI/CI 策略阻止加载易受攻击驱动。
• 安检/EDR 可通过设备名、IOCTL 码、哈希值 03e05814…e1e9 进行 IOC 检测。
因此,该二进制文件确实包含可被 BYOVD 利用的高危漏洞。
