
Analyser les logs citrix netscaler pour vérifier les signes d'exploitation de CVE-2023-4966
Analyse les logs Citrix Netscaler pour vérifier les signes d'exploitation de CVE-2023-4966
Écrit par Otmar Lendl.
./citrix-anomaly.pl [-d] [-v] [-h] [-p file] [-a X] [logfiles]
This script parse citrix netscale syslog files and looks for session
reconnects that might be the result of a CVE-2023-4966 exploitation.
Parameters:
-d Debug
-v Verbose
-h This help
-a Set aggregation type. Possible values
b (default) simple /24 aggregation
a aggregate by ASN
p aggregate to routing table prefix
-p path to a routing table dump. Syntax: "prefix asn" per line
Le script nécessite Net::CIDR et Net::Patricia (vous voudrez utiliser la fonctionnalité -p) qui peuvent ne pas être installés sur tous les serveurs Linux. Sur les systèmes basés sur Debian, utilisez
sudo apt install libnet-cidr-perl libnet-patricia-perl
pour les installer.
Un fichier contenant la table de routage globale du 2023-10-27 est inclus dans ce dépôt. Il doit être décompressé.
Les préfixes de lignes de log peuvent varier selon les systèmes / démons de journalisation. Le code tente désormais d'ignorer les préfixes de ligne et de s'appuyer sur les horodatages fournis par Citrix (qui peuvent apparemment varier selon les paramètres régionaux).
CVE-2023-4966 divulgue des cookies de session, ce qui permet aux attaquants de se reconnecter à des sessions Citrix existantes.
Ce script recherche les lignes syslog « SSLVPN LOGIN » et « SSLVPN TCPCONNSTAT » (un pré-filtrage avec grep pour ces lignes est pertinent) et vérifie quelles sessions n'ont pas de ligne LOGIN correspondante ou changent d'adresse IP client au cours de leur durée de vie.
Le script considère les premières connexions réussies comme un signe qu'un réseau source est bénin. S'il n'y a que des reconnexions depuis un réseau source, mais pas de premières connexions depuis celui-ci, alors ces reconnexions sont suspectes. Cela n'est pas fait sur une simple base d'adresses IP ; trois schémas d'agrégation sont implémentés :
Les deux derniers algorithmes nécessitent un fichier faisant correspondre les préfixes aux ASN. Un exemple est fourni dans ce dépôt.