Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2021-4034 — Ich habe die gemeinhin als Pwnkit bekannte Schwachstelle zu Lehrzwecken analysiert und einen PoC dafür geschrieben. Ausschließlich zu Lehrzwecken verwenden. | Kitploit
Tools/GitHubGitHub/eshkoreee/cve-2021-4034
Privilege EscalationExploitationLernen & BildungPayload-EntwicklungBinary-Exploitation
GitHubeshkoreee/cve-2021-4034

CVE-2021-4034

Ich habe die gemeinhin als Pwnkit bekannte Schwachstelle zu Lehrzwecken analysiert und einen PoC dafür geschrieben. Ausschließlich zu Lehrzwecken verwenden.

Repository anzeigen
1vor 2 TagenNoch 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-2021-4034 (PwnKit) PoC

DISCLAIMER: Dieses Material wird ausschließlich zu Bildungszwecken bereitgestellt. Die Verwendung des Exploits ohne schriftliche Zustimmung des Eigentümers des Zielsystems ist unethisch und kann strafrechtlich verfolgt werden.

Installation und Ausführung

  1. Klonen Sie das Repository auf die Zielmaschine.
  2. Geben Sie dem Build-Skript Ausführungsrechte: chmod +x build.sh.
  3. Starten Sie den Build: ./build.sh.
  4. Führen Sie den Exploit aus: ./mls_envp. Sie erhalten Root-Zugriff.

Wesen der Schwachstelle

In der verwundbaren Version von polkit (0.105) ging der Autor, David Zeuthen, davon aus, dass pkexec immer von der Konsole aus aufgerufen wird. Er nahm an, dass argc (die Anzahl der Argumente) immer größer als 1 ist, da argv[0] der Name des Programms selbst ist. Allerdings kann pkexec über den Systemaufruf execve aufgerufen werden, indem ein leeres Argumentarray übergeben wird. Dadurch gerät die Logik des Programms durcheinander.

1. Überschreitung der Array-Grenzen

Im Code von pkexec ist fest verankert, dass argv mindestens ein Element enthält. Wenn argc gleich 0 ist, versucht das Programm dennoch, auf argv[1] zuzugreifen. Dies führt zu einer Überschreitung der Grenzen des Arrays argv und zum Lesen des ersten Elements des Arrays envp (der Umgebungsvariablen). In unserem Fall befindet sich dort die Zeichenkette "exp_exe".

2. Umgehung der PATH-Prüfung

pkexec versucht, das Programm exp_exe mithilfe der Funktion g_find_program_in_path zu finden. Für die Suche verwendet sie die Variable PATH. Wir ersetzen PATH durch GCONV_PATH=.. Infolgedessen findet pkexec die Platzhalterdatei exp_exe in unserem lokalen Ordner und gibt den Pfad GCONV_PATH=./exp_exe zurück. Aufgrund des Bugs mit argc wird dieser Pfad zurück in envp[0] geschrieben, wodurch die Variable GCONV_PATH „legalisiert“ wird.

3. Laden einer schädlichen Bibliothek

Vor dem Start des Programms prüft pkexec die Umgebungsvariablen (einschließlich SHELL). Wir übergeben eine nicht existierende Shell (SHELL=xyz), um einen Fehler zu provozieren. Bei der Fehlerausgabe wird log_message aufgerufen, das die Mechanismen von glibc nutzt. Glibc schaut auf die Variable CHARSET=bohemcavanna und greift, da sie keinen Standard-Konverter findet, auf das Verzeichnis aus GCONV_PATH zu (das wir untergeschoben haben). Dort liest sie die Datei gconv-modules, lädt unsere Bibliothek exploit.so und führt den Code darin mit Root-Rechten aus.

Tool herunterladen