
Citrix ADC / NetScaler ADC & Gateway-Builds passiv fingerprinten und bekannte CVEs erkennen — CVE-2023-3519, CitrixBleed 2/3, CVE-2026-8452 und CVE-2026-88771/88772 (KEV)
citrixInspector.py (früher cve_2023_3519_inspector.py) ist ein Python-basierter, passiver Schwachstellen-
Scanner für Citrix ADC / Citrix Gateway / NetScaler ADC / NetScaler Gateway Appliances. Er fingerprintet
den exakten Firmware-Build eines Ziels ohne Authentifizierung und meldet jede bekannte CVE, für die dieser Build
anfällig ist.
⚠️ Beta: Die Erkennung für die neueren CVEs aus 2025/2026 (CitrixBleed 2/3, CVE-2026-8452, CVE-2026-88771/88772) befindet sich in Beta. Sie beruht darauf, den exakten Firmware-Build über die GZIP-Timestamp- oder vhash-Techniken fingerprinten zu können; wenn keine von beiden bei einem Ziel funktioniert, fällt der Scanner auf eine deutlich gröbere, nur auf CVE-2023-3519 beschränkte Heuristik zurück und wird die neueren CVEs überhaupt nicht melden (siehe Abschnitt „Durchgeführte Prüfungen" unten). Behandle die Ergebnisse für die neueren CVEs nur als informativ.

Die Ausgabe wurde gegen eine simulierte Testumgebung ausgeführt. Der Hostname ist nur ein Platzhalter.
cve_2023_3519_inspector.py wurde in citrixInspector.py umbenannt, um den breiteren, Multi-CVE-Umfang widerzuspiegeln./vpn/js/rdx/core/lang/rdx_en.json.gz) als primäre,
zuverlässigste unauthentifizierte Build-Identifikationstechnik hinzugefügt, da der alte v=<hash>-Static-
Resource-Hash auf modernen Builds „nicht mehr immer vorhanden" ist.Last-Modified-Headers der Seite) wurde durch einen
präzisen Versionsschwellenwert-Vergleich ersetzt, wann immer ein exakter Build bekannt ist; nur wenn kein Build
identifiziert werden kann, wird auf die ursprüngliche Heuristik zurückgegriffen.Dieses Skript erfordert Python 3.6+ und die folgenden Python-Pakete:
Um die erforderlichen Pakete zu installieren, führe aus:
git clone https://github.com/securekomodo/citrixInspector.git
cd citrixInspector
pip install -r requirements.txt
python citrixInspector.py -u <target_url>
Author: Bryan Smith (@securekomodo)
------------------------
_________ .__ __ .__
\_ ___ \|__|/ |________|__|__ ___
/ \ \/| \ __\_ __ \ \ \/ /
\ \___| || | | | \/ |> <
\______ /__||__| |__| |__/__/\_ \
\/ \/
.___ __
| | ____ ____________ ____ _____/ |_ ___________
| |/ \ / ___/\____ \_/ __ \_/ ___\ __\/ _ \_ __ \
| | | \___ \ | |_> > ___/\ \___| | ( <_> ) | \/
|___|___| /____ >| __/ \___ >\___ >__| \____/|__|
\/ \/ |__| \/ \/
citrixInspector
------------------------
usage: citrixInspector.py [-h] (-u URL | -f FILE) [--ioc-check] [-l LOG]
Fingerprint and check Citrix ADC / NetScaler ADC & Gateway for known CVEs.
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL The URL of the Citrix/NetScaler Gateway to check.
-f FILE, --file FILE A file containing a list of URLs to check.
--ioc-check Slower. Performs IOC (Indicator of Compromise) check.
-l LOG, --log LOG Log file to write the output.
Das Skript citrixInspector.py kann entweder eine einzelne URL oder eine Datei mit einer Liste von URLs als Eingabe akzeptieren. Es führt dann eine Reihe von Prüfungen durch, um die potenzielle Anfälligkeit der angegebenen Citrix/NetScaler Gateways zu bestimmen:
# Check a single URL
python citrixInspector.py --url https://example.com
# Check multiple URLs from a file
python citrixInspector.py --file urls.txt
# Check multiple URLs from a file and check for IOCs
python citrixInspector.py --file urls.txt --ioc-check
Um eine Log-Datei für die Ausgabe anzugeben, verwende die Option --log:
python citrixInspector.py --url https://example.com --log my_log.log
Für Hilfe:
python citrixInspector.py --help
Das Skript citrixInspector.py führt die folgenden Prüfungen auf den Ziel-Websites durch:
MTIME-Header-Feld (RFC 1952)
von /vpn/js/rdx/core/lang/rdx_en.json.gz, das zur Firmware-Kompilierungszeit gesetzt wird und den exakten Build
eindeutig identifiziert. Dies ist die aktuell empfohlene Technik des Fox-IT Security
Research Team, da die unten beschriebene vhash-Technik auf modernen Builds „nicht mehr immer vorhanden" ist.v=<md5>-
Hashes in statischen Ressourcen-URLs, die im HTML-Inhalt eingebettet sind. Dies basiert auf der großartigen Arbeit
von Fox-IT (NCC Group) aus dem Jahr 2022:
https://blog.fox-it.com/2022/12/28/cve-2022-27510-cve-2022-27518-measuring-citrix-adc-gateway-version-adoption-on-the-internet/Wann immer ein exakter Build identifiziert werden kann (über die GZIP-Timestamp-Prüfung, die vhash-Prüfung oder
pluginlist.xml), prüft das Skript diesen Build gegen jede CVE in der folgenden Tabelle und meldet alle
zutreffenden ([CERTAIN]). Wenn kein exakter Build identifiziert werden kann, fällt es auf die ursprünglichen
Titel-/Icon-/Kommentar-/Header-Heuristiken zurück ([FIRM] / [TENTATIVE] / [CITRIX DETECTED]), beschränkt nur auf
CVE-2023-3519 wie zuvor.