
Escáner pasivo de vulnerabilidades para CVE-2026-1731 — RCE pre-autenticación en BeyondTrust RS/PRA (CVSS 9.9). Solo para uso educativo y defensivo.
╔═══════════════════════════════════════════════════════════════╗
║ ║
║ CVE-2026-1731 ║
║ Escáner Pasivo de Vulnerabilidades BeyondTrust RS/PRA ║
║ ║
╠═══════════════════════════════════════════════════════════════╣
║ ESCÁNER PASIVO — SOLO USO EDUCATIVO Y AUTORIZADO ║
║ ║
║ Realiza fingerprinting pasivo mediante HTTP GET estándar. ║
║ No se envían payloads de exploit. Sin conexiones WebSocket. ║
║ Úselo solo contra sistemas propios o autorizados para probar║
║ ║
║ Métodos: extracción de versión BRDF, /check_health, ║
║ tamaño de activos estáticos, API /get_mech_list, ║
║ análisis HTML, año de copyright, sonda /nw ║
║ ║
║ Autor: NetGuard 24/7 LLC ║
║ Web: https://netguard24-7.com ║
╚═══════════════════════════════════════════════════════════════╝
Un escáner de vulnerabilidades pasivo para CVE-2026-1731 — una vulnerabilidad crítica (CVSS 9.9) de ejecución remota de código sin autenticación en BeyondTrust Remote Support (RS) y Privileged Remote Access (PRA).
Esta herramienta identifica instancias vulnerables de BeyondTrust utilizando solo solicitudes HTTP GET estándar. No se envían payloads de exploit. No se establecen conexiones WebSocket. No se intenta autenticación.
Actualización: 16/02/2026
Aplicar el hotfix BT26-02-RS o BT26-02-PRA hará que las instancias detectadas de BeyondTrust por debajo de RS (v21.3 - 25.3.1) o PRA (v22.1 - 24.X) aparezcan como vulnerables, ya que el hotfix no resulta en incrementos de versión; por lo tanto, las instancias parcheadas con el hotfix (BT26-02-RS o BT26-02-PRA) aparecerán como vulnerables. Una vez que se actualice la versión base, la instancia aparecerá como no vulnerable". Según el proveedor, la corrección oficial se aborda en Remote Support 25.3.2 y superior | Privileged Remote Access 25.1 y superior
Autor: NetGuard 24/7 LLC
Esta herramienta se proporciona únicamente con fines EDUCATIVOS y DEFENSIVOS AUTORIZADOS.
Solo puede UTILIZAR esta herramienta contra sistemas que le pertenezcan o para los cuales tenga autorización escrita explícita para realizar pruebas. El escaneo no autorizado de sistemas que no le pertenecen puede violar las leyes aplicables, incluida la Computer Fraud and Abuse Act (CFAA) y estatutos similares en otras jurisdicciones.
Los autores no asumen ninguna responsabilidad por el uso indebido de esta herramienta. Al utilizar este software, usted acepta usarlo de manera responsable y en cumplimiento de todas las leyes y regulaciones aplicables.
| Campo | Detalle |
|---|---|
| CVE | CVE-2026-1731 |
| CVSS | 9.9 (Crítico) |
| Aviso | BT26-02 |
| Tipo | Ejecución remota de código sin autenticación |
| Vector | Endpoint WebSocket /nw — Inyección de evaluación aritmética Bash |
| Afectados | RS ≤ 25.3.1, PRA ≤ 24.3.4 |
| Corregido | RS 25.3.2+, PRA 25.1.1+ |
| Explotación | Activa en la naturaleza desde el 12 de febrero de 2026 |
CVE-2026-1731 es una variante de CVE-2024-12356 (la vulnerabilidad utilizada por un APT chino para vulnerar el Tesoro de EE. UU.). Ambas apuntan al mismo endpoint WebSocket /nw y al script Bash subyacente thin-scc-wrapper. El parche BT24-10 para CVE-2024-12356 añadió una verificación de sanidad numérica, pero no logró prevenir la evaluación aritmética Bash del parámetro remoteVersion — que es lo que explota CVE-2026-1731.
Este escáner utiliza 8 métodos de fingerprinting pasivo — validados contra instancias reales de BeyondTrust — para determinar la versión del producto y el estado de vulnerabilidad sin enviar tráfico de exploit.
| # | Método | Endpoint | Qué Extrae | Confianza |
|---|---|---|---|---|
| 1 | Extracción de Versión BRDF | GET /get_rdf?comp=sdcust&locale_code=en-us | Versión exacta del producto desde el encabezado binario (p. ej., 24.1.4) | EXACTA |
| 2 | Respuesta /check_health | GET /check_health | "Health Check: Succeeded" = pre-25.x / "Status: Primary" = 25.x+ | ALTA |
| 3 | Tamaño de Activos Estáticos | HEAD /js/login.js | Tamaño del archivo: ~36K-39K = pre-25.x / ~12K = 25.x+ | ALTA |
| 4 | API /get_mech_list | GET /get_mech_list?version=3 | Nombre de la empresa + campo thin_rep_enabled (solo 25.x+) | ALTA |
| 5 | Estructura HTML | GET /login | XHTML 1.1 + BOMGAR = pre-25.x / HTML5 = 25.x+ | MEDIA |
| 6 | Año de Copyright | Pie de página de GET /login | 2002-2024 = pre-25.x / 2002-2025 = 25.x | MEDIA |
| 7 | Información del Portal | GET /get_portal_info | Valor X-Ns-Company (indicador de reconocimiento de atacantes) | — |
| 8 | Sonda WebSocket | GET /nw (solo HTTP) | Confirma la accesibilidad de la superficie de ataque | — |
Método 1 (BRDF) es la misma técnica utilizada por Metasploit y el plugin 213456 de Nessus. Cuando BRDF devuelve una versión exacta, la confianza es EXACTA. Algunas instancias 25.x eliminan la versión de BRDF — en esos casos, los métodos 2-6 se puntúan y corroboran para inferir el rango de versión.
/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
# Cree una lista de objetivos (un host por línea)
cat > targets.txt << 'EOF'
support.example.com
pra.example.com
192.168.1.50
10.0.0.100:8443
remote-support.beyondtrustcloud.com
EOF
# Ejecute el escaneo
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 Hostname o IP de un solo objetivo
-f, --file FILE Archivo que contiene los objetivos (uno por línea)
-o, --output OUTPUT Exportar resultados a archivo CSV
--json JSON_OUTPUT Exportar resultados a archivo JSON
--threads THREADS Hilos concurrentes (predeterminado: 10)
-v, --verbose Salida detallada por objetivo
El archivo de objetivos acepta entrada flexible — una entrada por línea: