Resolución del CTF HEXTHINK SILENT SHADOW
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.97- -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 SSH (22), HTTP (80), MySQL/MariaDB (3306) y un servicio personalizado en el puerto 9090.
Acceso a base de datos
Desde el servicio web obtenemos el usuario de base de datos ctf_user. Probamos conexión directa y comprobamos que no requiere contraseña.
mysql -h 192.168.0.97 -u ctf_userEnumeramos las tablas y localizamos hashes MD5 de usuarios, que crackeamos para validar credenciales, aunque no aportan acceso directo adicional.
Extracción de información oculta
En una tabla encontramos un mensaje con una imagen adjunta. Descargamos la imagen y analizamos esteganografía.
stegseek imagen.jpgExtraemos un archivo de texto con instrucciones para interactuar con el servicio del puerto 9090.
Interacción con el servicio 9090/tcp
Enviamos la cadena indicada al servicio, obteniendo credenciales SSH válidas.
echo -e "LOGIN whisper\nKEY whisper9090" | nc 192.168.0.97 9090Acceso inicial
Accedemos por SSH con el usuario obtenido y confirmamos acceso al sistema.
Escalada de privilegios
Enumeramos permisos sudo y detectamos ejecución de Python sin contraseña.
sudo -lAbusamos del binario permitido para obtener una shell con privilegios elevados.
sudo /usr/bin/python3 -c "import os;os.system('/bin/bash -p')"Con esto comprometemos completamente el sistema como root.
