
Strumento di terminazione dei processi del kernel (exploit CVE-2026-0828)


?? Disclaimer: Questo progetto è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza. L'autore non è responsabile per qualsiasi uso improprio, danno o attività illegale causata da questo strumento. Utilizzare solo in ambienti di laboratorio isolati con autorizzazione esplicita.
KillChain è uno strumento in modalità utente che sfrutta un driver kernel vulnerabile (ProcessMonitorDriver.sys, CVE-2026-0828) per terminare processi protetti dallo spazio utente. Comunica con il kernel tramite un'interfaccia IOCTL personalizzata, bypassando i meccanismi standard di protezione dei processi.
Lo strumento incorpora il binario del driver direttamente nell'eseguibile, lo estrae in una posizione temporanea a runtime, lo registra come servizio kernel, lo carica tramite NtLoadDriver e invia richieste di terminazione tramite DeviceIoControl.
KillChain/
??? KillChain.cpp Punto di ingresso, parsing degli argomenti CLI, ciclo principale di terminazione
??? LoadDriver.h Estrazione del driver, registrazione del servizio, logica NtLoadDriver/NtUnloadDriver
??? Logger.h Logging thread-safe su console/file con output colorato
??? driverBytes.h Binario del driver incorporato (array di byte grezzi)
ProcessMonitorDriver.sys (incorporato nell'eseguibile)
??? Espone IOCTL_KILL_PROCESS (0xB822200C) termina un processo target tramite PID
1. Analizza gli argomenti CLI
2. Estrae il .sys incorporato ? %TEMP%\EmbeddedDriverService.sys
3. Crea la chiave di registro del servizio + registra tramite SCM
4. Carica il driver nel kernel tramite NtLoadDriver (richiede SeLoadDriverPrivilege)
5. Apre l'handle del dispositivo: \\.\STProcessMonitorDriver
6. Ciclo (fino a 360 secondi):
a. Risolve il PID tramite nome a ogni iterazione (se è stato usato --name)
b. Invia IOCTL_KILL_PROCESS con il PID target
c. Dopo 2 terminazioni riuscite, disabilita facoltativamente Windows Defender tramite registro
7. Chiude l'handle del dispositivo; esegue facoltativamente la pulizia con --uninstall-driver
SeLoadDriverPrivilege e accesso al registroKillChain.sln in Visual Studio 2022Ctrl+Shift+B per compilareOutput: x64\Release\KillChain.exe
KillChain.exe [options]
Opzioni:
--pid <PID> Termina il processo tramite PID
--name <ProcessName> Termina il processo tramite nome eseguibile
--disable-defender Disabilita anche Windows Defender tramite registro
--log-level <0-3> Verbosità del logging (0=errori, 1=normale, 2=verbose, 3=debug)
--output <file> Salva l'output del log su file
--uninstall-driver Scarica il driver, elimina il servizio e il file del driver
--help Mostra questo aiuto
REM Termina un processo protetto tramite nome
KillChain.exe --name MsMpEng.exe
REM Termina tramite PID con logging verbose scritto su file
KillChain.exe --pid 1234 --log-level 2 --output log.txt
REM Termina un processo e disabilita Windows Defender successivamente
KillChain.exe --name notepad.exe --disable-defender
REM Pulisce il driver dopo il test
KillChain.exe --uninstall-driver
| Costante | Valore |
|---|---|
IOCTL_KILL_PROCESS | 0xB822200C |
| Campo | Tipo | Descrizione |
|---|---|---|
| Buffer di input | ULONG64 | PID del processo target |
| Buffer di output |
L'output è thread-safe (supportato da una CRITICAL_SECTION) e può scrivere sulla console con colori ANSI e su un file di log simultaneamente.
CVE-2026-0828 ProcessMonitorDriver.sys espone un IOCTL che consente a qualsiasi chiamante in modalità utente con un handle al dispositivo di terminare processi arbitrari inclusi processi di sistema protetti senza i controlli standard di controllo accessi.
Eleven Red Pandas
Questo progetto è fornito esclusivamente per scopi educativi e di ricerca. La ridistribuzione o l'uso in ambienti di produzione è strettamente vietato.
| Funzionalità | Descrizione |
|---|
| Terminazione per PID | Termina qualsiasi processo tramite il suo PID numerico via IOCTL kernel |
| Terminazione per nome | Risolve e termina un processo tramite nome eseguibile, ricontrollato a ogni iterazione |
| Ciclo di persistenza | Monitora e ri-termina continuamente il target per un massimo di 360 secondi |
| Disabilita Defender | Scrive in HKLM\SOFTWARE\Policies\Microsoft\Windows Defender per disabilitare la protezione in tempo reale |
| Driver incorporato | Il binario del driver è integrato nell'eseguibile nessun file .sys esterno richiesto |
| Disinstallazione driver | Scarica il driver dal kernel, rimuove il servizio SCM, pulisce il registro, elimina il file temporaneo |
| Logging configurabile | Quattro livelli di verbosità con output opzionale su file |
DWORD |
| Non utilizzato (dummy) |
| Percorso dispositivo | \\.\STProcessMonitorDriver |
| Livello | Valore | Descrizione |
|---|
LOG_ERROR | 0 | Solo errori |
LOG_INFO | 1 | Messaggi operativi normali (predefinito) |
LOG_WARNING | 2 | Avvisi e messaggi informativi |
LOG_DEBUG | 3 | Traccia di debug completa |
| Passaggio | API Win32 / NT |
|---|
| Estrazione in temp | CreateFile + WriteFile |
| Registrazione servizio | RegCreateKeyEx + CreateService (SCM) |
| Caricamento nel kernel | NtLoadDriver (ntdll) |
| Verifica attivo | EnumDeviceDrivers + GetDeviceDriverBaseName |
| Scaricamento dal kernel | NtUnloadDriver (ntdll) |
| Rimozione servizio | DeleteService (SCM) + RegDeleteTree |
| Eliminazione file temporaneo | DeleteFile |