
Ivanti Secure Access (precedentemente Pulse Secure) elevazione dei privilegi Cobalt Strike BOF (CVE-2023-35080).
Ivanti Secure Access (precedentemente Pulse Secure) escalation dei privilegi Cobalt Strike BOF (CVE-2023-35080).
Exploit di Alex e BOF di Tijme. Reso possibile da Northwave Cyber Security
Questo è un Cobalt Strike (CS) Beacon Object File (BOF) ed un eseguibile che sfrutta il client VPN Ivanti Secure Access (precedentemente Pulse Secure) (CVE-2023-35080). Da una modalità utente a bassi privilegi, sfrutta una vulnerabilità nel driver del kernel per sovrascrivere i privilegi del token del processo beacon con quelli di un token di processo di sistema. Il collegamento simbolico del driver del kernel ha una ACL che definisce che Everyone può aprire un handle ad esso. La ricerca che ha portato alla scoperta di questa vulnerabilità è stata presentata a RedTreat 2023 e BSIDES London 2023 (presentazione).
L'exploit è stato sviluppato su Windows 10 Pro 22H2 10.0.19045 (x64). Successivamente è stato modificato e testato per funzionare su Windows 11 Pro 23H2 22631 (x64). Altre versioni di Windows potrebbero non essere supportate immediatamente. Elenco completo delle versioni di Windows testate supportate:
Clona prima questo repository. Poi esamina il codice, compila dai sorgenti (richiede MinGW) e usalo in Cobalt Strike o come file PE autonomo.
make
Importante! Esegui i seguenti passaggi in ordine (da modalità utente a bassi privilegi):
Per prima cosa, assicurati che il driver vulnerabile sia in esecuzione. Se non è in esecuzione, non preoccuparti! Puoi avviarlo da modalità utente a bassi privilegi. Il nome del driver inizia con jnprTdi_ e si trova in HKLM\SYSTEM\CurrentControlSet\Services. Viene sempre installato quando il client VPN è installato, ma non è in esecuzione per impostazione predefinita.
Il driver vulnerabile si avvia quando un utente (a bassi privilegi) sulla macchina vittima si connette a un server VPN rogue che ha l'opzione di fail-over TDI abilitata. Possiamo avviare il driver abbastanza facilmente da soli replicando quel comportamento, dato che abbiamo già compromesso un sistema e stiamo eseguendo malware su di esso. Segui questa guida per configurare il tuo appliance rogue con fail-over TDI abilitato.
"%programfiles(x86)%\Common Files\Pulse Secure\Integration\pulselauncher.exe" -stop
Se il driver è in esecuzione e il client VPN è fermo, carica lo script PulsePrivEsc.cna utilizzando il Gestore Script di Cobalt Strike. Quindi usa il comando seguente per eseguire l'exploit.
$ pulse_priv_esc
In alternativa (e per scopi di test), puoi eseguire direttamente l'eseguibile compilato. Questo avvierà un prompt dei comandi come SYSTEM.
$ .\PulsePrivEsc.x64.exe
Problemi o nuove funzionalità possono essere segnalati tramite il tracker dei problemi. Assicurati che il tuo problema o funzionalità non sia già stato segnalato da altri prima di inviarne uno nuovo.
Copyright (c) 2023 Northwave Cyber Security. Tutti i diritti riservati.