CVE-2025-5777 Exploit per la Perdita di Memoria di Citrix NetScaler
[!WARNING]
Questo script è destinato esclusivamente a scopi educativi e di ricerca. Non utilizzarlo contro sistemi senza autorizzazione esplicita. L'accesso o il test non autorizzato è illegale e non etico. Leggi il DISCLAIMER completo prima di usare questo script.
Panoramica
Questo progetto dimostra una vulnerabilità di perdita di memoria (CVE-2025-5777) riscontrata nei dispositivi Citrix NetScaler. La vulnerabilità deriva da una gestione impropria della memoria non inizializzata durante l'analisi di dati POST malformati, in particolare del parametro login. È ampiamente conosciuta come CitrixBleed 2 per la sua forte somiglianza con la famigerata CVE-2023-4966 (CitrixBleed originale), ampiamente sfruttata nel 2023.
Quando il campo login viene incluso senza un segno di uguale o un valore, una parte della memoria di stack non inizializzata viene restituita all'interno del tag <InitialValue> nella risposta XML.

Dati Divulgati: Ogni richiesta HTTP può divulgare circa 127 byte di contenuto della RAM. Ripetendo queste richieste, gli attaccanti possono raccogliere dati sensibili dalla memoria, che possono includere:
- Token di sessione (che consentono il dirottamento della sessione e il bypass dell'MFA).
- Dati di autenticazione.
- Porzioni di precedenti richieste HTTP.
- Credenziali in chiaro.
- Altre informazioni sensibili.
Utilizzo dello Script
Requisiti / Dipendenze
pip3 install aiohttp colorama
Esegui lo script
python3 exploit.py <URL> [options]
Opzioni della Riga di Comando
positional arguments:
url URL di base (es., http://target.com)
optional arguments:
-h, --help Mostra il messaggio di aiuto
-v, --verbose Abilita l'output di debug
-p, --proxy PROXY URL del proxy HTTP (es., http://127.0.0.1:8080)
-t, --threads N Numero di thread concorrenti (default: 10)
-d, --delay SECONDS Ritardo tra i lotti di richieste in secondi (default: 1.0)
--max-requests N Numero massimo di richieste da inviare (default: illimitato)
-e, --endpoints PATH Endpoint aggiuntivi da testare (è possibile specificarne più di uno)
--no-save Non salvare i dati su file all'uscita
Esempi
Utilizzo di base:
python3 exploit.py http://target.com
Modalità verbosa con proxy:
python3 exploit.py http://target.com -v -p http://127.0.0.1:8080
Elevata concorrenza con limitazione della velocità:
python3 exploit.py http://target.com -t 20 -d 0.5
Richieste limitate con più endpoint:
python3 exploit.py http://target.com --max-requests 1000 -e /p/u/doAuthentication.do /api/auth
Aiuto:
Funzionalità Avanzate
Questa versione migliorata include:
🔍 Rilevamento dei Pattern
- Rileva automaticamente i token di sessione (pattern NSC_*, NSC_TASS, NSC_AAAC)
- Identifica le credenziali (username:password, Basic Auth)
- Trova indirizzi IP, indirizzi email, URL
- Rileva stringhe Base64, stringhe hex, dati JSON
- Evidenzia i pattern nell'output hex dump
📊 Monitoraggio delle Statistiche
- Visualizzazione delle statistiche in tempo reale
- Tasso di successo, tasso di perdita, monitoraggio degli errori
- Contatore dei byte divulgati
- Rilevamento di perdite uniche (hashing MD5)
- Conteggi del rilevamento dei pattern
💾 Raccolta ed Esportazione dei Dati
- Salvataggio automatico dei dati all'uscita (Ctrl+C)
- Esportazione JSON con metadati completi
- Esportazione CSV per l'analisi tramite fogli di calcolo
- File separato per i token di sessione
- File di testo con le perdite grezze
- Directory di output con timestamp
🎯 Estrazione dei Token di Sessione
- Rilevamento automatico dei token di sessione Citrix
- Deduplicazione dei token trovati
- Archiviazione ed esportazione separata dei token
- Monitoraggio del numero di token
🔐 Estrazione delle Credenziali
- Decodifica Basic Auth
- Rilevamento del pattern username:password
- Archiviazione ed esportazione delle credenziali
📈 Output Migliorato
- Hex dump con codifica a colori
- Evidenziazione dei pattern nell'output
- Riepiloghi dettagliati delle perdite
- Aggiornamenti periodici sullo stato di avanzamento
- Statistiche complete all'uscita
⚙️ Configurazione Avanzata
- Test di più endpoint
- Limiti di richiesta configurabili
- Ritardi regolabili tra i lotti
- Migliore gestione degli errori e recupero
- Arresto graduale con salvataggio dei dati
Come funziona
Questo script Python avanzato:
- Invia richieste POST malformate ripetute agli endpoint vulnerabili
- Analizza le risposte XML per individuare i tag
<InitialValue>
- Estrae il contenuto di memoria divulgato
- Analizza i dati per individuare pattern sensibili (token, credenziali, ecc.)
- Mostra i risultati in un formato hex-dump migliorato con evidenziazione
- Monitora statistiche e perdite uniche
- Salva automaticamente i dati raccolti in più formati
- Supporta proxy, threading, limitazione della velocità e output verboso
Impatto
- Dirottamento della Sessione: La preoccupazione principale è il furto dei token di sessione, che consente agli attaccanti di dirottare le sessioni utente attive e ottenere accesso non autorizzato a sistemi critici, anche se l'autenticazione multifattoriale (MFA) è abilitata.
- Bypass dell'Autenticazione: I token di sessione o le credenziali rubati possono essere utilizzati per bypassare completamente il processo di autenticazione.
- Divulgazione dei Dati: Le informazioni sensibili presenti in memoria possono essere esposte.

Difesa e Mitigazione
- Aggiorna immediatamente al firmware sicuro più recente.
- Monitora i pattern anomali di richieste POST.
Riferimento