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
pkwned — Proof of Concept für CVE-2021-4034 (mit experimenteller spurenloser Ausnutzung) | Kitploit
Tools/GitHubGitHub/dosamp/pkwned
Privilege EscalationExploit-FrameworksExploitationPayload-EntwicklungBinary-Exploitation
GitHubdosamp/pkwned

pkwned

Proof of Concept für CVE-2021-4034 (mit experimenteller spurenloser Ausnutzung)

Repository anzeigen
vor 4 JahrenNoch 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

pkwned: Proof of Concept für CVE-2021-4034

Dieser PoC führt PAYLOAD_PATH (wie in constants.h definiert) mit Root-Rechten aus einer verwundbaren Version von pkexec aus, die auf glibc läuft. Das Verzeichnis "GCONV_PATH=." muss eine ausführbare Datei enthalten, die nach dem Verzeichnis benannt ist, das das gconv-Modul enthält.

Wie in der Qualys-Advisory [1] beschrieben, erzeugt dies eine Syslog-Nachricht. Ich habe bisher zwei Ansätze gefunden, um das zu verhindern:

  • Durch die Verwendung von g_find_program_in_path führt pkexec einen access()-Check mit g_file_test und anschließend einen weiteren expliziten Check durch, was eine Race Condition ermöglicht (durch Löschen von "GCONV_PATH=./gconv" dazwischen), um g_printerr ohne log_message aufzurufen:

641 if (access (path, F_OK) != 0) 642 { 643 g_printerr ("Error accessing %s: %s\n", path, g_strerror (errno)); 644 goto out; 645 }

Dieses Repository enthält das gconv-fuse-Dienstprogramm, das ein FUSE-Dateisystem über "GCONV_PATH=." mountet, das nach einem Aufruf von access("gconv", X_OK) leer erscheint. Es funktioniert nur, wenn die FUSE-Konfigurationsoption user_allow_other aktiviert ist.

  • Wenn pkexec daran gehindert werden kann, /etc/shells zu lesen, führt dies ebenfalls zu einem Fehler ohne Protokollierung:

356 if (!g_file_get_contents ("/etc/shells", 357 &contents, 358 NULL, /* gsize *length */ 359 &error)) 360 { 361 g_printerr ("Error getting contents of /etc/shells: %s\n", error->message); 362 g_error_free (error); 363 goto out; 364 }

Mount-Namespaces können verwendet werden, um eine unlesbare Datei darüber zu mounten, aber das erfordert auch einen User-Namespace, der einen unprivilegierten Benutzer auf root abbildet und das setuid-Bit von pkexec wirkungslos macht (z. B. "unshare -r -u -m").

Beachten Sie, dass GLib einen Fix für g_find_program_in_path zusammengeführt hat (wahrscheinlich für die nächsten stabilen Versionen nach v2.70.3 und v2.71.0), der diesen Exploit unmöglich machen wird, indem immer tatsächliche vollständige Pfade zurückgegeben werden. [2]

[1] https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt [2] https://gitlab.gnome.org/GNOME/glib/-/commit/13ee46538f901a8eca8e7a4c167a8838ed0858d4

Tool herunterladen