Resolución del CTF Bocata de atún
Enumeración
Escaneo de puertos
Realizamos un escaneo de todos los puertos para identificar los servicios activos en el sistema objetivo.
nmap -p- --open -sCV -Pn -n --min-rate 5000 192.168.0.105- -p- : Escaneo de todos los puertos. (65535)
- -sS : Realiza un TCP SYN Scan para escanear rápidamente qué puertos están abiertos.
- -sC : Escaneo con scripts básicos de reconocimiento.
- -sV : Detección de servicios.
- –min-rate 5000 : Escaneo no inferior a 5000 paquetes/segundo.
- -n : Sin resolución DNS.
- -Pn : Sin descubrimiento por ping.
Identificamos los servicios expuestos: SSH (22), HTTP (80) y MySQL (3306). El vector principal se encuentra en el servicio web.
Análisis del servicio web
Accedemos al servicio HTTP y revisamos el código fuente. Observamos que las imágenes se cargan desde un directorio accesible directamente.
curl http://192.168.0.105/IMAGES/Dentro del directorio localizamos una imagen no referenciada en la web principal cuyo nombre contiene una cadena hexadecimal.
Decodificamos el nombre para identificar una posible pista.
echo 426f7272617220646573707565730a | xxd -r -pEl resultado sugiere contenido oculto. Descargamos la imagen y procedemos a su análisis.
Extracción de información oculta
Al no encontrar información relevante en los metadatos, atacamos directamente la esteganografía mediante fuerza bruta.
stegseek horse_426f7272617220646573707565730a.jpg /usr/share/wordlists/rockyou.txtExtraemos un archivo de texto que nos proporciona una nueva ruta dentro del servidor web.
Acceso a la aplicación interna
Accedemos a la ruta descubierta, donde se nos solicita el nombre de un agente como mecanismo de autenticación.
curl http://192.168.0.105/sup3r_secret_d00r.phpUtilizamos uno de los nombres obtenidos del mensaje extraído y accedemos a una aplicación de mensajería interna.
La aplicación es vulnerable a IDOR, permitiendo enumerar conversaciones modificando directamente el parámetro name.
curl "http://192.168.0.105/secr3t_message_app.php/p?name=melissa"Enumeramos múltiples agentes y detectamos un patrón: los nombres corresponden a actores de la serie The Walking Dead. Probamos con un actor principal.
curl "http://192.168.0.105/secr3t_message_app.php/p?name=norman"Obtención de la credencial final
En las conversaciones obtenemos una nueva ruta y una imagen asociada que contiene información crítica.
curl -O http://192.168.0.105/78074567.pngAnalizamos los metadatos de la imagen.
exiftool 78074567.pngLos metadatos revelan que la imagen procede de un stream de una cámara accesible públicamente. Localizamos dicho stream y, a partir del sitio web asociado, obtenemos la ubicación utilizada como contraseña.
Acceso a la misión
Accedemos a la ruta final e introducimos la ubicación identificada como credencial.
curl http://192.168.0.105/m1si0n.phpCon la contraseña correcta obtenemos el contenido final del reto, completando la máquina.
