
PoC von CVE-2021-4034 (PwnKit) für persönliche Trainingszwecke.
Dieses Repository enthält einen Proof of Concept für CVE-2021-4034, auch bekannt als PwnKit. Es wurde ausschließlich für persönliche Schulungs- und Bildungszwecke entwickelt. Nur in Umgebungen verwenden, die Ihnen gehören oder für die Sie explizit zum Testen autorisiert sind.
Um den Exploit zu bauen, benötigen Sie:
pkexec ist ein Dienstprogramm von Polkit, das einem autorisierten Benutzer erlaubt, Programme als anderer Benutzer auszuführen, typischerweise mit Administratorrechten, ähnlich wie sudo. CVE-2021-4034 ist eine Speicherfehler-Sicherheitslücke, die diese Binärdatei betrifft. Das Problem resultiert aus unsachgemäßer Argumentbehandlung, wenn argc == 0 ist. Dies führt zu einem Schreibzugriff außerhalb der Grenzen, der es einem Angreifer ermöglicht, den ersten Zeiger auf eine Umgebungsvariable im Speicher zu kontrollieren. Unter bestimmten Bedingungen erlaubt es einem unprivilegierten lokalen Benutzer, seine Rechte auf root zu erhöhen. Weitere Details finden Sie hier: https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt
Der fertige Exploit ist vollständig eigenständig und benötigt keine externen Bibliotheken oder zusätzliche Binärdateien.
Distribution: Ubuntu 20.04 LTS
Kernel-Version: 5.4.0-42-generic
Polkit-Version: 0.105-26ubuntu1 (ungepatcht)
Die beigefügte Shell (shell.asm) ist in x86_64-Assembly für Linux geschrieben. Sie wird als Shared Object (.so) kompiliert und in den Exploit eingebettet.
Optional kann die Shell für mehr Portabilität zwischen Distributionen in C implementiert werden. Die ASM-Version wird jedoch aus Lernzwecken und zum Üben von Low-Level-Assembly-Programmierung beibehalten.
Hinweis: Dieser Exploit und die Shell sind nur mit x86_64-Linux-Umgebungen kompatibel. Die Verwendung einer anderen Architektur (z. B. ARM oder i386) funktioniert nicht.
Kompilieren:
make
Ausführen:
./exploit
Bereinigen:
make clean
Diese Sicherheitslücke wurde im Januar 2022 gepatcht.
Wenn Sie eine ungepatchte Version von policykit-1 ausführen, ist Ihr System möglicherweise anfällig. Als vorübergehende Milderung können Sie das SUID-Bit von pkexec entfernen:
chmod -s /bin/pkexec