
# Terminateur de processus en mode noyau utilisant un pilote BYOVD signé. Fonctionne sur toutes les versions de Windows 10/11. Sans offsets, sans PDB. Rust.
Un terminateur de processus Windows multi-versions. Il charge un pilote noyau HONOR signé (MonProcessEX.sys), résout le PID de chaque processus cible, et le termine depuis le contexte noyau via un seul IOCTL. Pas d'offsets noyau, pas de téléchargement PDB, pas de shellcode spécifique à une compilation — la technique fonctionne à l'identique sur toutes les versions de Windows 10 et Windows 11.
L'outil est un exécutable autonome unique. Il installe le pilote via le Gestionnaire de contrôle des services (SCM), effectue le kill, puis arrête et supprime le service, ne laissant aucune trace persistante derrière lui. Les cibles sont configurables à l'exécution via un fichier de configuration, la ligne de commande, ou les valeurs par défaut intégrées.
Multi-versions par conception. Un pilote, un IOCTL, une primitive de kill. Fonctionne sur toutes les versions de Windows 10 et Windows 11.
1. Gardez moncrush.exe et MonProcessEX.sys dans le même dossier.
2. Exécutez depuis un shell avec élévation de privilèges.
moncrush.exe -n "notepad.exe,calc.exe"
3. Les cibles meurent. Le pilote se décharge lui-même. Terminé.
Pas de chaîne d'outillage, pas d'offsets, pas d'étape de compilation.
| Fonctionnalité | Détails |
|---|---|
| Multi-versions | Fonctionne sur toutes les versions de Windows 10 et Windows 11, sans offsets |
| Kill en mode noyau | Le pilote termine le PID depuis le contexte noyau |
| Contournement PPL | Le chemin de kill de MonProcessEX.sys contourne les vérifications des processus protégés |
| Pilote signé | MonProcessEX.sys est un véritable pilote HONOR signé |
| Absent des règles de blocage MS | Non présent dans les règles de blocage des pilotes vulnérables de Microsoft |
| Autonome | Pilote installé, démarré et nettoyé via le SCM |
| Zéro dépendance | Binaire Rust statique ; déposez exe + pilote, exécutez |
| Configurable | targets.conf ou -n, aucune recompilation nécessaire |
| Obfusqué | Chemin du périphérique et liste des cibles chiffrés au repos |
| Exécutable unique | Un seul binaire ; sortie console depuis un shell, silencieux en double-clic |
| Mode dry-run | Énumère les cibles et les PID avant de s'engager |
| Boucle avec gigue | --repeat revérifie avec un intervalle aléatoire |
| Codes de sortie + JSON | Interface d'automatisation compatible C2 |
+-------------------------------------------------------------------------------------------+
| MODE UTILISATEUR |
| |
| moncrush.exe |
| |
| +-------------------+ +-------------------+ +---------------------+ |
| | énumère tous | | résout le PID | | compare à la | |
| | les processus | -> | cible via | -> | liste de cibles, | |
| | en cours | | l'entrée de | | collecte des PID | |
| | d'exécution | | processus | +----------+----------+ |
| +-------------------+ +-------------------+ | |
| | |
| CreateFileW("\.\MonProcessEX") | |
| DeviceIoControl(IOCTL 0x22400C) | |
| sortie = statut de terminaison v |
+-------------------------------------------------------------------------------------------+
| MODE NOYAU |
| |
| MonProcessEX.sys pilote noyau HONOR signé |
| +---------------------------------------------------------------------------------+ |
| | | |
| | IOCTL 0x22400C -> répartition de la terminaison du PID | |
| | | | |
| | | recherche de processus en mode noyau | |
| | v | |
| | EPROCESS localisé -> terminé depuis le contexte noyau | |
| | | | |
| | v | |
| | chemin de sortie du processus invoqué | |
| | | |
| +---------------------------------------------------------------------------------+ |
| |
| NETTOYAGE |
| +---------------------------------------------------------------------------------+ |
| | Service SCM arrêté et supprimé | |
| | pilote déchargé, aucune trace persistante | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
Le pilote expose un IOCTL de kill qui termine un processus à partir de son PID. Le composant en mode utilisateur énumère les processus en cours, résout le PID de chaque cible, et le soumet via l'interface du périphérique. Aucune structure noyau n'est touchée depuis le mode utilisateur, ce qui rend la technique insensible aux changements de version de Windows.
cargo build --release --target x86_64-pc-windows-gnu
Le profil de release active LTO et une unité de génération de code unique. Le projet est autonome avec sa propre déclaration [workspace].
moncrush.exe [options]
-s, --silent supprime toute sortie console
-r, --repeat continue de s'exécuter, revérifie les cibles
-d, --dry-run énumère les cibles sans tuer
-j, --json sortie JSON lisible par machine
-l, --list affiche les noms des cibles puis quitte
-v, --version affiche la version puis quitte
-x, --self-destruct se supprime après un run réussi
--no-check ignore les vérifications VM et débogueur
--delay <ms> attend avant d'exécuter
--jitter <ms> randomise l'intervalle de répétition
--max-attempts <n> s'arrête après n passes de kill (0=infini)
--svc <name> nom de service personnalisé
--driver <path> chemin de fichier pilote personnalisé
-n, --names <csv> remplace la liste de cibles (séparées par des virgules)
-c, --config <path> charge les cibles depuis un fichier de configuration
-h, --help affiche cette aide
Codes de sortie : 0 ok, 2 aucune cible, 3 échec du pilote, 5 abandon d'environnement. Ordre de résolution des cibles : --names > --config > targets.conf (disque) > valeurs par défaut intégrées.
--no-check lors des tests dans une VM.--delay <ms> attend avant toute action, brisant la corrélation temporelle avec l'exécution initiale.-x supprime l'exécutable et purge son entrée Prefetch après un run réussi.La liste des cibles est entièrement configurable sans recompilation :
Fichier de configuration. Déposez un targets.conf à côté de l'exécutable, un nom de processus par ligne. Les lignes commençant par # sont ignorées :
MsMpEng.exe
csfalconservice.exe
SentinelAgent.exe
cortex_agent.exe
Un modèle est fourni sous le nom targets.example.conf.
Ligne de commande. moncrush.exe -n "MsMpEng.exe,csfalconservice.exe"
Valeurs par défaut intégrées. Sans configuration ni options, l'ensemble intégré est :
MIT. Voir LICENSE.
Ce projet est publié à des fins de recherche et de tests autorisés uniquement. Charger des pilotes non signés ou vulnérables dans un système dont vous n'êtes pas propriétaire est illégal dans la plupart des juridictions. Vous êtes responsable du respect de toutes les lois applicables et du périmètre d'autorisation des systèmes que vous testez.