
Empreinte passive des builds Citrix ADC / NetScaler ADC & Gateway et détection des CVE connues — CVE-2023-3519, CitrixBleed 2/3, CVE-2026-8452 et CVE-2026-88771/88772 (KEV)
citrixInspector.py (anciennement cve_2023_3519_inspector.py) est un scanner de vulnérabilité passif écrit en Python pour les appliances Citrix ADC / Citrix Gateway / NetScaler ADC / NetScaler Gateway. Il identifie la version exacte du firmware d'une cible sans authentification, et signale chaque CVE connue à laquelle cette version est vulnérable.
⚠️ Bêta : La détection des CVE plus récentes de 2025/2026 (CitrixBleed 2/3, CVE-2026-8452, CVE-2026-88771/88772) est en bêta. Elle repose sur la capacité à identifier la version exacte du firmware via les techniques d'horodatage GZIP ou de vhash ; lorsque aucune des deux ne fonctionne sur une cible, le scanner se rabat sur une heuristique beaucoup plus grossière, limitée à CVE-2023-3519, et ne signalera pas du tout les CVE plus récentes (voir la section Checks Performed ci-dessous). Considérez les résultats pour les CVE plus récentes comme purement informatifs.

La sortie a été exécutée contre un banc de test simulé. Le nom d'hôte n'est qu'un espace réservé.
cve_2023_3519_inspector.py en citrixInspector.py pour refléter sa portée plus large et multi-CVE./vpn/js/rdx/core/lang/rdx_en.json.gz) comme
technique principale et la plus fiable d'identification de version sans authentification, étant donné que
le hash de ressource statique hérité v=<hash> n'est « plus toujours présent » sur les versions modernes.Last-Modified
de la page) par une comparaison précise de seuil de version dès qu'une version exacte est connue, avec
repli sur l'heuristique d'origine uniquement lorsqu'aucune version ne peut être identifiée.Ce script nécessite Python 3.6+ et les paquets Python suivants :
Pour installer les paquets requis, exécutez :
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.
Le script citrixInspector.py peut accepter soit une seule URL, soit un fichier contenant une liste d'URL en entrée. Il effectue ensuite une série de vérifications pour déterminer la vulnérabilité potentielle des Citrix/NetScaler Gateways donnés :
# 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
Pour spécifier un fichier de log pour la sortie, utilisez l'option --log :
python citrixInspector.py --url https://example.com --log my_log.log
Pour l'aide :
python citrixInspector.py --help
Le script citrixInspector.py effectue les vérifications suivantes sur les sites cibles :
MTIME (RFC 1952)
de /vpn/js/rdx/core/lang/rdx_en.json.gz, qui est défini au moment de la compilation du firmware et identifie
de manière unique la version exacte. C'est la technique actuellement recommandée par la Fox-IT Security
Research Team, étant donné que la technique vhash ci-dessous « n'est plus toujours présente » sur les versions modernes.v=<md5>
dans les URL de ressources statiques intégrées au contenu HTML. Ceci est basé sur l'excellent travail
de Fox-IT (NCC Group) en 2022 :
https://blog.fox-it.com/2022/12/28/cve-2022-27510-cve-2022-27518-measuring-citrix-adc-gateway-version-adoption-on-the-internet/Chaque fois qu'une version exacte peut être identifiée (via la vérification d'horodatage GZIP, la vérification vhash, ou
pluginlist.xml), le script vérifie cette version contre chaque CVE du tableau ci-dessous et signale toutes celles
qui s'appliquent ([CERTAIN]). Lorsqu'aucune version exacte ne peut être identifiée, il se rabat sur les heuristiques
d'origine basées sur le titre/icône/commentaire/en-tête ([FIRM] / [TENTATIVE] / [CITRIX DETECTED]), limitées
uniquement à CVE-2023-3519 comme auparavant.