Si estás dando tus primeros pasos en el mundo de las pruebas de penetración y te sientes abrumado por la variedad de máquinas virtuales disponibles, o si los conceptos de explotación de vulnerabilidades web y escalada de privilegios aún te resultan teóricos, entonces este artículo está diseñado para ti. Dejaremos de lado la teoría abstracta y nos sumergiremos en un caso práctico clásico: la máquina virtual Corrosion2 disponible en la platafroma Vulnhub. Esta máquina, clasificada como de dificultad media, encapsula una secuencia de ataques que abarca la explotación de vulnerabilidades en el panel de administración de Tomcat, la enumeración de información sensible y la escalada de privilegios mediante la inyección de código Python, lo que la convierte en un excelente mtaerial de práctica para que los principiantes desarrollen un pensamiento crítico y analítico en escenarios reales.
Muchos principiantes caen en la trampa de aprender herramientas de escaneo y principios de vulnerabilidad de forma aislada, sin saber por dónde empezar o cómo conectar los pasos cuando se enfrentan a un objetivo real. La máquina virtual Corrosion2 aborda precisamente este problema. Simula un entorno relativamente realista: un servidor que ofrece servicios web y que podría presentar múltiples deficiencias, como configuraciones incorrectas, contraseñas débiles y configuraciones de permisos inseguras. Nuestro objetivo no se limita a "obtener el flag", sino a comprender la metodología completa que sigue un atacante, desde la detección externa hasta la intrusión interna y la escalada de privilegios. A lo largo de este proceso, aplicarás técnicas clave como el escaneo con Nmap, el descubrimiento de directorios, el cracking de contraseñas, la obtención de un Reverse Shell mediante la explotación de archivos WAR, el abuso de permisos SUID y la manipulación de módulos de Python, conectando así puntos de conocimiento dispersos en una ruta de ataque coherente.
A continuación, te guiaré a través de la experiencia de prueba de penetración en la máquina virtual Corrosion2 con una perspectiva completamente reestructurada. Compartiré detalles y procesos de pensamiento que podrían no haber sido cubiertos en el material original, como por qué se elige un método sobre otro en ciertas etapas, cómo solucionar errores comunes y cómo estas técnicas se reflejan en entornos corporativos reales. Nos centraremos no solo en el "cómo hacerlo", sino también en el "por qué hacerlo de esa manera". ¿Estás listo? Empecemos este profundo ejercicio práctico.
1. Configuración del Entorno de Laboratorio y Recopilación Inicial de Información
Antes de iniciar cualquier prueba de penetración, la creación de un entorno de laboratorio aislado del mundo exterior es el primer paso crucial. Para las máquinas virtuales de Vulnhub, esto generalmente implica el uso de un software de virtualización. Personalmente, prefiero VMware Workstation por su estabilidad en la configuración de red y su rendimiento, aunque VirtualBox es una alternativa perfectamente viable.
Descarga e Importación de la Máquina Virtual
Primero, localiza la página de descarga de Corrosion2 en el sitio web oficial de Vulnhub. Aquí hay un detalle importante: las imágenes de las máquinas virtuales en Vulnhub a veces se actualizan. Asegúrate de descargar "Corrosion: 2" y no otra versión. Una vez descargado, obtendrás un archivo en formato OVA o un paquete comprimido. Si es un archivo OVA, VMware puede importarlo directamente a través de "Archivo" -> "Abrir"; si es un archivo comprimido, primero descomprímelo e importa el archivo OVF o VMDK contenido.
Nota: Al importar la máquina virtual, se recomienda configurar el adaptador de red en modo "NAT". De esta manera, la máquina virtual y tu máquina de ataque (por ejemplo, Kali Linux) estarán en la misma subred virtual, permitiendo la comunicación mutua y aislando al mismo tiempo de tu red física, evitando escaneos accidentales de otros dispositivos.
Una vez importada con éxito, inicia la máquina virtual. Es posible que veas una interfaz de inicio de sesión en línea de comandos, lo cual es normal. Las máquinas virtuales de prueba de penetración generalmente no requieren una interfaz gráfica. Nuestra tarea es comprometerla desde el exterior.
Determinación de la Dirección IP de la Máquina Virtual
Después de iniciar la máquina virtual, necesitamos saber su ubicación en la red. Dado que la hemos configurado en modo NAT, la máquina virtual obtendrá una dirección IP del servidor DHCP virtual de VMware. El método más directo para encontrarla es escanear toda la subred utilizando la herramienta arp-scan.
sudo arp-scan -l
Este comando mostrará las direcciones IP y MAC de todos los dispositivos activos en la red local actual. Busca en los resultados una IP cuya etiqueta de host pueda contener "corrosion" o que parezca un dispositivo desconocido. Otra opción más precisa es combinarlo con el escaneo de Ping de Nmap:
sudo nmap -sn 192.168.xx.0/24
Por favor, reemplaza 192.168.xx.0/24 con el segmento de red real de tu entorno de virtualización (por ejemplo, el modo NAT de VMware a menudo utiliza 192.168.xx.0/24). En los resultados del escaneo, excluye la dirección IP de tu máquina de ataque (Kali) y la dirección IP de la puerta de enlace. La dirección IP restante es muy probablemente la de la máquina virtual. Supongamos que determinamos que la dirección IP de la máquina virtual es 192.168.37.131.
Detección de Puertos y Servicios
Una vez que conocemos la dirección IP, el siguiente paso es "llamar a la puerta" para ver qué "puertas y ventanas" (puertos) están abiertas en la máquina virtual. Aquí utilizaremos Nmap para escanear todos los puertos y identificar los servicios:
sudo nmap -sV -sC -p- 192.168.37.131 -T4
A continuación, se explican los parámetros:
-sV: Detecta la versión del servicio. Esto es crucial, ya que conocer la versión específica nos permite buscar vulnerabilidades asociadas.-sC: Utiliza los scripts predeterminados de Nmap para el escaneo. Esto puede ayudar a identificar problemas de seguridad comunes.-p-: Escanea los 65535 puertos, asegurando que no se omitan servicios en puertos altos.-T4: Establece la velocidad de escaneo. T4 es una velocidad relativamente rápida, aceptable para entornos de laboratorio.
Los resultados del escaneo podrían mostrar algo similar a lo siguiente:
| Puerto | Estado | Servicio | Versión |
|---|---|---|---|
| 80/tcp | open | http | Apache httpd 2.4.41 |
| 8080/tcp | open | Apache Tomcat 9.0.31 | |
| ... | ... | ... | ... |