Write-ups

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 -p

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

Extraemos 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.php

Utilizamos 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.png

Analizamos los metadatos de la imagen.

exiftool 78074567.png

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

Con la contraseña correcta obtenemos el contenido final del reto, completando la máquina.


Deja una respuesta

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