
Rail-OT-Protector (ROP) — free, open-source cybersecurity scanning tool for rail and transit OT/SCADA networks. PowerShell + Bash scanners for CVE-2025-1727, RailSafe legacy API, ICS protocol exposure, and remote access risk.
Escaneo de ciberseguridad gratuito y de código abierto para redes OT/SCADA de ferrocarril y tránsito.
Rail-OT-Protector (ROP) es un conjunto de herramientas de ciberseguridad gratuito y de código abierto diseñado para operadores ferroviarios, autoridades de tránsito, equipos de seguridad OT/ICS y respondedores de incidentes que necesitan evaluar rápidamente la exposición cibernética en redes de tecnología operativa (OT) y SCADA de ferrocarril y tránsito.
ROP incluye tanto un escáner PowerShell (hosts de salto Windows) como un escáner Bash (Linux/macOS) que barren las subredes configuradas, detectan servicios de acceso remoto y protocolos ICS expuestos, identifican interfaces heredadas vulnerables de control ferroviario y señalan indicadores de riesgo vinculados a la vulnerabilidad de enlace remoto Fin-de-Tren/Cabeza-de-Tren (EOT/HOT) CVE-2025-1727.
Todos los hallazgos se escriben en informes JSON y CSV con marca de tiempo y etiquetas de severidad CRITICAL / HIGH / MEDIUM, lo que proporciona un artefacto listo para triaje a los equipos de seguridad e ingeniería.
ciberseguridad ferroviaria, seguridad OT de tránsito, escáner SCADA, escáner de vulnerabilidades ICS, CVE-2025-1727, autenticación débil EOT HOT, API SCADA RailSafe, escáner Modbus, escáner DNP3, escáner EtherNet/IP, IEC 60870-5-104, Wabtec TrainLink, Siemens Trainguard, CISA AA26-097A, endurecimiento OT ferroviario, escáner OT de código abierto, escáner ICS PowerShell, escáner SCADA Bash
# Standard full subnet scan
pwsh ./scripts/powershell/ROP.ps1 -Subnets 10.10.20.0/24,10.10.30.0/24 -OutputDir ./reports
# EOT/HOT fast-scan mode with custom timeout and threads
pwsh ./scripts/powershell/ROP.ps1 -Subnets 10.10.20.0/24 -EotHotOnly -TimeoutMs 1200 -Threads 64
chmod +x ./scripts/bash/ROP.sh
# Standard full subnet scan
./scripts/bash/ROP.sh --subnets 10.10.20.0/24,10.10.30.0/24 --output-dir ./reports
# EOT/HOT fast-scan mode with custom timeout and threads
./scripts/bash/ROP.sh --subnets 10.10.20.0/24 --eot_hot_only --timeout-ms 1200 --threads 64
[2026-08-03 21:00:14] [CRITICAL] 10.10.20.14:4510 Potential EOT/HOT remote linking service detected (CVE-2025-1727 exposure candidate)
[2026-08-03 21:00:18] [HIGH] 10.10.20.21:5900 VNC exposed on OT subnet; review remote-access controls immediately
[2026-08-03 21:00:20] [HIGH] 10.10.20.44:2404 IEC 60870-5-104 reachable from scan host
[2026-08-03 21:00:21] [HIGH] 10.10.20.55:28784 RailSafe Control Interface fingerprint matched legacy API version family
[2026-08-03 21:00:23] [HIGH] 10.10.20.62:502 Modbus service reachable from scan host
[2026-08-03 21:00:25] [MEDIUM] 10.10.20.88:22 SSH reachable from scan host
Scan complete. Findings: 6. JSON: ./reports/ROP-results-20260803-210025.json CSV: ./reports/ROP-results-20260803-210025.csv
Rail-OT-Protector/
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── docs/
│ ├── CISA-Reference.md
│ └── Threat-Intelligence.md
├── reports/
│ └── .gitkeep
└── scripts/
├── bash/
│ └── ROP.sh
└── powershell/
└── ROP.ps1
P: ¿ROP requiere privilegios de administrador/root?
R: No. ROP utiliza intentos de conexión TCP estándar — sin sockets raw, sin creación de paquetes. Se ejecuta como usuario normal tanto en Windows como en Linux.
P: ¿Esta herramienta activará alertas IDS/IPS en mi red OT?
R: Posiblemente. El escaneo a nivel de puertos es detectable. Coordine siempre con su centro de operaciones de red y obtenga autorización por escrito antes de ejecutar cualquier escaneo en una red OT de producción.
P: ¿ROP explota CVE-2025-1727?
R: No. ROP solo detecta si los puertos asociados con CVE-2025-1727 (servicios de enlace remoto EOT/HOT) son accesibles. No intenta autenticación ni envía payloads de exploit.
P: ¿Puedo ejecutarlo contra una red ferroviaria aislada (air-gapped)?
R: Sí. ROP no requiere acceso a internet. Copie el script a un host de salto dentro del entorno aislado y ejecútelo localmente.
P: ¿En qué formatos se generan los informes?
R: Tanto JSON como CSV. JSON es adecuado para la ingesta en SIEM; CSV está listo para triaje en hojas de cálculo y puede importarse en ServiceNow, Jira o plataformas de tickets similares.
P: ¿Esta herramienta es solo para ferrocarril? ¿Puedo usarla en redes OT generales?
R: Las comprobaciones de protocolos Modbus, DNP3, EtherNet/IP e IEC se aplican ampliamente a cualquier entorno OT/ICS. Las comprobaciones de RailSafe y CVE-2025-1727 son específicas del ferrocarril.
P: ¿Es gratuita para uso comercial?
R: Sí — Licencia MIT. Puede usarla, modificarla y redistribuirla en contextos comerciales con atribución.
Si Rail-OT-Protector le ayudó a encontrar una exposición real, considere:
Construido por @spinfosecurity — aprendiendo al construir herramientas gratuitas que detectan y protegen infraestructura crítica.
| Amenaza / Servicio | Puertos | Severidad | Referencia |
|---|
| CVE-2025-1727 EOT/HOT Remote Linking Weak Auth | 4510, 4511 | CRITICAL | Wabtec TrainLink NG/NG3/NG4/NG5, Siemens Trainguard EOT/HOT, DPS Electronics |
| Interfaz de Control RailSafe 1.0/1.1/2.0 | 28784 | HIGH | API SCADA heredada sin parchear durante 13 años; riesgo de MitM/replay |
| VNC Expuesto | 5900, 5901 | HIGH | FBI PSA 2026-08-01 |
| RDP Expuesto | 3389 | HIGH | CISA AA26-097A |
| Telnet Expuesto | 23 | HIGH | Riesgo de credenciales en texto plano |
| FTP Expuesto | 21 | HIGH | Riesgo de credenciales en texto plano |
| SSH Accesible | 22 | MEDIUM | Revisar política de acceso |
| Gestión HTTP/HTTPS | 80, 443 | MEDIUM | Revisar política de acceso |
| Modbus | 502 | HIGH | Protocolo ICS accesible |
| EtherNet/IP | 44818, 2222 | HIGH | Protocolo ICS accesible |
| S7 / IEC 60870 | 102 | HIGH | Protocolo ICS accesible |
| IEC 60870-5-104 | 2404 | HIGH | Protocolo ICS accesible |
| DNP3 | 20000 | HIGH | Protocolo ICS accesible |