
Scanner passivo de vulnerabilidades para CVE-2026-1731 — BeyondTrust RS/PRA RCE pré-autenticação (CVSS 9.9). Apenas para uso educacional e defensivo.
╔═══════════════════════════════════════════════════════════════╗
║ ║
║ CVE-2026-1731 ║
║ BeyondTrust RS/PRA Passive Vulnerability Scanner ║
║ ║
╠═══════════════════════════════════════════════════════════════╣
║ PASSIVE SCANNER — EDUCATIONAL & AUTHORIZED USE ONLY ║
║ ║
║ Performs passive fingerprinting via standard HTTP GET. ║
║ No exploit payloads sent. No WebSocket connections. ║
║ Only use against systems you own or are authorized to test. ║
║ ║
║ Methods: BRDF version extraction, /check_health, ║
║ static asset sizing, /get_mech_list API, ║
║ HTML analysis, copyright year, /nw probe ║
║ ║
║ Author: NetGuard 24/7 LLC ║
║ Web: https://netguard24-7.com ║
╚═══════════════════════════════════════════════════════════════╝
Um scanner de vulnerabilidades passivo para CVE-2026-1731 — uma vulnerabilidade crítica (CVSS 9.9) de Execução Remota de Código pré-autenticação no BeyondTrust Remote Support (RS) e Privileged Remote Access (PRA).
Esta ferramenta identifica instâncias BeyondTrust vulneráveis usando apenas requisições HTTP GET padrão. Nenhum payload de exploit é enviado. Nenhuma conexão WebSocket é estabelecida. Nenhuma autenticação é tentada.
Atualização: 16/02/2026
A aplicação do hotfix, BT26-02-RS ou BT26-02-PRA, fará com que instâncias BeyondTrust detectadas abaixo de RS (v21.3 - 25.3.1) ou PRA (v22.1 - 24.X) apareçam como vulneráveis, pois o hotfix não resulta em incrementos de versão. Portanto, instâncias corrigidas com o hotfix (BT26-02-RS ou BT26-02-PRA) aparecerão como vulneráveis. Uma vez que a versão base seja atualizada, a instância aparecerá como não vulnerável". Segundo o fornecedor, a correção oficial é abordada em Remote Support 25.3.2 e superiores | Privileged Remote Access 25.1 e superiores
Autor: NetGuard 24/7 LLC
Esta ferramenta é fornecida apenas para fins EDUCACIONAIS e DEFENSIVOS AUTORIZADOS.
Você pode SOMENTE usar esta ferramenta contra sistemas que você possui ou para os quais possui autorização escrita explícita para testar. A varredura não autorizada de sistemas que você não possui pode violar leis aplicáveis, incluindo o Computer Fraud and Abuse Act (CFAA) e estatutos similares em outras jurisdições.
Os autores não assumem nenhuma responsabilidade pelo uso indevido desta ferramenta. Ao usar este software, você concorda em usá-lo de forma responsável e em conformidade com todas as leis e regulamentos aplicáveis.
| Campo | Detalhe |
|---|---|
| CVE | CVE-2026-1731 |
| CVSS | 9.9 (Crítico) |
| Aviso | BT26-02 |
| Tipo | Execução Remota de Código pré-autenticação |
| Vetor | Endpoint WebSocket /nw — Injeção de avaliação aritmética Bash |
| Afetados | RS ≤ 25.3.1, PRA ≤ 24.3.4 |
| Corrigidos | RS 25.3.2+, PRA 25.1.1+ |
| Exploração | Ativa na natureza desde 12 de fevereiro de 2026 |
CVE-2026-1731 é uma variante de CVE-2024-12356 (a vulnerabilidade usada por APT chinês para violar o Tesouro dos EUA). Ambas visam o mesmo endpoint WebSocket /nw e o script Bash subjacente thin-scc-wrapper. O patch BT24-10 para CVE-2024-12356 adicionou uma verificação de sanidade numérica, mas falhou em impedir a avaliação aritmética Bash do parâmetro remoteVersion — que é o que CVE-2026-1731 explora.
Este scanner usa 8 métodos passivos de fingerprinting — validados contra instâncias BeyondTrust reais — para determinar a versão do produto e o status de vulnerabilidade sem enviar nenhum tráfego de exploit.
| # | Método | Endpoint | O Que Extrai | Confiança |
|---|---|---|---|---|
| 1 | Extração de Versão BRDF | GET /get_rdf?comp=sdcust&locale_code=en-us | Versão exata do produto a partir do cabeçalho binário (ex.: 24.1.4) | EXATA |
| 2 | Resposta /check_health | GET /check_health | "Health Check: Succeeded" = pré-25.x / "Status: Primary" = 25.x+ | ALTA |
| 3 | Dimensionamento de Ativos Estáticos | HEAD /js/login.js | Tamanho do arquivo: ~36K-39K = pré-25.x / ~12K = 25.x+ | ALTA |
| 4 | API /get_mech_list | GET /get_mech_list?version=3 | Nome da empresa + campo thin_rep_enabled (somente 25.x+) | ALTA |
| 5 | Estrutura HTML | GET /login | XHTML 1.1 + BOMGAR = pré-25.x / HTML5 = 25.x+ | MÉDIA |
| 6 | Ano de Direitos Autorais | Rodapé GET /login | 2002-2024 = pré-25.x / 2002-2025 = 25.x | MÉDIA |
| 7 | Informações do Portal | GET /get_portal_info | Valor X-Ns-Company (indicador de reconhecimento de atacante) | — |
| 8 | Sonda WebSocket | GET /nw (somente HTTP) | Confirma a acessibilidade da superfície de ataque | — |
Método 1 (BRDF) é a mesma técnica usada pelo Metasploit e pelo plugin Nessus 213456. Quando o BRDF retorna uma versão exata, a confiança é EXATA. Algumas instâncias 25.x removem a versão do BRDF — nesses casos, os métodos 2-6 são pontuados e corroborados para inferir a faixa de versão.
/nwgit clone https://github.com/YOUR_USERNAME/cve-2026-1731-scanner.git
cd cve-2026-1731-scanner
chmod +x cve_2026_1731_scanner.py
python3 cve_2026_1731_scanner.py -t support.example.com -v
# Crie uma lista de alvos (um host por linha)
cat > targets.txt << 'EOF'
support.example.com
pra.example.com
192.168.1.50
10.0.0.100:8443
remote-support.beyondtrustcloud.com
EOF
# Execute a varredura
python3 cve_2026_1731_scanner.py -f targets.txt --threads 20 -o results.csv --json results.json -v
usage: cve_2026_1731_scanner.py [-h] (-t TARGET | -f FILE) [-o OUTPUT]
[--json JSON_OUTPUT] [--threads THREADS] [-v]
options:
-t, --target TARGET Single target hostname or IP
-f, --file FILE File containing targets (one per line)
-o, --output OUTPUT Export results to CSV file
--json JSON_OUTPUT Export results to JSON file
--threads THREADS Concurrent threads (default: 10)
-v, --verbose Verbose per-target output
O arquivo de alvos aceita entrada flexível — uma entrada por linha:
# Comments are supported (lines starting with #)
192.168.1.1
10.0.0.5
support.example.com
support.example.com:8443
https://support.example.com
http://support.example.com # auto-upgraded to HTTPS
support.example.com/login # paths are stripped automatically
| Nível | Significado |
|---|---|
| CRÍTICO | Versão exata confirmada como vulnerável via BRDF, ou múltiplos sinais de alta confiança indicam pré-25.x |
| ALTO | Provavelmente vulnerável, mas com menos sinais corroborantes; verificação manual recomendada |
| MÉDIO | Inferido como 25.x+ (RS ainda pode estar vulnerável até 25.3.1); verificar o patch BT26-02 |
| BAIXO/INFO | Instância SaaS (auto-corrigida), versão corrigida confirmada, ou confirmada como segura |
| Confiança | Fonte | Significado |
|---|---|---|
| EXATA | BRDF /get_rdf | String de versão exata extraída do binário (ex.: 24.1.4) |
| ALTA | Multi-sinal (3+) | 3 ou mais sinais independentes concordam com 0 contradições |
| MÉDIA | Multi-sinal (2+) | A maioria dos sinais concorda, mas com alguma ambiguidade |
| BAIXA | Inconclusiva | Sinais conflitantes ou insuficientes |
| Código | Significado |
|---|---|
0 | Nenhuma descoberta crítica ou de alto risco |
1 | Descobertas de alto risco detectadas |
2 | Descobertas críticas detectadas |
# Exemplo: integração com pipeline CI/CD
python3 cve_2026_1731_scanner.py -f targets.txt -o results.csv
if [ $? -eq 2 ]; then
echo "CRITICAL: Vulnerable BeyondTrust instances found!"
# trigger alert / page on-call / open ticket
fi
[*] Scanning https://support.example.com...
Status: VULNERABLE [CRITICAL]
Version: 24.1.4 (via BRDF /get_rdf, confidence: EXACT)
Company: examplecorp
Product: Remote Support
Signals: health=old, login.js=36458B, html=modern, ©2024
/nw: REACHABLE
| Campo | Descrição |
|---|---|
target | URL varrida |
is_beyondtrust | Se BeyondTrust foi detectado |
product_type | Remote Support ou Privileged Remote Access |
product_version | Versão exata (se extraída do BRDF) |
version_source | Como a versão foi determinada |
version_confidence | EXATA, ALTA, MÉDIA ou BAIXA |
company_name | Valor X-Ns-Company (usado na exploração) |
copyright_year | Do rodapé da página de login |
health_check_type | old (pré-25.x) ou new (25.x+) |
login_js_size | Tamanho do arquivo de /js/login.js |
thin_rep_enabled | Presente somente em 25.x+ |
html_generation | legacy (XHTML) ou modern (HTML5) |
is_saas | Instância SaaS (.beyondtrustcloud.com) |
ws_endpoint_reachable | Se /nw responde |
vulnerability_status | Resultado da avaliação |
risk_level | CRÍTICO, ALTO, MÉDIO, BAIXO ou INFO |
details | Detalhes da avaliação legíveis por humanos |
Se o scanner identificar instâncias vulneráveis:
/nw se a correção imediata não for possível/nw com valores remoteVersion incomuns contendo $() ou crasesPull requests são bem-vindos. Se você descobrir métodos adicionais de fingerprinting passivo ou sinais de correlação de versão, abra uma issue ou PR.
Licença MIT — consulte LICENSE para detalhes.
NetGuard 24/7 LLC https://netguard24-7.com