pulse-secure-vpn-mitm-research
Ricerca Pulse Secure mitm
Data di rilascio
Data di rilascio congiunta con il fornitore: 26 ottobre 2020
Autore
David Kierznowski, @withdk
Riconoscimenti
- Sahil Mahajan del Pulse Secure PSIRT Team per il supporto durante il processo di divulgazione.
- Alyssa Herrera, Justin Wagner, Mimir e Rich Warren per il loro articolo, "Red Teamer’s Guide to Pulse Secure SSL VPN" - Alyssa Herrera (4 settembre 2019).
- Al SA Red Team per il loro costante supporto e incoraggiamento.
Riferimenti CVE
- CVE-2020-8241 (8.1 High CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)
- CVE-2020-8239 (5.9 Medium CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N)
Esempio

Prova di concetto che dimostra come rogue-pulse-svr.py acquisisca una reverse shell meterpreter da un client Pulse collegato alla stessa rete.
Introduzione
Pulse Connect Secure (PCS) è una soluzione VPN aziendale di uso comune. Al momento della stesura, PCS supporta più di 20 milioni di endpoint (Pulse Secure, n.d.). Questa ricerca si è concentrata sull'esame della riservatezza e dell'integrità del canale di comunicazione di rete stabilito tra un endpoint PCS Windows 10 e un gateway PCS. In particolare, pone la domanda: "quanto è sicuro un endpoint quando è connesso a una rete non affidabile?". Questa ricerca si applica alle configurazioni predefinite e "Always-On".
Impatto (Medio - Alto)
Se combinate, è possibile ottenere l'esecuzione remota di codice da una rete non affidabile con privilegi SYSTEM completi. In alternativa, una minaccia interna potrebbe utilizzare CVE-2020-8241 come vulnerabilità autonoma per escalare i privilegi.
Questi attacchi potrebbero essere utilizzati in una varietà di situazioni, tuttavia sono particolarmente adatti ad attacchi mirati. Sulla base di questo e delle ipotesi di seguito, la probabilità è bassa - media.
Attacchi potenziali
I seguenti attacchi sono stati dimostrati con successo in uno strumento proof-of-concept "rogue-pulse":
- Rubare le credenziali utente. Un server rogue potrebbe indurre l'utente a rivelare le proprie credenziali di accesso.
- Eseguire un binario da un percorso UNC di Microsoft Windows. Il server PCS supporta l'opzione di avviare un eseguibile dopo l'autenticazione. Questa funzionalità può essere abusata per ottenere l'esecuzione di codice con i permessi dell'utente connesso. Questo si basa sul lavoro di Alyssa Herrera e del team Alyssa Herrera (4 settembre 2019).
- Accesso remoto completo come amministratore abusando dei controlli di conformità dell'host. I controlli di conformità dell'host vengono eseguiti come SYSTEM. Un server rogue potrebbe abusare di questa funzionalità per inviare una policy dannosa che consente l'accesso in scrittura arbitrario al registro di sistema.
- Intercettare il traffico di rete. Ciò consentirà all'attaccante di intercettare e modificare il traffico di rete anche quando "always-on" è abilitato. Attualmente lo strumento mostra solo le richieste di traffico di rete provenienti dall'endpoint.
La PoC implementa anche una funzione di accesso automatico. Questo inganna il client facendogli credere di essersi già autenticato. Ciò sarebbe utile nei casi in cui l'esecuzione di codice è prioritaria rispetto alla raccolta di credenziali.
Ipotesi
- Questa ricerca mira a ottenere l'esecuzione remota di codice tramite una rete non affidabile. Entrambe le vulnerabilità vengono combinate per raggiungere questo obiettivo. Detto questo, una minaccia interna potrebbe semplicemente utilizzare CVE-2020-8241 da sola per escalare i privilegi.
- Il gateway PCS utilizza la configurazione predefinita con "dynamic-trust" abilitato. Nota: la policy viene solitamente aggiornata e inviata al client dopo l'autenticazione. Ciò significa che potrebbe esistere ancora una piccola finestra di opportunità anche dopo che il gateway ha disabilitato "dynanmic-trust".
- L'attaccante è in posizione di intercettare il traffico di rete HTTPS (man-in-the-middle), ad esempio l'attaccante ha compromesso il router della rete domestica di un utente, hotspot Wi-Fi rogue, ecc.
- L'utente deve accettare l'avviso del certificato. Un'osservazione interessante è che il client Pulse Secure continuerà a mostrare questo messaggio finché l'utente non accetta il certificato. Inoltre, il messaggio popup non è particolarmente allarmante. Infine, trattandosi di un "Secure Client", è molto più probabile che l'utente ignori il messaggio e si connetta comunque. Questo non sembra essere un grande ostacolo.
- L'endpoint si connette da un sistema operativo Microsoft Windows.
Raccomandazioni
Per mitigare e rimediare al problema, dovrebbero essere prese in considerazione le seguenti raccomandazioni:
- Le organizzazioni dovrebbero verificare la conformità alle migliori pratiche di sicurezza di Pulse Secure (Pulse Secure, 2 luglio 2019). Assicurarsi che "Dynamic certificate trust" sia disabilitato.
- Applicare le correzioni del fornitore (vedere https://kb.pulsesecure.net/articles/Pulse_Security_Advisories/SA44601).
- L'esecuzione degli script del server PCS avviene come processo figlio di "Pulse.exe". Pertanto, è possibile implementare salvaguardie monitorando i processi figli del binario "Pulse.exe".
- Monitorare il servizio "PulseSecureService" per attività sospette nel registro di sistema.
Riferimenti
Dichiarazione di non responsabilità
Le informazioni fornite sono esclusivamente a scopo educativo e di ricerca. L'autore non si assume alcuna responsabilità per l'uso che farete di queste informazioni e condanna fermamente qualsiasi tentativo di violare le leggi applicabili. L'autore non ha alcun obbligo di aggiornare queste informazioni, non fornisce alcuna garanzia sulla loro completezza, utilizzo o applicabilità, e declina ogni responsabilità in merito all'affidamento su di esse. L'uso di queste informazioni è esclusivamente a vostra responsabilità.