
🔄 Élévation de privilèges Linux via need-restart (CVE-2024-48990). Automatisation de l'acquisition de root. 💀
Ce script exploite la vulnérabilité CVE-2024-48990 dans l'utilitaire needrestart de Linux par le détournement du chemin des bibliothèques (PYTHONPATH hijacking). Contrairement au vecteur original, cette méthode utilise exclusivement Python, ce qui permet de contourner l'exigence d'avoir des compilateurs comme gcc installés sur la machine victime.
/tmp/malicious/importlib est créé. Cela imite la structure de la bibliothèque standard de Python.importlib/__init__.py) :
Il contient le code qui sera exécuté avec des privilèges élevés. Lorsqu'il est chargé, il vérifie si l'utilisateur actuel est root (UID 0). Si c'est le cas, il copie le binaire /bin/bash vers /tmp/poc et lui attribue le bit SUID (chmod 4755). Cela crée une porte dérobée qui permet à tout utilisateur d'élever ses privilèges.e.py) :
C'est un script inoffensif qui reste en exécution dans une boucle infinie. Il remplit deux fonctions :needrestart l'intercepte./tmp. Dès qu'il détecte que le fichier /tmp/poc a été créé, il l'exécute automatiquement avec le flag -p (pour ne pas perdre les privilèges root) en fournissant le shell interactif.PYTHONPATH="$PWD" python3 e.py, nous modifions le comportement de Python. Nous obligeons toute importation à chercher d'abord dans /tmp/malicious avant les chemins légitimes du système.needrestart) :
Lorsque needrestart est exécuté avec des privilèges administrateur (soit manuellement, soit par une tâche planifiée du système), il scanne les processus actifs. En arrivant sur notre e.py, il extrait ses variables d'environnement et lance son propre processus Python pour l'analyser. En héritant du PYTHONPATH malveillant, le processus root de needrestart importe notre fausse bibliothèque importlib et exécute le payload, donnant un contrôle total sur la machine.