
🔄 Linux PrivEsc über need-restart (CVE-2024-48990). Automatisierung der Root-Erlangung. 💀
Dieses Skript nutzt die Schwachstelle CVE-2024-48990 im Linux-Dienstprogramm needrestart aus, indem es den Bibliothekspfad kapert (PYTHONPATH-Hijacking). Anders als der ursprüngliche Vektor verwendet diese Methode ausschließlich Python, sodass die Anforderung, Compiler wie gcc auf dem Zielrechner installiert zu haben, umgangen wird.
/tmp/malicious/importlib erstellt. Dies imitiert die Struktur der Python-Standardbibliothek.importlib/__init__.py):
Enthält den Code, der mit erhöhten Privilegien ausgeführt wird. Beim Laden prüft er, ob der aktuelle Benutzer root (UID 0) ist. Wenn ja, kopiert er die Binärdatei /bin/bash nach /tmp/poc und setzt das SUID-Bit (chmod 4755). Dadurch wird eine Hintertür geschaffen, die es jedem Benutzer ermöglicht, die Berechtigungen zu erweitern.e.py):
Es handelt sich um ein harmloses Skript, das in einer Endlosschleife läuft. Es erfüllt zwei Funktionen:needrestart ihn abfangen kann./tmp ständig zu überwachen. Sobald die Datei /tmp/poc erstellt wird, führt es diese automatisch mit der Flag -p aus (um die Root-Rechte nicht zu verlieren) und liefert eine interaktive Shell.PYTHONPATH="$PWD" python3 e.py ausführen, verändern wir das Verhalten von Python. Wir erzwingen, dass bei jedem Import zuerst in /tmp/malicious gesucht wird, bevor die legitimen Systempfade durchsucht werden.needrestart):
Wenn needrestart mit Administratorrechten ausgeführt wird (entweder manuell oder durch eine geplante Systemaufgabe), scannt es die aktiven Prozesse. Bei unserem e.py extrahiert es dessen Umgebungsvariablen und startet einen eigenen Python-Prozess zur Analyse. Durch das Erben des bösartigen PYTHONPATH importiert der Root-Prozess von needrestart unsere gefälschte Bibliothek importlib und führt die Nutzlast aus, was die vollständige Kontrolle über den Rechner gewährt.