Isengard 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-06-03 03:12 EDT
Nmap scan report for 192.168.5.35
Host is up (0.00073s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.51 ((Debian))
|_http-server-header: Apache/2.4.51 (Debian)
|_http-title: Gray wizard
MAC Address: 08:00:27:AA:BE:9D (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.79 seconds

Veremos que solo hay un puerto 80 por lo que vamos a entrar dentro de dicho puerto, ya que aloja una pagina web, si entramos dentro veremos una pagina con un texto escrito pero que no nos interesa mucho, vamos a realizar un poco de fuzzing a ver que encontramos.

Si nos vamos al main.css en la pagina web y bajamos abajo del todo veremos lo siguiente:

/* btw: in the robots.txt i have to put the url /y0ush4lln0tp4ss */

Vemos un comentario en CSS que parece ser la ruta de un directorio web, por lo que vamos a entrar a ver si existe.

Si inspeccionamos codigo veremos cosas pero ninguna interesante, por lo que vamos a realizar un poco de fuzzing web, a ver que nos encontramos.

Gobuster

Info:

Veremos que hay un directorio llamado /east el cual vamos a realizarle mas fuzzing de nuevo.

Info:

Veremos que nos ha encontrado un archivo .php el cual es bastante interesante, ya que solamente tenemos el puerto 80 y no hay SSH vamos a probar a ver si tuviera algun parametro vulnerable para un RCE.

Escalate user www-data

FFUF

Info:

Veremos que hemos encontrado un parametro en el que se puede ejecutar codigo de forma remota (RCE), por lo que vamos a entrar para verificarlo.

Info:

Vemos que funciona, por lo que vamos a realizar una reverse shell de esta forma:

Antes de enviarlo nos pondremos a la escucha.

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

Vemos que hemos obtenido una shell como el usuario www-data por lo que vamos a sanitizarla.

Sanitización de shell (TTY)

Escalate user sauron

Si listamos la carpeta de /east del directorio web, veremos lo siguiente:

Vemos que hay un archivo interesante llamado ring.zip y oooREADMEooo si leemos el segundo archivo veremos lo siguiente:

Nos esta diciendo que no hay solo un ring por lo que vamos a buscar el segundo.

Info:

Vemos que esta en una ruta super larga, por lo que vamos a irnos a la carpeta /tmp y vamos a moverlo a dicha carpeta de esta forma:

Ahora vamos a descomprimirlo.

Info:

Vemos que nos ha dado un .txt si lo leemos veremos lo siguiente:

Vemos que esta codificado en Base64 por lo que vamos a decodificarlo desde nuestro host:

Info:

Utilizo dos veces de decodificacion ya que esta dos veces codificado, vamos a probar a meter como contraseña del usuario sauron esa palabra.

Metemos como contraseña yXKMw5wpSArL2CLX y veremos que estamos dentro, por lo que leeremos la flag del usuario.

user.txt

Escalate Privileges

Si hacemos sudo -l veremos lo siguiente:

Veremos que podemos ejecutar el binario curl como el usuario root, por lo que podremos realizar esto.

Lo guardamos y haremos lo siguiente:

Info:

Ahora si hacemos sudo -l veremos lo siguiente:

Vemos que ha funcionado, por lo que seremos root de esta forma.

Info:

Por lo que leeremos la flag del usuario root.

root.txt

Last updated