DockerLabs Inj3ct0rs

DockerLabs Inj3ct0rs

Esta es una máquina de DockerLabs de nivel medio

·

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.

Realizamos un escaneo de la dirección IP y podemos observar que identifico 2 puertos.

Si ingresamos a la página podemos observar que se trata de una página de ctf.

Realizamos un escaneo de subdirectorios y archivos y encontramos 3.

Vamos a login.php e intentamos una inyección básica.

Podemos observar que accedimos como admin, si hacemos clic en alguno de los desafíos no nos lleva a ninguna parte.

Revisamos la estructura del URL observamos que estamos dentro del directorio content_pages_hidden/.

Realizamos un listado de subdirectorios con esta ubicación adicional y podemos observar que tenemos más archivos.

Tratamos de acceder a db.php, pero no es posible, nos redirige al login.

Como pudimos emplear una inyección básica, volvemos a iniciar sesión, pero esta vez lo capturamos con burpsuite.

Guardamos en un archivo, en este caso lo hacemos en request.txt. Usamos sqlmap para obtener las credenciales y podemos observar que nos dio las credenciales de varios usuarios.

Probando diversos usuarios, pero con ninguno podemos acceder al db.php sin ser redirigidos a un error. Así que optamos por usar no_mirar_en_este_directorio como directorio y podemos observar que nos lleva a un archivo .zip.

Tratamos de descomprimir el archivo y podemos observar que tiene password. Por ello optamos a extraer el hash para luego usar john para romper el mismo y como podemos observar obtener el password con éxito.

Descomprimimos el archivo y observamos que contenía unas credenciales.

ralf:supersecurepassword

Ingresamos las credenciales y logramos entrar como ralf.

Realizamos un listado y observamos un archivo TXT el cual parece contener un password.

382af2fb41eb95b1d6c6358b6c55ffce

Llevamos a una página para identificar el hash y es un MD5

Tratamos de obtener la clave, pero no es posible.

Realizamos un sudo -l y podemos observar que podemos hacer uso de busybox

Buscando en GTFOBins podemos observar que tenemos una manera de escalar como ese usuario.

Primero debemos revisar si tenemos permisos para escribir en el directorio nothing, pero no tenemos los permisos para crear archivos. Pero debemos notar que solo indica nothing/* así que podemos abusar de este escapando y yendo a un directorio que nos convenga. Creamos un archivo sh, ejecutamos el comando y podemos observar que somos capa.

sudo -u capa /usr/local/bin/busybox  /nothing/../tmp/nothing/sh

Realizamos un sudo -l y podemos observar que podemos usar cat.

Si bien este usuario no nos permite elevar privilegios podemos leer archivos.

Con ello en mente tratamos de leer el /etc/shadow, pero no me fue posible romper el hash así que opte por leer el archivo id_rsa. Luego de ejecutar el comando y ver el resultado lo copiamos.

Una vez copiado el archivo, en nuestra máquina atacante creamos un archivo id_rsa y damos permisos 600.

Establecemos conexión por SSH y podemos observar que sí podemos acceder como root. De esta manera culminando esta máquina.