
Analizza i log di Citrix Netscaler per verificare segni di sfruttamento di CVE-2023-4966
Analizza i log di Citrix Netscaler per rilevare segni di sfruttamento di CVE-2023-4966
Scritto da Otmar Lendl.
./citrix-anomaly.pl [-d] [-v] [-h] [-p file] [-a X] [file_di_log]
Questo script analizza i file syslog di Citrix Netscaler e cerca
riconnessioni di sessione che potrebbero essere il risultato dello sfruttamento di CVE-2023-4966.
Parametri:
-d Debug
-v Verbose
-h Questo aiuto
-a Imposta il tipo di aggregazione. Valori possibili
b (default) aggregazione semplice /24
a aggregazione per ASN
p aggregazione per prefisso della tabella di routing
-p percorso verso un dump della tabella di routing. Sintassi: "prefisso asn" per riga
Lo script necessita di Net::CIDR e Net::Patricia (si consiglia di usare la funzione -p) che potrebbero non essere installati su tutti i server Linux. Su sistemi basati su Debian, usa
sudo apt install libnet-cidr-perl libnet-patricia-perl
per installarli.
Un file con la tabella di routing globale aggiornata al 27-10-2023 è incluso in questo repository. Deve essere decompresso.
I prefissi delle righe di log possono variare tra diversi sistemi/daemon di log. Il codice ora tenta di ignorare i prefissi delle righe e si basa sui timestamp forniti da Citrix. (che apparentemente possono variare in base alle impostazioni locali.)
CVE-2023-4966 perde i cookie di sessione, consentendo agli attaccanti di riconnettersi a sessioni Citrix esistenti.
Questo script cerca le righe syslog "SSLVPN LOGIN" e "SSLVPN TCPCONNSTAT" (pre-filtrare con grep per queste righe è sensato) e verifica quali sessioni non hanno una corrispondente riga LOGIN o cambiano indirizzo IP client durante la loro durata.
Lo script utilizza i login iniziali riusciti come indicazione che una rete sorgente è benigna. Se ci sono solo riconnessioni da una rete sorgente, ma nessuna connessione iniziale da essa, allora queste riconnessioni sono sospette. Questo non viene fatto su base puramente di indirizzo IP: sono implementati tre schemi di aggregazione:
Gli ultimi due algoritmi necessitano di un file che associ prefissi ad ASN. Un esempio è fornito in questo repository.