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 el escaneo de la dirección IP y podemos observar que obtenemos 4 puertos habilitados.
Empezamos realizando una revisión en el servicio de samba usando smbmap
y podemos observar que no podemos acceder, ya que necesitamos credenciales.
Ya que necesitamos algún nombre usuario. Así que buscaremos usuarios válidos para smb y podemos usar enum4linux
.
Esperando unos segundos observamos que obtuvimos al usuario dylan
también en los otros escaneos a dylan
, augustus
y bob
.
Los usuarios también podemos validarlos usando rcpclient
y podemos observar que obtuvimos el resultado de dylan
.
Con conocimiento del nombre de usuario buscamos un posible password y podemos observar que no nos detecta nada.
Con ello intentamos probar un ataque de fuerza bruta, ya que el usuario dylan
también nos salió en nuestro escaneo por medio de enum4linux
.
Usando hydra, probamos los usuarios que encontramos. Podemos observar que obtuvimos un password para el usuario augustus
.
augustus:lovely
Usando las credenciales podemos observar que ya estamos dentro.
Realizamos un sudo -l
y podemos observar que para acceder como dylan
se puede ejecutar el binario de java.
Para poder abusar de este lo que debemos crear un archivo .java y con este poder obtener una shell. Para agilizar podemos hacer uso de la página revshell La cual en la opción java tenemos el código el cual solo copiamos.
Antes de todo iniciamos nuestro listener.
Creamos el archivo en el directorio /tmp
, pegamos el código en java, damos permisos de ejecución.
Ejecutamos y podemos observar que se ejecutó con éxito.
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. Como estamos dentro realizamos un sudo -l
, pero no es posible, ya que no tenemos el password del usuario.
Buscamos permisos SUID y observamos que tenemos el binario env
.
Buscamos el binario en la página de GFTOBins y podemos observar como se debe realizar.
Replicamos el comando y ya somos root. De esta manera culminando la máquina de manera exitosa.
Revisando el directorio de dylan
observamos un archivo de KeePass que puede tener información adicional e interesante.
Por ello iniciamos el servicio HTTP con Python y lo descargamos en nuestra máquina.
Una vez descargado tratamos de abrirlo, pero necesitamos un password, probamos con los passwords que poseemos y la clave que abrió el archivo fue lovely
que pertenecía a augustus
.
Revisamos la información que contenía y podemos observar que son las credenciales de bob
.
bob:061fba5bdfc076bb7362616668de87c8
Revisando a que hash corresponde podemos observar que se identificó como uno MD5
.
Creamos un archivo hash y usamos john
para romperlo y podemos observar el password es el que usamos pero con el usuario augustus
.
El camino que puedo imaginar era el intencionado era empezar por la web.
Así que veremos como se podía hacer por este lado.
Si nos dirigíamos a la dirección IP por medio de la web lo que veríamos era una página de login.
Usamos una inyección SQL básica y podemos observar que obtuvimos acceso como dylan
.
Al ingresar solo observamos que nos lleva a la siguiente página.
Capturamos la petición con burp suite y hacemos uso sqlmap
para obtener información.
Luego de unos minutos podemos observar que nos brinda un password para el usuario dylan
.
dylan:KJSDFG789FGSDF78
Probamos las credenciales en el login, estas le pertenecen a ese usuario y observamos el mismo mensaje de bienvenida.
Probamos para conectarnos por ssh, pero no son correctas.
Empleamos smbmap
junto con las credenciales y podemos observar que podemos acceder a shared
.
Buscamos alguna información en ese archivo y encontramos un archivo que se llama augustus.txt
, procedemos a descargarnos el archivo y contiene un hash.
El siguiente paso era identificar el hash, pero notemos que es el mismo hash que obtuvimos del archivo KeePass y se realizaría de esa manera.
Los pasos que continuarían serían ingresar por SSH y continuar como lo hicimos anteriormente.