
Utility di validazione delle mitigazioni per la catena di attacco Ivanti Connect Around. Esegue più controlli. CVE-2023-46805, CVE-2024-21887.
La catena di attacco Connect Around, che coinvolge CVE-2023-46805 e CVE-2024-21887, rappresenta una minaccia significativa per i dispositivi Ivanti Connect Secure e Policy Secure. Questa catena di attacco consente accesso non autorizzato ed esecuzione di comandi sui sistemi vulnerabili. CVE-2023-46805 consente agli attaccanti di aggirare i controlli di autenticazione, mentre CVE-2024-21887, una vulnerabilità di iniezione di comandi, può essere sfruttata senza necessitare di autenticazione quando combinata con la precedente. Questo duo di vulnerabilità richiede attenzione urgente da parte delle organizzazioni che utilizzano prodotti Ivanti, spingendole ad applicare le mitigazioni disponibili come descritto nel forum della community Ivanti.
In risposta alla necessità delle organizzazioni di validare lo stato delle mitigazioni, è stato sviluppato Ivanti Connect Around Vulnerability Checker. Questo script è progettato per valutare i dispositivi Ivanti Connect Secure e Policy Secure per vulnerabilità associate alla catena di attacco Connect Around. Esegue controlli per verificare la presenza di queste vulnerabilità e restituisce i risultati in formato CSV. Vengono impiegate molteplici metodologie di validazione delle mitigazioni per fornire una valutazione completa e affidabile.
Nota: questo script non valida CVE-2024-21888 o CVE-2024-21893.
Lo script esegue vari controlli per valutare lo stato di sicurezza dei sistemi Ivanti Connect Secure. Ogni controllo si basa su metodologie specifiche adattate dalla ricerca nella community della sicurezza informatica.
/api/v1/configuration/users/user-roles/user-role/rest-userrole1/web/web-bookmarks/bookmark senza autenticazione./api/v1/system/system-information./admin/options/.Ogni controllo fornisce informazioni su potenziali vulnerabilità. "Vulnerabile" indica una vulnerabilità confermata, mentre "Mitigato" o "Non Vulnerabile" significa che il sistema sembra sicuro contro la specifica vulnerabilità testata.
Lo script classifica ogni controllo con tipi di stato specifici, fornendo informazioni sulla postura di sicurezza dell'host scansionato. Ecco le descrizioni di ciascun tipo di stato:
Mitigato: Indica che il sistema ha mitigazioni attive contro le vulnerabilità controllate. Questo stato viene restituito quando vengono rilevate risposte tipiche di un sistema sicuro e aggiornato.
Vulnerabile: Questo stato suggerisce che il sistema è vulnerabile ai controlli specifici eseguiti dallo script. Viene restituito quando il sistema mostra pattern o risposte note che indicano una vulnerabilità.
Errore HTTP: Restituito quando lo script incontra risposte di errore HTTP standard (diverse da 403 Forbidden) dal sistema di destinazione. Di solito indica un problema con il server web o con la richiesta.
Problema di rete: Questo stato viene utilizzato quando lo script incontra problemi legati alla rete, come l'impossibilità di raggiungere l'host. Combina stati precedenti come "Host Unreachable" e "Network Error".
Errore di timeout: Indica che la richiesta al target è andata in timeout, suggerendo potenziali problemi di rete o di configurazione che hanno impedito allo script di completare il controllo.
Errore di connessione: Simile a "Errore di timeout", questo stato viene utilizzato quando ci sono problemi nell'instaurare una connessione con l'host, che potrebbero essere dovuti a problemi di rete, hostname errati, ecc.
Presenza Ivanti Inconclusiva: Precedentemente noto come "Attestazione Necessaria", questo stato viene restituito quando i controlli dello script non forniscono prove definitive né di vulnerabilità né di mitigazione. Suggerisce che sono necessarie ulteriori indagini manuali per determinare lo stato di sicurezza del sistema.
Vulnerabile (Bypass Rilevato): Specifico per il controllo della vulnerabilità di bypass, questo stato indica che il sistema è vulnerabile alla tecnica di bypass dell'autenticazione descritta nella metodologia dello script.
Ogni stato fornisce un'istantanea della postura di sicurezza del sistema rispetto alle vulnerabilità controllate. Gli utenti dovrebbero considerare questi stati come indicatori iniziali e, dove necessario, condurre ulteriori indagini manuali per confermare lo stato di sicurezza effettivo del sistema.
requestsurllib3colorama per l'output coloratoPer eseguire lo script, usa il seguente comando:
python ivanti_scan.py -i [input_file]
Opzionalmente, esegui con argomenti aggiuntivi:
python ivanti_scan.py -i [input_file] -o [output_file] -t [number_of_threads] -p [port1 port2 ...] --color
Utilizza una di queste opzioni per specificare i target da testare.
-i o --input: Percorso del file di input contenente l'elenco dei target.-u o --url: Singola stringa URL da testare.-o o --output: Opzionale. Nome del file CSV di output. Predefinito: [current_date_time]_results.csv.-t o --threads: Opzionale. Numero di thread da usare per l'esecuzione concorrente. Predefinito: 20.-p o --ports: Opzionale. Specifica le porte da controllare (es., 80 443). Di default controlla le porte 80 e 443.-a o --user-agent: Opzionale. Specifica la stringa user agent. Predefinita: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.3-c o --color: Opzionale. Abilita l'output colorato se colorama è installato.I contributi sono benvenuti! Se desideri contribuire, ecco alcuni modi in cui puoi aiutare:
main.Grazie per aver considerato di contribuire a questo progetto.
Questo strumento è progettato per individui e organizzazioni che intendono validare la mitigazione delle vulnerabilità nei propri ambienti. È specificamente destinato all'uso su dispositivi Ivanti Connect Secure per i quali è stata concessa l'autorizzazione esplicita ai test di sicurezza.
Utilizzando questo strumento, riconosci e accetti questi termini.
Questo progetto è concesso in licenza secondo la MIT License con una clausola di uso etico - consulta il file LICENSE per i dettagli.
Questo progetto si avvale di ricerche e metodologie sviluppate da diversi stimati gruppi e individui nel campo della cybersecurity. Estendiamo la nostra gratitudine a:
WatchTowr Labs: Per la loro ricerca approfondita sulle vulnerabilità di Ivanti Connect Secure. Il loro lavoro è stato determinante nello sviluppo della metodologia di controllo WEB ACCESS.
Stephen Fewer di Rapid7: Il suo lavoro sul modulo Metasploit ha fornito preziose informazioni.
Rapid7 su AttackerKB: La loro ricerca sulle tecniche di bypass dell'autenticazione ha ampiamente informato questo script.
Assetnote: Riconoscere /admin/options/ come metodo di test affidabile aiuta a determinare l'applicazione delle mitigazioni.
Un ringraziamento speciale a questi gruppi e individui per i loro contributi al campo della cybersecurity, che hanno notevolmente favorito lo sviluppo di questo strumento.
Chris Farrell è un ricercatore di vulnerabilità impegnato a migliorare la cybersecurity attraverso analisi approfondite e soluzioni complete.
L'esperienza include gestione delle vulnerabilità, vCISO, penetration tester senior, responsabile dell'incident response, ISSO.