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:
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 la presencia de un servicio HTTP en el puerto 80 y un servicio SSH en el puerto 22.
Entramos a la página

Como segundo paso, realizamos un escaneo de los posibles directorios de la página web utilizando el siguiente comando:
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
-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.
El análisis con Gobuster revela las siguientes rutas activas:
http://172.17.0.2/.htmlhttp://172.17.0.2/.phphttp://172.17.0.2/index.phphttp://172.17.0.2/scripts.jshttp://172.17.0.2/upload.htmlhttp://172.17.0.2/upload.jshttp://172.17.0.2/upload.phphttp://172.17.0.2/old
🕵️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.

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


🎯 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.


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.

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.

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

📈 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

Entramos al script y vemos que ejecuta bash asi qe aprovechamos nos damos permsiso de bash a nosotros mismos

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.
