
Un framework di exploit per CVE-2018-19323 - vulnerabilità di elevazione dei privilegi di GIGABYTE GDrv con supporto multi-architettura e integrazione con framework.
Questo repository contiene un framework di sfruttamento completo e avanzato per CVE-2018-19323, una vulnerabilità critica nel driver gdrv.sys di GIGABYTE. Questa vulnerabilità consente a utenti non privilegiati di leggere e scrivere registri specifici del modello (MSR) arbitrari, portando a una compromissione completa del Ring-0 (kernel) e all'escalation dei privilegi a NT AUTHORITY\SYSTEM.
Il framework è progettato per essere modulare, robusto e ricco di funzionalità, offrendo uno strumento completo per la ricerca sulla sicurezza, il red teaming e l'analisi delle vulnerabilità.
IA32_LSTAR ed eseguendo uno shellcode di furto dei token.core, payloads, evasion, monitor, multiarch, framework) per una facile estensione e manutenzione..
├── exploit.py # Main exploitation framework and CLI
├── core.py # Core driver interaction and exploit primitives
├── payloads.py # Shellcode generation, custom payloads, and encoding
├── evasion.py # Anti-VM, anti-debugging, and persistence techniques
├── monitor.py # Logging, performance monitoring, and reporting
├── multiarch.py # Multi-architecture support (x86/x64/ARM64)
├── framework.py # Integration with Metasploit, Cobalt Strike, etc.
├── tests.py # Comprehensive unit, integration, and performance tests
└── README.md # This documentation file
gdrv.sys deve essere presente sul sistema target.psutil, cryptography, requests# Install required Python packages
pip install psutil cryptography requests
Il framework di sfruttamento principale viene eseguito tramite exploit.py. Fornisce diverse opzioni da riga di comando per diverse modalità operative.
# Display help and all available options
python exploit.py --help
# Default stealth mode (recommended)
# Runs all pre-flight evasion checks before exploitation.
python exploit.py
# Aggressive mode
# Skips evasion checks for faster execution in controlled environments.
python exploit.py --aggressive
# Debug mode
# Provides verbose logging for development and analysis.
python exploit.py --debug
# Run the full test suite
# Validates all framework components without executing the exploit.
python exploit.py --test-only
[!WARNING] Questo software è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza autorizzati. L'uso non autorizzato su qualsiasi sistema è illegale e severamente proibito. L'autore, kali, non è responsabile per qualsiasi danno o uso improprio di questo framework.
Il driver gdrv.sys espone un IOCTL 0xC3502580 che può essere richiamato da qualsiasi applicazione in modalità utente. Questo IOCTL accetta una struttura contenente un tipo di operazione (lettura/scrittura), un indice di registro MSR e un valore. Il driver non esegue alcun controllo degli accessi, consentendo a qualsiasi processo di leggere o scrivere su qualsiasi MSR.
Questa è una falla critica perché gli MSR controllano operazioni fondamentali della CPU. Nello specifico, l'MSR IA32_LSTAR (all'indirizzo 0xC0000082) memorizza l'indirizzo del gestore delle system call nel kernel. Leggendo questo MSR, possiamo aggirare la randomizzazione del layout dello spazio degli indirizzi del kernel (KASLR) e calcolare l'indirizzo di base del kernel. Scrivendo su di esso, possiamo reindirizzare le system call verso il nostro shellcode, ottenendo l'esecuzione di codice arbitrario in Ring-0.
\\.\GIO.IA32_LSTAR per ottenere un puntatore all'interno del kernel, aggirando KASLR.EPROCESS del processo corrente, individuare l'EPROCESS del processo SYSTEM (PID 4) e copiarne il token di sicurezza nel nostro processo.IA32_LSTAR viene sovrascritto con l'indirizzo del nostro shellcode.NT AUTHORITY\SYSTEM.IA32_LSTAR viene ripristinato per prevenire l'instabilità del sistema.evasion.py include controlli per il numero di core della CPU, la dimensione del disco, l'attività recente sui file, i programmi installati e il rilevamento avanzato di timing/hooking per creare un'impronta ambientale più robusta.payloads.py consente la generazione dinamica di vari payload (reverse shell, Meterpreter, beacon di Cobalt Strike) per diverse architetture, con più livelli di codifica.multiarch.py fornisce un livello di astrazione completo per gestire le differenze tra x86, x64 e ARM64, incluse le dimensioni dei puntatori, le convenzioni di chiamata, le strutture del kernel e i set di istruzioni.framework.py può generare moduli pronti all'uso per Metasploit (.rb), Cobalt Strike (.cna), Empire (.py) e Sliver (.go), automatizzando il processo di integrazione per le operazioni di red team.Il framework include una suite di test completa in tests.py. Puoi eseguire tutti i test per garantire l'integrità e la funzionalità di tutti i componenti.
# Run all unit, integration, and performance tests
python tests.py --all
# Run only unit tests
python tests.py --unit
Questo progetto è una dimostrazione di tecniche di sfruttamento avanzate e deve essere usato in modo responsabile.