Resolución del CTF: Tortuga
Enumeración
Escaneo de puertos
Realizamos un escaneo de todos los puertos para saber cuáles están activos.
sudo nmap -p- --open -sCV -Pn -n --min-rate 5000 192.168.0.111Los parámetros utilizados son:
- -p-: Escaneo de todos los puertos (65535)
- –open: Solo muestra puertos abiertos
- -sCV: Combina -sC (scripts por defecto) y -sV (detección de versiones)
- -Pn: Deshabilitamos el descubrimiento de host mediante ping
- -n: No realiza resolución de DNS, evitamos que el escaneo dure más tiempo del necesario
- –min-rate 5000: Especificamos que el escaneo de puertos no vaya más lento que 5000 paquetes por segundo
Nos encontramos con dos puertos abiertos, el puerto 22 con SSH y el puerto 80 con un servidor web Apache con el título Isla Tortuga.
Exploración Web
Al acceder al servidor web nos encontramos con una página de bienvenida con el mensaje Bienvenido a Isla Tortuga y dos secciones principales: Ver el mapa de la isla y Conocer la tripulación.
En la sección mapa.php encontramos un mensaje interesante: Ey grumete revisa la nota oculta que dejado en tu camarote
Este mensaje nos indica que existe un usuario llamado grumete y que hay información oculta en su directorio personal.
Ataque de Fuerza Bruta
Basándonos en la pista encontrada, vamos a intentar un ataque de fuerza bruta contra el servicio SSH utilizando el usuario grumete con hydra.
hydra -l grumete -P /usr/share/wordlists/rockyou.txt ssh://192.168.0.111El ataque fue exitoso, obteniendo las credenciales: grumete:1234
Acceso al Sistema
Nos conectamos por SSH con las credenciales obtenidas.
Una vez dentro del sistema, al explorar el directorio personal del usuario grumete, encontramos la primera bandera.
Enumeración Interna
Utilizando el comando cat /etc/passwd, identificamos otro usuario del sistema llamado capitan.
Ejecutamos ls -la para listar archivos ocultos y encontramos .nota.txt con un contenido que nos revela la contraseña del usuario capitan.
Escalada Horizontal de Privilegios
Utilizamos la contraseña encontrada para cambiar al usuario capitan:
su capitanEscalada Vertical de Privilegios
Para buscar formas de elevar privilegios, utilizamos el comando:
getcap -r / 2>/dev/nullEl comando revela que /usr/bin/python3.11 tiene la capability cap_setuid=ep, lo que significa que Python puede ejecutar setuid(0) para convertirse en root.
Ejecutamos el siguiente comando para elevar privilegios:
/usr/bin/python3.11 -c 'import os; os.setuid(0); os.system("/bin/bash")'Y nos convertimos en root.
