DockerLabs Apolos

Gm4tsyGm4tsy
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 puertos de la dirección IP y podemos observar que solo tenemos el puerto 80.

Ingresamos la dirección IP en el navegador y podemos observar que se trata de una página sencilla donde el único botón de la navbar que es funcional es cuenta.

Al seleccionar cuenta podemos observar que se trata de un login.

Probamos algunas credenciales básicas, pero no obtenemos algún resultado, También probamos inyecciones básicas, pero no notamos nada raro para ir por este lado. Notemos que podemos registrarnos y eso haremos.

Tratamos de crear el usuario test y notamos que ya existe, probamos con admin y ocurre lo mismo.

Capturamos la petición y cambiamos el método de respuesta.

Luego de ello lo tendríamos de esta manera.

Ya que tenemos conocimiento del usuario admin probaremos realizando un ataque de fuerza bruta.

hydra -l admin -P /usr/share/wordlists/rockyou.txt 172.17.0.2 http-post-form "/login.php:username=^USER^&password=^PASS^:Nombre de usuario o contraseña incorrectos."

Creamos una cuenta

gm4tsy:gm4tsy123

luego de ingresar podemos observar lo siguiente.

Realizamos pruebas de inyección en el buscador y notamos que los errores se ven a partir de la sexta columna.

Listamos las columnas para identificarlo y podemos observar lo siguiente.

' union select 1,2,3,4,5-- -

Buscando el nombre de la database y observamos que se llama apple_store.

Probamos con otras inyecciones, pero nos da error, ya que no podemos observar las tablas y demás. Por ello usaremos SQLMAP. Luego de loguearnos copiamos la cookie.

PHPSESSID=oo80op9kom5ld85k18ekf1ivqn

Enviamos la petición.

Luego de unos minutos observamos varas credenciales. Las que nos importan son luisillo, admin y test que son cuentas que no creamos nosotros.

Nos logueamos como test y no observamos nada interesante

Para luisillo y admin usaremos john para ver si obtenemos el password de alguno.

Ejecutamos john y podemos observar que tenemos 2 passwords.

luisillo:mundodecaramelo
admin:0844575632

Ingresamos como luisillo, pero no tenemos nada extra.

Ingresamos como admin y podemos observar que tenemos un botón extra.

Al dirigirnos al panel observamos una lista de opciones y la única que sirve es configuracion.

Ingresamos a configuracion y podemos observar que es una página para subir archivos y probamos con un archivo.

Luego de subirlo vamos al directorio de uploads que observamos durante el escaneo de subdirectorio y podemos ver que sí está el archivo.

Subiremos una revershell en PHP.

Observamos que nos indica que no se puede.

Probaremos que formatos nos permite subir para ello subiremos el archivo y lo capturaremos con burpsuite. Luego de ello lo enviamos al intruder y seleccionamos la extensión.

En payloads cargamos una lista de extensiones de PHP y le damos en start attack.

Podemos ver que subió con todos las extensiones.

Antes de abrir alguno de los archivos iniciamos nuestro listener.

Hacemos clic en el archivo.

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.

Realizamos un sudo -l, pero no podemos acceder porque necesitamos un password. Intentamos ingresar a las carpetas de usuario, pero no podemos, vimos el usuario luisillo_o y probamos con los passwords de Luisillo que encontramos, pero no son correctas.

Buscamos permisos SUID y capabilities, pero no obtenemos nada.

Ya que no tenemos más pistas, probaremos haciendo un ataque de fuerza bruta para el usuario que encontramos. Primero copiaremos los archivo rockyou y suForce.

Comenzamos nuestro servidor en PHP.

Descargamos ambos archivos.

Ejecutamos el archivo, pero no identifico ningún password.

Probamos con el archivo original de rockyou y podemos observar que luego de unos minutos encontró el password.

luisillo_o:19831983

Ingresamos las credenciales y ya estamos dentro.

Realizamos un sudo -l, pero no tenemos permisos.

Empezamos la búsqueda de permisos SUID y capabilities, pero no tenemos nada, si realizamos un id podemos ver que pertenecemos al grupo shadow.

Leemos el archivo y podemos observar las credenciales de root.

Copiamos el contenido y creamos un archivo con el hash.

Usamos john y podemos observar que el password era rainbow2.

Ingresamos las credenciales y podemos observar que somos root.

0
Subscribe to my newsletter

Read articles from Gm4tsy directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Gm4tsy
Gm4tsy