
citrix netscaler-Protokolle parsen, um Anzeichen für die Ausnutzung von CVE-2023-4966 zu erkennen.
Citrix-Netscaler-Logs analysieren, um Anzeichen für die Ausnutzung von CVE-2023-4966 zu erkennen
Geschrieben von Otmar Lendl.
./citrix-anomaly.pl [-d] [-v] [-h] [-p datei] [-a X] [logdateien]
Dieses Skript analysiert Citrix-Netscaler-Syslog-Dateien und sucht nach
Session-Reconnects, die das Ergebnis einer Ausnutzung von CVE-2023-4966 sein könnten.
Parameter:
-d Debug
-v Ausführlich (Verbose)
-h Diese Hilfe
-a Aggregationstyp festlegen. Mögliche Werte
b (Standard) einfache /24-Aggregation
a Aggregation nach ASN
p Aggregation auf Routing-Tabellen-Präfix
-p Pfad zu einem Routing-Tabellen-Dump. Syntax: "präfix asn" pro Zeile
Das Skript benötigt Net::CIDR und Net::Patricia (für die -p-Funktion), die möglicherweise nicht auf allen Linux-Servern installiert sind. Auf Debian-basierten Systemen verwenden Sie
sudo apt install libnet-cidr-perl libnet-patricia-perl
um sie zu installieren.
Eine Datei mit der globalen Routing-Tabelle vom Stand 2023-10-27 ist in diesem Repository enthalten. Sie muss dekomprimiert werden.
Die Logzeilen-Präfixe können zwischen verschiedenen Systemen / Log-Daemons variieren. Der Code versucht nun, Zeilenpräfixe zu ignorieren und anhand der von Citrix gelieferten Zeitstempel abzugleichen (die offenbar je nach Gebietsschema-Einstellungen variieren können).
CVE-2023-4966 gibt Session-Cookies frei, die es Angreifern ermöglichen, sich mit bestehenden Citrix-Sitzungen zu verbinden.
Dieses Skript sucht nach "SSLVPN LOGIN"- und "SSLVPN TCPCONNSTAT"-Syslog-Zeilen (eine Vorfilterung mit grep für diese Zeilen ist sinnvoll) und prüft, welche Sitzungen entweder keine passende LOGIN-Zeile haben oder während ihrer Lebensdauer die Client-IP-Adresse ändern.
Das Skript verwendet erfolgreiche initiale Logins als Zeichen dafür, dass ein Quellnetzwerk vertrauenswürdig ist. Wenn es nur Reconnects von einem Quellnetzwerk gibt, aber keine initialen Verbindungen von dort, dann sind diese Reconnects verdächtig. Dies geschieht nicht auf reiner IP-Adress-Basis; es sind drei Aggregationsschemata implementiert:
Die letzten beiden Algorithmen benötigen eine Datei, die Präfixe ASN zuordnet. Ein Beispiel ist in diesem Repository enthalten.