
Kernel-Prozessbeendigungs-Tool (CVE-2026-0828-Exploit)


?? Haftungsausschluss: Dieses Projekt ist ausschließlich für Bildungs- und Sicherheitsforschungszwecke gedacht. Der Autor übernimmt keine Verantwortung für Missbrauch, Schäden oder illegale Aktivitäten, die durch dieses Tool verursacht werden. Verwenden Sie es nur in isolierten Laborumgebungen mit ausdrücklicher Genehmigung.
KillChain ist ein Benutzermodus-Tool, das einen verwundbaren Kernel-Treiber (ProcessMonitorDriver.sys, CVE-2026-0828) nutzt, um geschützte Prozesse aus dem Benutzerbereich zu beenden. Es kommuniziert über eine benutzerdefinierte IOCTL-Schnittstelle mit dem Kernel und umgeht dabei standardmäßige Prozessschutzmechanismen.
Das Tool bettet die Treiber-Binärdatei direkt in die ausführbare Datei ein, extrahiert sie zur Laufzeit an einen temporären Speicherort, registriert sie als Kernel-Dienst, lädt sie über NtLoadDriver und sendet Beendigungsanfragen über DeviceIoControl.
KillChain/
??? KillChain.cpp Einstiegspunkt, CLI-Argumentanalyse, Haupt-Beendigungsschleife
??? LoadDriver.h Treiberextraktion, Dienstregistrierung, NtLoadDriver/NtUnloadDriver-Logik
??? Logger.h Threadsichere Konsolen-/Dateiprotokollierung mit farbcodierter Ausgabe
??? driverBytes.h Eingebettete Treiber-Binärdatei (rohes Byte-Array)
ProcessMonitorDriver.sys (in der ausführbaren Datei eingebettet)
??? Stellt IOCTL_KILL_PROCESS (0xB822200C) bereit beendet einen Zielprozess anhand der PID
1. CLI-Argumente analysieren
2. Eingebettete .sys ? %TEMP%\EmbeddedDriverService.sys extrahieren
3. Registrierungsschlüssel für Dienst erstellen + über SCM registrieren
4. Treiber über NtLoadDriver in den Kernel laden (erfordert SeLoadDriverPrivilege)
5. Gerätehandle öffnen: \\.\STProcessMonitorDriver
6. Schleife (bis zu 360 Sekunden):
a. PID bei jeder Iteration anhand des Namens auflösen (falls --name verwendet wurde)
b. IOCTL_KILL_PROCESS mit der Ziel-PID senden
c. Nach 2 erfolgreichen Beendigungen optional Windows Defender über die Registrierung deaktivieren
7. Gerätehandle schließen; optional --uninstall-driver-Bereinigung ausführen
SeLoadDriverPrivilege und RegistrierungszugriffKillChain.sln in Visual Studio 2022Ctrl+Shift+B, um zu erstellenAusgabe: x64\Release\KillChain.exe
KillChain.exe [Optionen]
Optionen:
--pid <PID> Prozess anhand der PID beenden
--name <Prozessname> Prozess anhand des ausführbaren Namens beenden
--disable-defender Windows Defender zusätzlich über die Registrierung deaktivieren
--log-level <0-3> Protokollierungsausführlichkeit (0=Fehler, 1=Normal, 2=Ausführlich, 3=Debug)
--output <Datei> Protokollausgabe in Datei speichern
--uninstall-driver Treiber entladen, Dienst und Treiberdatei löschen
--help Diese Hilfe anzeigen
REM Geschützten Prozess anhand des Namens beenden
KillChain.exe --name MsMpEng.exe
REM Anhand der PID mit ausführlicher Protokollierung in eine Datei beenden
KillChain.exe --pid 1234 --log-level 2 --output log.txt
REM Prozess beenden und Windows Defender anschließend deaktivieren
KillChain.exe --name notepad.exe --disable-defender
REM Treiber nach dem Testen bereinigen
KillChain.exe --uninstall-driver
| Konstante | Wert |
|---|---|
IOCTL_KILL_PROCESS | 0xB822200C |
| Feld | Typ | Beschreibung |
|---|---|---|
| Eingabepuffer | ULONG64 | Zielprozess-PID |
| Ausgabepuffer | DWORD |
Die Ausgabe ist threadsicher (durch eine CRITICAL_SECTION abgesichert) und kann gleichzeitig mit ANSI-Farben auf der Konsole und in eine Protokolldatei geschrieben werden.
CVE-2026-0828 ProcessMonitorDriver.sys stellt ein IOCTL bereit, das es jedem Benutzermodus-Aufrufer mit einem Handle auf das Gerät ermöglicht, beliebige Prozesse zu beenden einschließlich geschützter Systemprozesse ohne standardmäßige Zugriffskontrollprüfungen.
Eleven Red Pandas
Dieses Projekt wird nur für Bildungs- und Forschungszwecke bereitgestellt. Die Weiterverbreitung oder Verwendung in Produktionsumgebungen ist strengstens untersagt.
| Funktion | Beschreibung |
|---|
| Beenden per PID | Beendet jeden Prozess anhand seiner numerischen PID über Kernel-IOCTL |
| Beenden per Name | Löst einen Prozess anhand des ausführbaren Namens auf und beendet ihn, bei jeder Iteration erneut geprüft |
| Persistenzschleife | Überwacht und beendet den Zielprozess kontinuierlich für bis zu 360 Sekunden |
| Defender deaktivieren | Schreibt in HKLM\SOFTWARE\Policies\Microsoft\Windows Defender, um den Echtzeitschutz zu deaktivieren |
| Eingebetteter Treiber | Die Treiber-Binärdatei ist in die ausführbare Datei integriert keine externe .sys-Datei erforderlich |
| Treiber-Deinstallation | Entlädt den Treiber aus dem Kernel, entfernt den SCM-Dienst, bereinigt die Registrierung, löscht die temporäre Datei |
| Konfigurierbare Protokollierung | Vier Ausführlichkeitsstufen mit optionaler Dateiausgabe |
| Unbenutzt (Dummy) |
| Gerätepfad | \\.\STProcessMonitorDriver |
| Stufe | Wert | Beschreibung |
|---|
LOG_ERROR | 0 | Nur Fehler |
LOG_INFO | 1 | Normale Betriebsmeldungen (Standard) |
LOG_WARNING | 2 | Warnungen und Informationsmeldungen |
LOG_DEBUG | 3 | Vollständige Debug-Ablaufverfolgung |
| Schritt | Win32 / NT-API |
|---|
| In Temp extrahieren | CreateFile + WriteFile |
| Dienst registrieren | RegCreateKeyEx + CreateService (SCM) |
| In Kernel laden | NtLoadDriver (ntdll) |
| Aktivität prüfen | EnumDeviceDrivers + GetDeviceDriverBaseName |
| Aus Kernel entladen | NtUnloadDriver (ntdll) |
| Dienst entfernen | DeleteService (SCM) + RegDeleteTree |
| Temporäre Datei löschen | DeleteFile |