DockerLabs DockerLabs

DockerLabs DockerLabs

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.

Si escaneamos solo podemos observar que tenemos el puerto 80.

Al ingresar a la página web podemos observar que es una página que lista las máquinas que podemos ver en Dockerlabs, probamos ingresando cualquier texto, pero no nos devuelve nada, probamos una inyección SQL pero tampoco funciona.

Escaneamos los directorios de la dirección IP y solo podemos observar el de uploads.

Al dirigirnos al directorio en la web observamos que está vacío.

Realizamos un escaneo más profundo y encontramos unos archivos interesantes upload.php y machine.php.

Si vamos a upload.php no se observa nada, es una página en blanco.

En cambio, en la página machine.php podemos observar una página que nos permite subir archivos.

Para probar subiremos un archivo llamado test.php

pero nos manda un mensaje de que el archivo no se subió porque no es .zip

para ello usaremos burpsuite y probaremos con diversas extensiones de PHP, estas podemos ver en hacktricks.

Primero, antes de interceptar el archivo con burpsuite primero habilitamos nuestro proxy desde la página de machine.php.

Activamos la intercepción en burpsuite

subimos el archivo y damos a upload file

una vez le demos clic veremos la intercepción

damos clic derecho y seleccionamos send to intruder

en intruder observamos que está todo resaltado

le damos en clear que está a la derecha

seleccionamos el formato de nuestro archivo después del punto y luego le damos en add.

Al final debería verse de este modo

ahora nos dirigimos a payloads y debemos seleccionar load para cargar la lista de formatos.

Al seleccionar nuestra lista podremos observar que se cargan todos.

Solo damos en Start attack que se encuentra en la parte superior derecha. Cuando termine de ejecutarse podemos observar que el único que tiene un archivo diferente es phar.

Hacemos doble clic sobre phar podemos observar en response que indica que se subió con éxito.

Ahora ya podemos saber en qué formato subir el archivo. Ahora, con una revshell que se puede obtener en pentestmonkey modificamos el archivo y cambiamos su formato a .phar.

Iniciamos nuestro listener.

Deshabilitamos el proxy y subimos el archivo.

Podemos observar que tenemos el archivo.

Ahora si nos dirigimos al directorio /uploads observamos que se subió con éxito.

Hacemos clic en el archivo y podemos observar en nuestro listener que ya tenemos acceso a la máquina.

Ya que estamos dentro realizamos un sudo -l y se observa que tenemos dos binarios que nos permiten ejecutarlos como root.

Buscando GTFOBins podemos observar que el binario cut no nos permite ejecutar como root, solo leer archivos.

Lo mismo ocurre con el binario de grep

Ya que no podemos leer nada por ahora seguiremos buscando. Después de buscar en diversos directorios en el directorio /opt encontramos un archivo llamado nota.txt

abrimos el archivo y vemos una nota que indica que la clave de root está en su directorio.

Esto nos viene bien, ya que podemos leer archivos de root para ello usaremos el binario de cut y podemos observar que ya tenemos el password.

Iniciamos sesión como root y podemos observar que ya tenemos acceso. De esta manera concluiríamos esta máquina.