Para poder hacer uso de esta máquina primero debemos descargar el archivo y así poder desplegar el laboratorio.
Descargamos el archivo de la página https://thehackerslabs.com/
Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos un archivo.
Para desplegar el laboratorio usaremos nuestro hipervisor favorito, así también al ejecutarlo podemos ver que nos indica la dirección IP que tiene la máquina.
Realizamos un ping a la máquina para comprobar la conexión y observamos que sí la tenemos.
Iniciamos un escaneo de puertos y podemos observar varios puertos habilitados.
Volvemos a realizar un escaneo más detallado de los puertos identificados, pero no vemos mucha información que nos sea de utilidad.
Ingresamos la dirección IP en el navegador y tenemos una página sencilla, pero donde observamos un enlace a un login.
Al ingresar en el botón de admin nos puede un password que no tenemos, podemos observar que la versión es pluck 4.7.13
.
Realizamos un escaneo de subdirectorios para ver si encontramos algo interesante y podemos ver uno llamado api
.
Al dirigirnos a ese directorio tenemos un zip
con un nombre llamativo.
Descargamos el archivo, tratamos de descomprimirlo, pero necesitamos una credencial. Por ello usamos zip2john
para extraer el hash y con john
obtenemos el password.
babybaby
Descomprimimos el archivo y dentro de este tenemos un password.
ElAbueloDeLaAnitta
Usamos esa credencial para acceder.
Luego de unos segundos nos redirige al panel de administración.
Revisando la página tenemos la opción de subir archivos.
Probaremos subiendo una Shell en PHP esta la podemos obtener en pentestmonkey
antes debemos iniciar nuestro listener.
Subimos el archivo, pero podemos observar que nos cambia la extensión.
Antes de probar el listado de variaciones u otras extensiones probaremos usando un .phar
, ya que es de los más comunes para evitar estas restricciones.
Probamos con esa extensión y tenemos éxito.
Si vamos al directorio files
podemos ver que están nuestros archivos.
Haciendo clic en el archivo y luego dirigiéndonos al listener observamos que ya tenemos conexión.
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. Ingresamos el comando sudo -l
, pero no contamos con este. Revisando los archivos temporales podemos ver que en opt
tenemos un ZIP
.
Tratamos de extraer el contenido del archivo, pero necesitamos un password. Por ello revisamos si poseemos python
y es así. Entonces iniciamos un servidor con Python.
En nuestra máquina atacante, descargamos el archivo.
Usamos zip2john
para extraer el hash y con el uso de john
tenemos el password.
cassandra
Descomprimimos el archivo y podemos ver un texto.
Lo llevamos a la página de CyberChef donde luego de pasarlo de base 58 tenemos un texto claro.
Quepasaolvidona
Tratamos de ingresar, pero el password no es correcto. Probando con minúscula al comienzo no funciona, por error copiamos sin la letra q y pudimos entrar.
sarxixa:uepasaolvidona
Revisando en permisos SUID y capabilities no tenemos nada.
Probamos con un sudo -l
, no podemos ejecutarlo con este usuario. Listando los grupos a los que pertenecemos podemos ver que tenemos Docker.
Buscando en la página de GTFOBins tenemos en la opción de shell
la manera de escalar para obtener una root shell
.
Ejecutamos el comando y podemos observar que ya somos root
. De esta manera culminando esta máquina.