
Analizar los registros de Citrix NetScaler para buscar indicios de explotación de CVE-2023-4966
Analiza los registros de Citrix Netscaler para buscar señales de explotación de CVE-2023-4966
Escrito por Otmar Lendl.
./citrix-anomaly.pl [-d] [-v] [-h] [-p archivo] [-a X] [archivos_de_registro]
Este script analiza los archivos de syslog de Citrix Netscaler y busca
reconexiones de sesión que podrían ser el resultado de una explotación de CVE-2023-4966.
Parámetros:
-d Depuración
-v Verboso
-h Esta ayuda
-a Establece el tipo de agregación. Valores posibles:
b (predeterminado) agregación simple /24
a agregar por ASN
p agregar al prefijo de la tabla de enrutamiento
-p ruta a un volcado de la tabla de enrutamiento. Sintaxis: "prefijo asn" por línea
El script necesita Net::CIDR y Net::Patricia (es recomendable usar la opción -p) que pueden no estar instalados en todos los servidores Linux. En sistemas basados en Debian, use
sudo apt install libnet-cidr-perl libnet-patricia-perl
para instalarlos.
En este repositorio se incluye un archivo con la tabla de enrutamiento global del 27 de octubre de 2023. Necesita descomprimirse.
Los prefijos de las líneas de registro pueden variar entre diferentes sistemas/daemons de registro. El código ahora intenta ignorar los prefijos de línea y coincide con las marcas de tiempo proporcionadas por Citrix (que aparentemente pueden variar según la configuración regional).
CVE-2023-4966 filtra cookies de sesión, lo que permite a atacantes reconectarse a sesiones existentes de Citrix.
Este script busca líneas de syslog "SSLVPN LOGIN" y "SSLVPN TCPCONNSTAT" (tiene sentido prefiltrar con grep estas líneas) y verifica qué sesiones no tienen una línea LOGIN coincidente o cambian de dirección IP de cliente durante su vida útil.
El script utiliza los inicios de sesión exitosos iniciales como señal de que una red de origen es benigna. Si solo hay reconexiones de una red de origen, pero no conexiones iniciales desde allí, entonces esas reconexiones son sospechosas. Esto no se hace a nivel de dirección IP pura, hay tres esquemas de agregación implementados:
Los dos últimos algoritmos necesitan un archivo que coincida prefijos con ASN. Se proporciona un ejemplo en este repositorio.