
Kernel-Mode-Prozessbeender unter Verwendung eines signierten BYOVD-Treibers. Funktioniert auf allen Windows 10/11. Keine Offsets, kein PDB. Rust.
Ein versionsübergreifender Windows-Prozess-Terminator. Er lädt einen signierten HONOR-Kernel-Treiber (MonProcessEX.sys), ermittelt die PID jedes Zielprozesses und beendet ihn aus dem Kernel-Kontext heraus über einen einzigen IOCTL. Keine Kernel-Offsets, keine PDB-Downloads, kein build-spezifischer Shellcode – die Technik funktioniert identisch auf jedem Windows-10- und Windows-11-Build.
Das Tool ist eine einzelne, in sich geschlossene ausführbare Datei. Es installiert den Treiber über den Service Control Manager, führt den Kill aus und stoppt und löscht anschließend den Dienst, sodass kein persistentes Artefakt zurückbleibt. Die Ziele sind zur Laufzeit über eine Konfigurationsdatei, die Kommandozeile oder die integrierten Standardwerte konfigurierbar.
Von Grund auf versionsübergreifend. Ein Treiber, ein IOCTL, ein Kill-Primitiv. Funktioniert auf allen Windows-10- und Windows-11-Builds.
1. Keep moncrush.exe and MonProcessEX.sys in the same folder.
2. Run from an elevated shell.
moncrush.exe -n "notepad.exe,calc.exe"
3. Targets die. Driver unloads itself. Done.
Keine Toolchain, keine Offsets, kein Build-Schritt.
| Funktion | Details |
|---|---|
| Versionsübergreifend | Funktioniert auf allen Windows-10- und Windows-11-Builds, keine Offsets |
| Kernel-Mode-Kill | Treiber beendet die PID aus dem Kernel-Kontext |
| PPL-Bypass | Der Kill-Pfad von MonProcessEX.sys umgeht Prüfungen geschützter Prozesse |
| Signierter Treiber | MonProcessEX.sys ist ein echter signierter HONOR-Treiber |
| Nicht in den MS-Blockregeln | Fehlt in Microsofts Blockregeln für verwundbare Treiber |
| Selbstständig | Treiber wird über SCM installiert, gestartet und bereinigt |
| Keine Abhängigkeiten | Statisches Rust-Binary; exe + Treiber ablegen, ausführen |
| Konfigurierbar | targets.conf oder -n, kein Neukompilieren nötig |
| Obfuskiert | Gerätepfad und Zielliste im Ruhezustand verschlüsselt |
| Einzelne ausführbare Datei | Ein Binary; Konsolenausgabe aus einer Shell, still beim Doppelklick |
| Dry-Run-Modus | Ziele und PIDs vor der Ausführung auflisten |
| Jittered Loop | --repeat prüft erneut mit randomisiertem Intervall |
| Exit-Codes + JSON | C2-freundliche Automatisierungsschnittstelle |
+-------------------------------------------------------------------------------------------+
| USER MODE |
| |
| moncrush.exe |
| |
| +-------------------+ +-------------------+ +---------------------+ |
| | enumerate all | | resolve target | | match against | |
| | running | -> | PID via process | -> | target list, | |
| | processes | | entry | | collect PIDs | |
| +-------------------+ +-------------------+ +----------+----------+ |
| | |
| CreateFileW("\.\MonProcessEX") | |
| DeviceIoControl(IOCTL 0x22400C) | |
| output = termination status v |
+-------------------------------------------------------------------------------------------+
| KERNEL MODE |
| |
| MonProcessEX.sys signed HONOR kernel driver |
| +---------------------------------------------------------------------------------+ |
| | | |
| | IOCTL 0x22400C -> PID termination dispatch | |
| | | | |
| | | kernel-mode process lookup | |
| | v | |
| | EPROCESS located -> terminated from kernel context | |
| | | | |
| | v | |
| | process exit path invoked | |
| | | |
| +---------------------------------------------------------------------------------+ |
| |
| CLEANUP |
| +---------------------------------------------------------------------------------+ |
| | SCM service stopped and deleted | |
| | driver unloaded, no persistent artifact | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
Der Treiber stellt einen Kill-IOCTL bereit, der einen Prozess anhand seiner PID beendet. Die User-Mode-Komponente zählt laufende Prozesse auf, ermittelt die PID jedes Ziels und übergibt sie über die Geräteschnittstelle. Aus dem User Mode werden keine Kernel-Strukturen berührt, sodass die Technik immun gegen Änderungen der Windows-Version ist.
cargo build --release --target x86_64-pc-windows-gnu
Das Release-Profil aktiviert LTO und eine einzelne Codegen-Einheit. Das Projekt ist in sich geschlossen mit eigener [workspace]-Deklaration.
moncrush.exe [options]