Write-ups

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.111

Los 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.111

El ataque fue exitoso, obteniendo las credenciales: grumete:1234

Acceso al Sistema

Nos conectamos por SSH con las credenciales obtenidas.

ssh [email protected]

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 capitan

Escalada Vertical de Privilegios

Para buscar formas de elevar privilegios, utilizamos el comando:

getcap -r / 2>/dev/null

El 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.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *