VulnVault

🚀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:

📌 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
gobuster dir -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://172.17.0.2 -x txt,sql,py,js,php,html

El análisis con Gobuster revela las siguientes rutas activas:


🕵️Análisis de vulnerabilidades

Intenté subir un archivo malicioso que contiene una reverse shell, pero no funcionó. Al analizar la respuesta del sistema, observamos indicios de una posible vulnerabilidad de inyección de comandos.
Pasted image 20241223161342.png
Al generar el reporte, si añadimos ; ls como parte de los parámetros, el sistema ejecuta el comando, confirmando la vulnerabilidad de inyección de comandos
Pasted image 20241223161157.png
Pasted image 20241223161456.png


🎯 Explotación

Por lo tanto, podemos intentar enumerar los usuarios existentes en el sistema. Sin embargo, si no logramos obtener la contraseña mediante fuerza bruta, será necesario explorar otras vías de ataque.
Pasted image 20241223161650.png

Pasted image 20241223162151.png
Aprovechamos la vulnerabilidad para acceder al directorio personal de 'samara' utilizando el comando ; ls -l /home/samara. Esto nos permite listar los archivos y verificar el contenido del directorio.
Pasted image 20241223163204.png
No tenemos permisos para leer los archivos .txt en el directorio, pero encontramos una clave privada en el archivo /home/samara/.ssh/id_rsa. Utilizamos el comando ; cat /home/samara/.ssh/id_rsa para visualizar su contenido. Luego, copiamos la clave privada para utilizarla posteriormente.
Pasted image 20241223164500.png
Después de obtener la clave privada, intentamos conectarnos al sistema como el usuario samara utilizando el siguiente comando:

sudo ssh samara@172.17.0.2 -i id_rsa

Ya estamos en la máquina como samara

Pasted image 20241223170051.png


📈 Escalada de privilegios

Ejecutamos el comando sudo -l para verificar qué podemos ejecutar como administrador sin necesidad de proporcionar una contraseña

sudo -l

No deja ejecutar el comando sudo -l, asi que vemos que procesos se esta ejecutando con el comando

ps -faux

Vemos que ejecuta un script como root
Pasted image 20241223170919.png
Entramos al script y vemos que ejecuta bash asi qe aprovechamos nos damos permsiso de bash a nosotros mismos

Pasted image 20241223171502.png
Accedemos al script y observamos que ejecuta Bash. Aprovechamos esta funcionalidad para otorgarnos permisos de Bash a nosotros mismos, facilitando un mayor control sobre el sistema.

¡Ya somos root!

Pasted image 20241223171520.png