
Fingerprint passivo de builds do Citrix ADC / NetScaler ADC & Gateway e deteção de CVEs conhecidas — CVE-2023-3519, CitrixBleed 2/3, CVE-2026-8452 e CVE-2026-88771/88772 (KEV)
citrixInspector.py (anteriormente cve_2023_3519_inspector.py) é um scanner de vulnerabilidades passivo baseado em Python para appliances Citrix ADC / Citrix Gateway / NetScaler ADC / NetScaler Gateway. Ele identifica a versão exata de firmware de um alvo sem autenticação e reporta todas as CVEs conhecidas às quais essa versão é vulnerável.
⚠️ Beta: A detecção para as CVEs mais recentes de 2025/2026 (CitrixBleed 2/3, CVE-2026-8452, CVE-2026-88771/88772) está em beta. Ela depende da capacidade de identificar a versão exata de firmware através das técnicas de timestamp GZIP ou vhash; quando nenhuma delas funciona em um alvo, o scanner recorre a uma heurística muito mais grosseira, apenas para CVE-2023-3519, e não sinalizará as CVEs mais recentes de forma alguma (veja a seção Checks Performed abaixo). Trate os resultados para as CVEs mais recentes como apenas informativos.

A saída foi executada contra um ambiente de teste simulado. O hostname é apenas um placeholder.
cve_2023_3519_inspector.py para citrixInspector.py para refletir seu escopo mais amplo e multi-CVE./vpn/js/rdx/core/lang/rdx_en.json.gz) como a técnica primária e mais confiável de identificação de versão sem autenticação, já que o hash de recurso estático legado v=<hash> "não está mais sempre presente" em versões modernas.Last-Modified da página) por uma comparação precisa de limiar de versão sempre que uma versão exata é conhecida, recorrendo à heurística original apenas quando nenhuma versão pode ser identificada.Este script requer Python 3.6+ e os seguintes pacotes Python:
Para instalar os pacotes necessários, execute:
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.
O script citrixInspector.py pode aceitar tanto uma única URL quanto um arquivo com uma lista de URLs como entrada. Ele então realiza uma série de verificações para determinar a potencial vulnerabilidade dos Citrix/NetScaler Gateways fornecidos:
# 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
Para especificar um arquivo de log para a saída, use a opção --log:
python citrixInspector.py --url https://example.com --log my_log.log
Para ajuda:
python citrixInspector.py --help
O script citrixInspector.py realiza as seguintes verificações nos sites alvo:
MTIME do GZIP (RFC 1952) de /vpn/js/rdx/core/lang/rdx_en.json.gz, que é definido no momento da compilação do firmware e identifica unicamente a versão exata. Esta é a técnica atualmente recomendada pela Fox-IT Security Research Team, já que a técnica de vhash abaixo "não está mais sempre presente" em versões modernas.v=<md5> em URLs de recursos estáticos incorporadas no conteúdo HTML. Isso é baseado no incrível trabalho da Fox-IT (NCC Group) em 2022:
https://blog.fox-it.com/2022/12/28/cve-2022-27510-cve-2022-27518-measuring-citrix-adc-gateway-version-adoption-on-the-internet/Sempre que uma versão exata pode ser identificada (via verificação de timestamp GZIP, verificação de vhash ou pluginlist.xml), o script verifica essa versão contra todas as CVEs na tabela abaixo e reporta todas as aplicáveis ([CERTAIN]). Quando nenhuma versão exata pode ser identificada, ele recorre às heurísticas originais de título/ícone/comentário/cabeçalho ([FIRM] / [TENTATIVE] / [CITRIX DETECTED]), limitadas apenas à CVE-2023-3519 como antes.