
Exploit uniquement basé sur les données pour CVE-2024-0582
Cet exploit implémente une méthode d'attaque Dirty Cred pour obtenir un accès en écriture non autorisé à /etc/passwd. Contrairement à de nombreux exploits similaires qui créent de nombreuses pages ou pulvérisent agressivement des descripteurs de fichiers, cette approche emprunte une voie plus ciblée pour corrompre les structures du noyau nécessaires.
Définir l'affinité CPU et augmenter la limite de FD
Assure des performances stables et suffisamment de descripteurs de fichiers pour la pulvérisation.
Initialiser io_uring
Crée une instance io_uring et enregistre un anneau de tampon pour l'utilisation de la mémoire du noyau.
Désenregistrer l'anneau de tampon
Déclenche la vulnérabilité, laissant les structures de données du noyau dans un état exploitable.
Pulvérisation de descripteurs de fichiers
Ouvre de nombreux FD vers /etc/passwd, espérant corrompre l'objet noyau souhaité.
Modifier le mode du fichier
Corrompt les drapeaux f_mode afin que /etc/passwd devienne accessible en écriture.
Écrire une entrée backdoor
Insère evil::0:0:root:/root:/bin/bash dans /etc/passwd.
io_uring vulnérable (testé sur un noyau avec le bogue CVE-2024-0582)..rs).EXT4_FOPS_OFFSET dans main.rs (la valeur par défaut est 0x122b3c0) en fonction de votre version de Linux. Une discordance peut entraîner l'échec de l'exploit ou un comportement incorrect.Si votre noyau exporte des informations de symboles et que vous avez les bonnes permissions (souvent restreintes sur les systèmes de production), vous pouvez lire depuis /proc/kallsyms :
Obtenez l'adresse de _text :
grep " _text" /proc/kallsyms
Appelons l'adresse résultante TEXT_ADDR.
Obtenez l'adresse de ext4_file_operations :
grep ext4_file_operations /proc/kallsyms
Appelons l'adresse résultante EXT4_FOPS_ADDR.
Soustrayez :
EXT4_FOPS_OFFSET = EXT4_FOPS_ADDR – TEXT_ADDR