DockerLabs Vulnvault

DockerLabs Vulnvault

Esta es una máquina de DockerLabs de nivel fácil

·

3 min read

Para poder hacer uso de esta máquina primero debemos descargar los archivos y así desplegarlo con Docker.

Descargamos el archivo de la página dockerlabs.es/#

Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos 2 archivos.

Para desplegar el laboratorio ejecutamos de la siguiente manera, así también podemos ver que nos indica la dirección que tendremos, así también el que hacer cuando terminemos este.

Realizamos el escaneo de la dirección IP y podemos observar que tenemos dos puertos.

Ingresamos al navegador y podemos observar la siguiente página.

La parte que llama nuestra atención es la de subir archivos así que nos dirigimos y podemos observar que podemos subir archivos y no indica alguna restricción.

Realizamos un fuzzing de directorios para observar si encontramos alguna carpeta donde se suban los archivos, pero no observamos nada así, pero sí una carpeta old, y dos archivos upload con diferente extensión.

El archivo upload.html corresponde al que observamos primero, el segundo al abrirlo notamos lo siguiente.

Ya que podemos subir archivos, probaremos subiendo una revershell, esta la podemos obtener de la página de Pentestmonkey.

Luego de subirlo tenemos una notificación, pero no nos indica donde se subió, pero eso no es problema.

Vamos a la página upload.php, pero notamos que no nos indica que subió algún archivo.

Probaremos subiendo un TXT, pero este lo interceptaremos para ver si hay algún error.

Luego de recibir la intercepción con burpsuite lo enviamos por a repeater.

En repeater le damos a send y podemos observar que en response nos indica que tuvo un error al subir el archivo.

Así que podemos ver que no es por ese lado probaremos con la sección de generar reportes.

Probando diferentes maneras de escapar los comandos podemos observar que esto ocurre cuando insertamos ; y luego un comando, es válido en cualquiera de los campos.

Listamos los archivos que hay en el directorio y podemos observar lo siguiente.

Ya que podemos realizar acciones básicas, leeremos el archivo de /etc/passwd

Podemos observar que tenemos solo al usuario samara.

Tratamos de hacer fuerza bruta al usuario, pero no podemos acceder.

Intentamos listar los archivos de samara y podemos observar que podemos ver el contenido de la carpeta de samara

Tratamos de leer ambos archivos, pero no podemos leerlo.

Notamos que tiene la carpeta .ssh y la listamos y podemos observar el id_rsa.

Abrimos el id_rsa y luego lo copiamos.

Creamos el archivo, damos permisos, luego ejecutamos y podemos observar que ingresamos como samara.

Revisamos permisos SUID y las capabilities y podemos observar que no tenemos nada que nos pueda ser útil.

Usaremos pspy64 para ver si tenemos algún archivo que nos pueda ser útil. Copiamos el archivo en nuestro directorio actual e indicamos nuestro servidor en Python.

Descargamos el archivo en la carpeta tmp.

Damos permisos de ejecución y luego ejecutamos.

Revisando los archivos podemos observar que se está ejecutando constantemente el archivo echo.sh.

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

Editamos el archivo y agregamos un comando que le dé permisos suid a bash.

Como se está ejecutando con frecuencia esperamos un momento e ingresamos el comando bash -p y podemos observar que ya somos root.