Insomnia HackMyVM (Easy - Linux)

Escaneo de puertos

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>

Info:

Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-17 03:29 EDT
Nmap scan report for 192.168.5.21
Host is up (0.00082s latency).

PORT     STATE SERVICE VERSION
8080/tcp open  http    PHP cli server 5.5 or later (PHP 7.3.19-1)
|_http-title: Chat
MAC Address: 08:00:27:F2:3B:E1 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.59 seconds

Vemos que hay un puerto 8080 en el que aloja una pagina web, si entramos dentro simplemente veremos un recuadro en el que nos pide que ingresemos un nombre de usuario, por defecto nos pone el usuario guest por lo que vamos a dejarlo asi.

Dandole a Ok nos llevara a una pagina en la que hay como una especie de chat donde podemos ingresar mensajes, si probamos a realizar un XSS veremos que va mas o menos, pero como que no se llega a ejecutar bien, por lo que vamos a realizar un poco de fuzzing.

Gobuster

Info:

Nos pondra esto, por lo que tendremos que exluir la longitud que en este caso seria 2899.

Info:

Vemos varias cosas interesantes, vamos a probar a entrar en el archivo llamado administration.php a ver que vemos.

Info:

Vemos que parece que tenemos que estar logueados vamos a ver el otro archivo.

Info:

Tampoco vemos nada interesante, vamos a volver al archivo administration.php y probaremos a realizar fuzzing en busca de algun parametro de PHP que pueda ser vulnerable.

FFUF

Info:

Vemos que hemos encontrado un parametro llamado logfile, vamos a probarlo en dicho archivo a ver que vemos.

Info:

No veremos gran cosa, pero si vamos al chat de la pagina veremos esto:

Vemos que se esta contemplando lo que hemos enviado, vamos a probar a enviar un comando directamente en vez de intentar leer un archivo.

Pero veremos que no se ejecuta, vamos a probar a poner primero chat.txt que sabemos que existe para ver si ese es el problema y que se piense que estamos logueados y despues concatenarlo con un comando.

Info:

Ahora si volvemos al chat de la pagina principal, veremos esto:

Vemos que ha funcionado de forma correcta, por lo que vamos a generar una reverse shell de esta forma:

Antes de enviarlo vamos a ponernos a la escucha.

Ahora si enviamos el comando de la URL y volvemos a donde tenemos la escucha veremos lo siguiente:

Vemos que hemos obtenido acceso de forma correcta, por lo que tendremos que sanitizar la shell.

Sanitización de shell (TTY)

Escalate user julia

Si hacemos sudo -l veremos lo siguiente:

Veremos que podemos ejecutar el script start.sh como el usuario julia por lo que vamos a ver que hace dicho script.

Si listamos los permisos que tiene veremos lo siguiente:

Info:

Vemos que podemos modificar el script a nuestro gusto, por lo que haremos lo siguiente.

Lo guardamos y le ponemos permisos de ejecuccion.

Ahora si lo ejecutamos de esta forma:

Info:

Vemos que ya seremos dicho usuario por lo que leeremos la flag del usuario.

user.txt

Escalate Privileges

Despues de buscar un rato si leemos los crontabs que hay en el sistema, veremos lo siguiente:

Info:

Vemos que el usuario root esta ejecutando un crontab respecto al archivo llamado check.sh vamos a investigar dicho archivo.

Si listamos los permisos del archivo veremos esto:

Info:

Vemos que tambien lo podremos escribir, por lo que vamos abrir el archivo con nano y añadiremos una liena mas que sera la siguiente:

Lo guardamos y solo tendremos que esperar un ratito a que se ejecute como root, despues de un rato si listamos la bash para ver si funciono, veremos esto.

Info:

Vemos que efectivamente a funcionado, por lo que haremos esto:

Info:

Y con esto ya seremos el usuario root por lo que leeremos la flag de root.

root.txt

Last updated