Un framework d'exploitation pour CVE-2018-19323 - vulnérabilité d'élévation de privilèges GIGABYTE GDrv avec prise en charge multi-architecture et intégration de framework
Ce dépôt contient un framework d'exploitation complet et avancé pour CVE-2018-19323, une vulnérabilité critique dans le pilote gdrv.sys de GIGABYTE. Cette vulnérabilité permet à des utilisateurs non privilégiés de lire et d'écrire arbitrairement dans les registres spécifiques au modèle (MSR), conduisant à un compromis complet du Ring-0 (noyau) et à une élévation de privilèges vers NT AUTHORITY\SYSTEM.
Le framework est conçu pour être modulaire, robuste et riche en fonctionnalités, offrant un outil complet pour la recherche en sécurité, les opérations Red Team et l'analyse de vulnérabilités.
IA32_LSTAR et en exécutant un shellcode de vol de jeton.core, payloads, evasion, monitor, multiarch, framework) pour une extension et une maintenance faciles..
├── exploit.py # Framework d'exploitation principal et CLI
├── core.py # Interaction avec le pilote et primitives d'exploitation
├── payloads.py # Génération de shellcode, payloads personnalisés et encodage
├── evasion.py # Techniques anti-VM, anti-débogage et persistance
├── monitor.py # Journalisation, suivi des performances et rapports
├── multiarch.py # Support multi-architecture (x86/x64/ARM64)
├── framework.py # Intégration avec Metasploit, Cobalt Strike, etc.
├── tests.py # Tests unitaires, d'intégration et de performance complets
└── README.md # Ce fichier de documentation
gdrv.sys doit être présent sur le système cible.psutil, cryptography, requests# Installer les paquets Python requis
pip install psutil cryptography requests
Le framework d'exploitation principal est exécuté via exploit.py. Il fournit plusieurs options en ligne de commande pour différents modes opérationnels.
# Afficher l'aide et toutes les options disponibles
python exploit.py --help
# Mode furtif par défaut (recommandé)
# Exécute toutes les vérifications d'évasion avant l'exploitation.
python exploit.py
# Mode agressif
# Ignore les vérifications d'évasion pour une exécution plus rapide dans des environnements contrôlés.
python exploit.py --aggressive
# Mode débogage
# Fournit une journalisation détaillée pour le développement et l'analyse.
python exploit.py --debug
# Exécuter la suite complète de tests
# Valide tous les composants du framework sans exécuter l'exploit.
python exploit.py --test-only
[!WARNING] Ce logiciel est destiné à des fins éducatives et de recherche en sécurité autorisées uniquement. Toute utilisation non autorisée sur un système est illégale et strictement interdite. L'auteur, kali, décline toute responsabilité en cas de dommage ou de mauvaise utilisation de ce framework.
Le pilote gdrv.sys expose un IOCTL 0xC3502580 qui peut être appelé par n'importe quelle application en mode utilisateur. Cet IOCTL prend une structure contenant un type d'opération (lecture/écriture), un index de registre MSR et une valeur. Le pilote n'effectue aucun contrôle d'accès, permettant à tout processus de lire ou d'écrire sur n'importe quel MSR.
C'est une faille critique car les MSR contrôlent des opérations fondamentales du processeur. Plus précisément, le MSR IA32_LSTAR (à l'adresse 0xC0000082) stocke l'adresse du gestionnaire d'appels système dans le noyau. En lisant ce MSR, nous pouvons contourner le Kernel Address Space Layout Randomization (KASLR) et calculer l'adresse de base du noyau. En y écrivant, nous pouvons rediriger les appels système vers notre propre shellcode, obtenant ainsi une exécution de code arbitraire en Ring-0.
\\.\GIO.IA32_LSTAR pour obtenir un pointeur dans le noyau, contournant le KASLR.EPROCESS du processus courant, localiser celle du processus SYSTEM (PID 4), et copier son jeton de sécurité dans notre processus.IA32_LSTAR est écrasée par l'adresse de notre shellcode.NT AUTHORITY\SYSTEM.IA32_LSTAR est restaurée pour éviter toute instabilité du système.evasion.py inclut des vérifications du nombre de cœurs CPU, de la taille du disque, de l'activité récente des fichiers, des programmes installés, et une détection avancée des temps d'exécution et des hooks pour créer une empreinte environnementale plus robuste.payloads.py permet la génération dynamique de divers payloads (reverse shells, Meterpreter, Cobalt Strike beacons) pour différentes architectures, avec plusieurs couches d'encodage.multiarch.py fournit une couche d'abstraction complète pour gérer les différences entre x86, x64 et ARM64, y compris les tailles de pointeurs, les conventions d'appel, les structures du noyau et les jeux d'instructions.framework.py peut générer des modules prêts à l'emploi pour Metasploit (.rb), Cobalt Strike (.cna), Empire (.py) et Sliver (.go), automatisant le processus d'intégration pour les opérations Red Team.Le framework inclut une suite de tests complète dans tests.py. Vous pouvez exécuter tous les tests pour vérifier l'intégrité et la fonctionnalité de tous les composants.
# Exécuter tous les tests unitaires, d'intégration et de performance
python tests.py --all
# Exécuter uniquement les tests unitaires
python tests.py --unit
Ce projet est une démonstration de techniques d'exploitation avancées et doit être utilisé de manière responsable.