Resolución del CTF: LavaShop
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.100- -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 un servicio no estándar en el puerto 1337. El servicio HTTP redirige a un virtual host específico.
Enumeración Web
Accedemos al servicio HTTP y detectamos navegación mediante parámetros GET que cargan contenido dinámico. Enumeramos rutas y archivos relevantes para identificar puntos de entrada.
wfuzz --hc 404,403 -w /usr/share/seclists/Discovery/Web-Content/combined_directories.txt http://lavashop.thl/FUZZLocalizamos el directorio pages y enumeramos su contenido, identificando un archivo vulnerable que procesa parámetros adicionales.
wfuzz --hc 404,403 -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt "http://lavashop.thl/pages/products.php?FUZZ=test"Detectamos el parámetro file con comportamiento diferencial, lo que indica una inclusión de archivos locales.
Explotación
Local File Inclusion (LFI)
Explotamos el parámetro file mediante path traversal para leer archivos del sistema y enumerar usuarios locales.
curl "http://lavashop.thl/pages/products.php?file=../../../../etc/passwd"Obtenemos usuarios con shell interactiva, destacando debian y Rodri.
Acceso Inicial
Fuerza bruta SSH
Con el usuario identificado, realizamos fuerza bruta contra el servicio SSH para obtener credenciales válidas.
hydra -l debian -P /usr/share/wordlists/rockyou.txt ssh://192.168.0.100Accedemos al sistema mediante SSH con las credenciales obtenidas.
Post-Explotación
Enumeración de variables de entorno
Enumeramos variables de entorno en busca de información sensible expuesta por una mala configuración.
envIdentificamos una credencial de root expuesta en texto plano.
Escalada de Privilegios
Utilizamos la credencial obtenida para cambiar al usuario root.
su rootCon privilegios elevados, accedemos a los directorios protegidos y obtenemos las flags correspondientes.
cat /home/Rodri/user.txtcat /root/root.txt