miguel@home:~$

Vulnvault - DockerLabs

OS Dificultad Creator
Linux Fácil d1se0

Reconocimiento

Comenzamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo.

sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG ports 
  • -p-: Escanea todos los puertos (1-65535).
  • --open: Solo muestra los puertos abiertos.
  • -sS: Realiza un escaneo SYN, que es rápido y discreto.
  • --min-rate=5000: Envía al menos 5000 paquetes por segundo, acelerando el escaneo.
  • -n: No realiza resolución DNS.
  • -Pn: No realiza ping previo para determinar si el host está activo.
  • -vvv: Muestra resultados detallados y en tiempo real.

image

Durante el escaneo, descubrimos que los siguientes puertos están activos:

  • 80 (HTTP)
  • 22 (SSH) A continuación, evaluamos si los puertos abiertos presentan alguna vulnerabilidad, además de obtener más información sobre los servicios asociados a esos puertos.
    nmap -p22,80 -sCV 172.17.0.2 -oG targeted
    

    image

Exploración Web

Al inspeccionar el puerto 80, encontramos una página con dos secciones: un formulario y una opción de carga de archivos. Ejecutamos Gobuster para identificar posibles directorios ocultos en el sitio web:

gobuster dir -u http://172.17.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img
  • gobuster dir - Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.
  • -u http://172.17.0.2/ Especifica la URL objetivo que deseas escanear en busca de directorios.
  • -w Especifica que diccionario queremos usar
  • -x Para indicar que tipo de extension queremos que nos encuentre

image

Apartado de subida de archivos.

Reverse Shell

Intentamos cargar una reverse shell PHP (shell.php) mediante la función de subida, que indica estar configurada para bloquear archivos inseguros.

image

Usamos una reverse shell de Reverseshell de Pentest Monkey para intentar obtener acceso. Aunque la subida se completa, no encontramos el archivo en /uploads.php.

image

Al analizar la respuesta en Burp Suite, vemos un mensaje de error en la subida del archivo:

image

Mirando con burpsuite podemos observar que en response nos indica que tuvo un error al subir el archivo.

image

Apartado de formulario.

Observamos que cualquier texto ingresado en el formulario es reflejado por el servidor. Un archivo script.js intenta bloquear ciertos comandos en las entradas del formulario.

image

image

Al probar diferentes métodos para escapar la restricción de comandos, descubrimos que insertar un comando tras el carácter ; permite ejecutarlo en el servidor.

image

Por lo que podemos hacer muchas cosas , desde generar una reverseshell a enumerar usuario y hacer fuerza bruta o obtener el rsa de algun usuario.

Obtener id_rsa

Utilizamos este método para acceder al archivo id_rsa de un usuario llamado samara.

image

Guardamos la clave privada id_rsa en nuestro sistema para usarla más adelante.

image

Lo guardamos en nuestra maquina.

image

Intrusion Samara

Utilizando ssh, accedemos al sistema como samara:

ssh -i id_rsa samara@172.17.0.2

Ya estamos dentro

image

Examinamos permisos SUID , sin encontrar opciones útiles:

find / -perm -4000 2>/dev/null

Descargamos pspy64 en el sistema para monitorear procesos en ejecución y detectar posibles vulnerabilidades.

image

Descargamos el archivo en la carpeta /tmp.

image

Después de ejecutar pspy64, descubrimos que el script echo.sh se ejecuta recurrentemente.

image

Vamos al directorio y podemos observar que este script generaba el archivo que vimos en el directorio de samara.

image

Nos dirigimos al directorio de echo.sh, donde verificamos que podemos modificar el script. Insertamos un comando para obtener una shell de root.

image

Para escalar privilegios, ejecutamos:

bash -p

image

Ya somos root.