Secciones
1. Introducción
Este post es la resolución al ejercicio: https://github.com/breatheco-de/pentesting-exploit-vulnerable-machine-project.git
El objetivo principal de este ejercicio fue detectar y explotar vulnerabilidades críticas en el sistema objetivo, con enfoque en servicios expuestos y configuraciones inseguras. Durante la evaluación, se priorizó la explotación de una vulnerabilidad en el servicio Java RMI (puerto 1099/tcp), identificada como CVE-2011-3556, que permite la ejecución remota de código (RCE). Utilizando herramientas como Nmap, Metasploit Framework y bases de datos de vulnerabilidades, se demostró cómo un atacante podría comprometer la máquina y obtener acceso como usuario root.
1.1 Resumen del objetivo y alcance del ejercicio.
Primero para saber la IP de la máquina Metasploitable utilizamos “ifconfig”:

Dirección IP Objetivo: 10.0.2.8
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.
- Reporte de reconocimiento: para no repetir el escaneo, tendré en cuenta todas las vulnerabilidades que saqué con Nmap en la práctica anterior.
- Exploit-DB y CVE Details: para investigar las vulnerabilidades confirmadas.
- Metasploit Framework: para explotar las vulnerabilidades encontradas.
3. Resultados
3.1 Detalles de las vulnerabilidades explotadas.
En la lectura del curso ya se ha mostrado una explotación del FTP. Así que, para no repetir lo mismo, vamos a intentar explotar otra vulnerabilidad (La máquina tiene centenares de vulnerabilidades ya que está hecha así para practicar). Vamos a explotar por ejemplo la vulnerabilidad de java-rmi.
En el análisis de nmap se detectó que el puerto 1099/tcp estaba abierto, asociado con el servicio java-rmi (Java Remote Method Invocation). Este servicio es parte del entorno Java y se utiliza para la ejecución remota de métodos entre aplicaciones distribuidas. Sin embargo, la configuración predeterminada de algunos registros RMI permite cargar clases desde URLs remotas, lo que introduce un riesgo significativo de ejecución remota de código (RCE).
Esta vulnerabilidad, identificada como CVE-2011-3556, afecta versiones antiguas de Oracle Java SE JDK, JRE y JRockit, entre otras implementaciones. Permite a un atacante remoto explotar la configuración insegura para comprometer la confidencialidad, integridad y disponibilidad del sistema objetivo.
En este caso, Utilizaremos Metasploit para aprovechar esta vulnerabilidad. El módulo utilizado, “exploit/multi/misc/java_rmi_server”, fue diseñado específicamente para atacar servidores RMI configurados con esta debilidad.
3.2 Configuración del módulo de explotación
(exploit/multi/misc/java_rmi_server)

- IP del objetivo (RHOSTS): Se configuró como 10.0.2.8. Esta dirección corresponde a la máquina objetivo donde se encuentra corriendo el servicio Java RMI.
- Puerto del servicio (RPORT): El puerto especificado es 1099, correspondiente al registro RMI en la máquina vulnerable. Este es el puerto utilizado por el servicio para la comunicación remota.
- Interfaz de red del servidor (SRVHOST): Configurado en 0.0.0.0, lo que indica que el servidor HTTP está escuchando en todas las interfaces de red del sistema atacante.
- Puerto del servidor (SRVPORT): Configurado en 8080, este es el puerto local utilizado por el servidor HTTP de Metasploit para servir la carga útil (payload) al sistema objetivo.
- Carga útil (PAYLOAD): Se seleccionó java/meterpreter/reverse_tcp. Este payload permite establecer una sesión inversa desde el sistema objetivo hacia el atacante, proporcionando control remoto al atacante.
- IP del sistema atacante (LHOST): Especificada como 10.0.2.9. Esta es la dirección IP de la máquina atacante que recibirá la conexión inversa desde el sistema comprometido.
- Puerto de escucha (LPORT): Configurado en 4444. Este es el puerto del sistema atacante que estará escuchando para recibir la sesión de conexión inversa.
3.2.1 Ejecutando el exploit
Este exploit fue diseñado para explotar la vulnerabilidad CVE-2011-3556 en el servicio Java RMI del objetivo. El módulo:
- Conecta al puerto 1099 del objetivo y utiliza la vulnerabilidad de carga de clases remotas para ejecutar el payload malicioso.
- Establece una conexión inversa con la máquina atacante a través del puerto 4444, permitiendo acceso remoto al sistema comprometido.

Tras realizar la explotación, confirmamos que nos encontramos dentro de la máquina “Metasploitable” y somos el usuario “root”.
4. Mitigación
Para abordar la vulnerabilidad explotada en el puerto 1099/tcp, se pueden implementar las siguientes medidas de mitigación:
- Configuración del Registro RMI: Deshabilitar la capacidad de cargar clases desde URLs remotas en el registro RMI. Esto elimina el riesgo de ejecución remota de código causado por esta vulnerabilidad.
- Actualización del Software: Asegurarse de que la plataforma Java utilizada esté actualizada a la versión más reciente, que incluye las correcciones necesarias para vulnerabilidades conocidas, como la CVE-2011-3556.
- Restricción del Acceso: Configurar un firewall para limitar el acceso al puerto 1099 únicamente a direcciones IP confiables. Esto reduce la superficie de ataque desde actores maliciosos.
- Autenticación y Autorización: Implementar mecanismos robustos de autenticación y autorización para usuarios y aplicaciones que necesiten acceso al servicio RMI.
- Escaneo Periódico: Realizar análisis regulares de vulnerabilidades y configuraciones inseguras para identificar y solucionar problemas antes de que puedan ser explotados.
Estas medidas ayudarán a reducir significativamente el riesgo de explotación de la vulnerabilidad y a proteger el sistema.
5. Conclusión
La explotación de la vulnerabilidad del puerto 1099/tcp en el servicio Java RMI demuestra el impacto crítico de configuraciones predeterminadas inseguras en sistemas expuestos. Durante el proceso, se utilizó la herramienta Metasploit para ilustrar cómo actores malintencionados podrían obtener acceso remoto a una máquina vulnerable.
Este ejercicio resalta la importancia de seguir buenas prácticas de seguridad, como mantener los sistemas actualizados, restringir accesos no autorizados y auditar servicios expuestos regularmente.