Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/hika-sec/terminator_killer
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitEvasione IDS/IPSPenetration TestingRed Teaming
GitHubhika-sec/terminator_killer

Terminator_Killer

Killer di processi in modalità kernel che sfrutta CVE-2026-0828 (BYOVD) per terminare processi protetti tramite un driver firmato vulnerabile, aggirando PPL e la sicurezza degli endpoint.

Vedi Repository
121h 36m faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Terminator - Killer di Processi per Red Team

Uno strumento di terminazione dei processi in modalità kernel che sfrutta un driver vulnerabile (CVE-2026-0828) per terminare processi protetti dalla modalità utente.

Compilazione

Richiede MinGW-w64 (GCC) su Windows. Compilare con:

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

Dettaglio dei flag:

FlagScopo
--%Token di interruzione del parsing di PowerShell (passa gli argomenti letteralmente a g++)
-OzOttimizza per dimensioni minime
-ffunction-sections / -fdata-sectionsPosiziona ogni funzione/dato in una sezione separata
-static / -static-libgcc / -static-libstdc++Collegamento statico (nessuna dipendenza da DLL runtime)
-Wl,--gc-sectionsIl linker elimina le sezioni inutilizzate (garbage collection)
-WAbilita i warning

Output: terminator.exe autonomo (circa 20-30 KB senza simboli).

Focus tecnico

Questo progetto dimostra lo sfruttamento di un driver kernel vulnerabile (STProcessMonitorDriver) che espone un handler IOCTL_KILL_PROCESS non validato, consentendo la terminazione arbitraria dei processi indipendentemente da privilegi o meccanismi di protezione (PPL, flag EPROCESS, ecc.).

Dettaglio dell'architettura

ComponenteScopo
terminator.cppClient in modalità utente che enumera i processi e invia gli IOCTL di terminazione
terminator.hppInterfaccia di classe per l'enumerazione e la terminazione dei processi
ProcessMonitorDriver.sysDriver kernel vulnerabile (esterno, non incluso)

Analisi del codice

Terminator::GetProcessPids()

  • Crea uno snapshot tramite CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS)
  • Itera su tutti i processi con Process32First/Process32Next
  • Esegue corrispondenze senza distinzione tra maiuscole e minuscole rispetto ai nomi dei processi target
  • Restituisce un vettore di PID corrispondenti

Terminator::ProcessKill()

  • Apre un handle verso \\.\STProcessMonitorDriver
  • Entra in un ciclo di monitoraggio infinito (intervallo di 500 ms)
  • Per ogni PID individuato, invia IOCTL_KILL_PROCESS (0xB822200C) con un buffer PID di 8 byte
  • Nessun output quando i processi non vengono trovati; registra log solo in caso di tentativi di terminazione

Guida all'uso

Prerequisiti

Caricare il driver vulnerabile (richiede privilegi di Amministratore):

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

Sfruttamento di un servizio esistente

Se una versione vulnerabile di ProcessMonitorDriver.sys è già installata e in esecuzione come servizio (ad es., da un'applicazione legittima), Terminator può connettersi direttamente senza caricare un nuovo driver.

Verificare se il servizio esiste ed è in esecuzione:

root@kitploit:~
sc.exe query STProcessMonitor

Verificare che la versione del driver sia vulnerabile (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
}

Se il servizio esiste ed è RUNNING con una versione vulnerabile, saltare i passaggi di caricamento del driver ed eseguire Terminator direttamente.

Versioni interessate (testate)

VersioneSHA-256
11.11.4.070bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b
10.5.75.085d21ad0e0b43d122f3c9ec06036b08398635860c93d764f72fb550fb44cf786

Altre versioni potrebbero essere interessate; verificare l'handler IOCTL del driver prima dell'uso.

Eseguire Terminator

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

Esempio:

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

Output

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

Analisi di CVE-2026-0828

Vulnerabilità: Il driver STProcessMonitorDriver registra un handler IOCTL (0xB822200C) che:

  1. Accetta un PID a 64 bit fornito dall'utente come buffer di input
  2. Non esegue alcuna validazione sul valore del PID
  3. Chiama direttamente PsLookupProcessByProcessId → ZwTerminateProcess
  4. Viene eseguito nel contesto del kernel (token SYSTEM), aggirando tutte le ACL in modalità utente

Impatto: Qualsiasi utente non amministratore con accesso al driver può terminare:

  • Processi protetti (PPL)
  • Agenti antivirus/EDR
  • Processi critici di sistema (csrss, winlogon, ecc.)
  • Processi con requisiti SeDebugPrivilege

Causa principale: Mancata validazione tramite ObReferenceObjectByHandle, assenza di SeSinglePrivilegeCheck(SeDebugPrivilege) e nessun controllo degli accessi sull'oggetto processo.

Disclaimer

Questo strumento è destinato esclusivamente a ricerca sulla sicurezza autorizzata ed esercitazioni di red team.

L'uso non autorizzato contro sistemi di cui non si possiede la proprietà o per i quali non si dispone di un'esplicita autorizzazione ai test è illegale. L'autore non si assume alcuna responsabilità per un uso improprio. Assicurarsi di disporre di un'autorizzazione scritta prima di distribuirlo in qualsiasi ambiente.

Il driver vulnerabile (ProcessMonitorDriver.sys) è volutamente difettoso a scopo dimostrativo e non dovrebbe mai essere distribuito in produzione.

Scarica lo strumento