
Ivanti Secure Access (ehemals Pulse Secure) Privilegieneskalation Cobalt Strike BOF (CVE-2023-35080).
Ivanti Secure Access (früher Pulse Secure) Privilege-Eskalation Cobalt Strike BOF (CVE-2023-35080).
Exploit von Alex und BOF von Tijme. Ermöglicht durch Northwave Cyber Security
Dies ist ein Cobalt Strike (CS) Beacon Object File (BOF) und eine ausführbare Datei, die den Ivanti Secure Access (früher Pulse Secure) VPN-Client (CVE-2023-35080) ausnutzt. Aus dem Benutzermodus mit niedrigen Berechtigungen wird eine Schwachstelle im Kernel-Treiber ausgenutzt, um die Token-Berechtigungen des Beacon-Prozesses mit den Token-Berechtigungen eines Systemprozesses zu überschreiben. Der symbolische Link des Kernel-Treibers hat eine ACL, die definiert, dass Everyone ein Handle darauf öffnen kann. Die Forschung, die zu dieser Schwachstelle führte, wurde auf der RedTreat 2023 und der BSIDES London 2023 (Präsentation) vorgestellt.
Der Exploit wurde auf Windows 10 Pro 22H2 10.0.19045 (x64) entwickelt. Später wurde er modifiziert und getestet, um auf Windows 11 Pro 23H2 22631 (x64) zu funktionieren. Andere Windows-Versionen werden möglicherweise nicht standardmäßig unterstützt. Vollständige Liste der getesteten unterstützten Windows-Versionen:
Klonen Sie zunächst dieses Repository. Überprüfen Sie dann den Code, kompilieren Sie aus dem Quellcode (erfordert MinGW) und verwenden Sie es in Cobalt Strike oder als eigenständige PE-Datei.
make
Wichtig! Führen Sie die folgenden Schritte in der Reihenfolge aus (aus dem Benutzermodus mit niedrigen Berechtigungen):
Stellen Sie zunächst sicher, dass der anfällige Treiber läuft. Wenn er nicht läuft, keine Sorge! Sie können ihn aus dem Benutzermodus mit niedrigen Berechtigungen starten. Der Treibername beginnt mit jnprTdi_, und ist unter HKLM\SYSTEM\CurrentControlSet\Services zu finden. Er wird immer installiert, wenn der VPN-Client installiert ist, läuft aber standardmäßig nicht.
Der anfällige Treiber startet jedoch, wenn ein (niedrig privilegierter) Benutzer auf dem Opfer-Rechner eine Verbindung zu einem (bösartigen) VPN-Server herstellt, bei dem die TDI-Failover-Option aktiviert ist. Wir können den Treiber recht einfach selbst starten, indem wir dieses Verhalten nachahmen, da wir bereits ein System kompromittiert haben und Malware darauf ausführen. Folgen Sie diesem Leitfaden, um Ihr eigenes bösartiges Gerät mit aktiviertem TDI-Failover zu konfigurieren.
"%programfiles(x86)%\Common Files\Pulse Secure\Integration\pulselauncher.exe" -stop
Wenn der Treiber läuft und der VPN-Client gestoppt ist, laden Sie das Skript PulsePrivEsc.cna mit dem Cobalt Strike Script Manager. Verwenden Sie dann den folgenden Befehl, um den Exploit auszuführen.
$ pulse_priv_esc
Alternativ (und zu Testzwecken) können Sie die kompilierte ausführbare Datei direkt ausführen. Dies öffnet eine Eingabeaufforderung als SYSTEM.
$ .\PulsePrivEsc.x64.exe
Probleme oder neue Funktionen können über den Issue-Tracker gemeldet werden. Bitte stellen Sie sicher, dass Ihr Problem oder Ihre Funktion noch nicht von jemand anderem gemeldet wurde, bevor Sie ein neues einreichen.
Copyright (c) 2023 Northwave Cyber Security. Alle Rechte vorbehalten.