
Kernel-Mode-Prozessbeender unter Verwendung eines signierten BYOVD-Treibers. Funktioniert auf allen Windows 10/11. Keine Offsets, kein PDB. Rust.
Ein versionsübergreifender Windows-Prozessbeender. Er lädt einen signierten HONOR-Kernel-Treiber (MonProcessEX.sys), ermittelt die PID jedes Zielprozesses und beendet ihn aus dem Kernel-Kontext über ein einziges IOCTL. Keine Kernel-Offsets, keine PDB-Downloads, kein buildspezifischer Shellcode – die Technik funktioniert identisch auf jedem Windows-10- und Windows-11-Build.
Das Tool ist eine einzelne eigenständige 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, ohne dauerhafte Artefakte zu hinterlassen. Ziele sind zur Laufzeit über eine Konfigurationsdatei, die Befehlszeile oder die integrierten Standardwerte konfigurierbar.
Von Natur aus versionsübergreifend. Ein Treiber, ein IOCTL, eine Kill-Primitive. Funktioniert auf allen Windows-10- und Windows-11-Builds.
1. Halten Sie moncrush.exe und MonProcessEX.sys im selben Ordner.
2. Führen Sie es aus einer Eingabeaufforderung mit Administratorrechten aus.
moncrush.exe -n "notepad.exe,calc.exe"
3. Ziele werden beendet. Der Treiber entlädt sich selbst. Fertig.
Keine Toolchain, keine Offsets, kein Build-Schritt.
| Funktion | Details |
|---|---|
| Versionsübergreifend | Funktioniert auf allen Windows-10- und Windows-11-Builds, keine Offsets |
| Kernel-Modus-Kill | Der Treiber beendet die PID aus dem Kernel-Kontext |
| PPL-Bypass | Der MonProcessEX.sys-Kill-Pfad umgeht Schutzprüfungen für geschützte Prozesse |
| Signierter Treiber | MonProcessEX.sys ist ein echter signierter HONOR-Treiber |
| Nicht in MS-Blocklisten | Fehlt in den Blocklisten von Microsoft für anfällige Treiber |
| Eigenständig | Treiber wird über SCM installiert, gestartet und bereinigt |
| Null Abhängigkeiten | Statische Rust-Binärdatei; exe + Treiber ablegen und ausführen |
| Konfigurierbar | targets.conf oder -n, kein Neukompilieren erforderlich |
| Verschleiert | Gerätepfad und Zielliste sind im Ruhezustand verschlüsselt |
| Einzelne ausführbare Datei | Eine Binärdatei; Konsolenausgabe aus einer Shell, still bei Doppelklick |
| Trockenlauf-Modus | Ziele und PIDs vor dem Ausführen auflisten |
| Jitter-Schleife | --repeat prüft erneut mit randomisiertem Intervall |
| Exit-Codes + JSON | C2-freundliche Automatisierungsschnittstelle |
+-------------------------------------------------------------------------------------------+
| BENUTZERMODUS |
| |
| moncrush.exe |
| |
| +-------------------+ +-------------------+ +---------------------+ |
| | alle laufenden | | Ziel-PID über | | Abgleich mit der | |
| | Prozesse | -> | Prozesseintrag | -> | Zielliste, | |
| | auflisten | | auflösen | | PIDs sammeln | |
| +-------------------+ +-------------------+ +----------+----------+ |
| | |
| CreateFileW("\.\MonProcessEX") | |
| DeviceIoControl(IOCTL 0x22400C) | |
| Ausgabe = Beendigungsstatus v |
+-------------------------------------------------------------------------------------------+
| KERNELMODUS |
| |
| MonProcessEX.sys signierter HONOR-Kernel-Treiber |
| +---------------------------------------------------------------------------------+ |
| | | |
| | IOCTL 0x22400C -> PID-Beendigungsverteilung | |
| | | | |
| | | Prozesssuche im Kernel-Modus | |
| | v | |
| | EPROCESS gefunden -> aus dem Kernel-Kontext beendet | |
| | | | |
| | v | |
| | Prozessbeendigungspfad aufgerufen | |
| | | |
| +---------------------------------------------------------------------------------+ |
| |
| BEREINIGUNG |
| +---------------------------------------------------------------------------------+ |
| | SCM-Dienst gestoppt und gelöscht | |
| | Treiber entladen, keine dauerhaften Artefakte | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
Der Treiber stellt ein Kill-IOCTL bereit, das einen Prozess anhand seiner PID beendet. Die Benutzermodus-Komponente listet laufende Prozesse auf, ermittelt die PID jedes Ziels und übermittelt sie über die Geräteschnittstelle. Aus dem Benutzermodus werden keine Kernel-Strukturen berührt, sodass die Technik immun gegen Windows-Versionsänderungen ist.
cargo build --release --target x86_64-pc-windows-gnu
Das Release-Profil aktiviert LTO und eine einzelne Codegen-Einheit. Das Projekt ist eigenständig mit eigener [workspace]-Deklaration.
moncrush.exe [Optionen]
-s, --silent gesamte Konsolenausgabe unterdrücken
-r, --repeat weiterlaufen, Ziele erneut prüfen
-d, --dry-run Ziele auflisten, ohne zu beenden
-j, --json maschinenlesbare JSON-Ausgabe
-l, --list Zielnamen ausgeben und beenden
-v, --version Version ausgeben und beenden
-x, --self-destruct sich selbst nach erfolgreichem Lauf löschen
--no-check VM- und Debugger-Prüfungen überspringen
--delay <ms> vor der Ausführung schlafen
--jitter <ms> Wiederholungsintervall randomisieren
--max-attempts <n> nach n Kill-Durchläufen stoppen (0=unendlich)
--svc <name> benutzerdefinierter Dienstname
--driver <pfad> benutzerdefinierter Treiberdateipfad
-n, --names <csv> kommagetrennte Ziellisten-Überschreibung
-c, --config <pfad> Ziele aus Konfigurationsdatei laden
-h, --help diese Hilfe anzeigen
Exit-Codes: 0 ok, 2 keine Ziele, 3 Treiber fehlgeschlagen, 5 Umgebungsabbruch. Reihenfolge der Zielauflösung: --names > --config > targets.conf (Festplatte) > integrierte Standardwerte.
--no-check umgehbar.--delay <ms> schläft, bevor etwas unternommen wird, und bricht die Zeitkorrelation mit der ursprünglichen Ausführung.-x löscht die ausführbare Datei und bereinigt ihren Prefetch-Eintrag nach einem erfolgreichen Lauf.Die Zielliste ist ohne Neukompilieren vollständig konfigurierbar:
Konfigurationsdatei. Legen Sie eine targets.conf neben der ausführbaren Datei ab, ein Prozessname pro Zeile. Zeilen, die mit # beginnen, werden ignoriert:
MsMpEng.exe
csfalconservice.exe
SentinelAgent.exe
cortex_agent.exe
Eine Vorlage wird als targets.example.conf mitgeliefert.
Befehlszeile. moncrush.exe -n "MsMpEng.exe,csfalconservice.exe"
Integrierte Standardwerte. Ohne Konfiguration und ohne Flags umfasst der integrierte Satz:
MIT. Siehe LICENSE.
Dieses Projekt wird ausschließlich für Forschung und autorisierte Tests veröffentlicht. Das Laden unsignierter oder anfälliger Treiber in ein System, das Ihnen nicht gehört, ist in den meisten Rechtsordnungen illegal. Sie sind für die Einhaltung aller geltenden Gesetze und des Autorisierungsumfangs der von Ihnen getesteten Systeme verantwortlich.