May HackMyVM (Intermediate - Linux)
Escaneo de puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>nmap -sCV -p<PORTS> <IP>Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-04-22 03:17 EDT
Nmap scan report for 192.168.1.160
Host is up (0.00046s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 94:fb:c0:76:f2:b3:ff:4a:ed:61:6a:ae:a1:ca:86:c1 (RSA)
| 256 d0:29:99:fd:69:68:21:e3:b4:a6:48:e4:4e:a1:7e:f4 (ECDSA)
|_ 256 2a:1b:1f:3d:ab:0a:00:5b:43:75:89:67:8a:98:21:df (ED25519)
80/tcp open http nginx 1.14.2
|_http-title: Did not follow redirect to http://may.hmv
|_http-server-header: nginx/1.14.2
10000/tcp open http MiniServ 1.979 (Webmin httpd)
|_http-title: 200 — Document follows
MAC Address: 08:00:27:A3:6D:B5 (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 36.48 secondsVeremos varias cosas interesantes, entre ellas el puerto 80 que aloja una pagina web, pero si entramos veremos que se esta resolviendo con un dominio llamado may.hmv por lo que tendremos que añadirlo a nuestro archivo hosts.
Lo guardamos y volveremos a cargar la pagina para que nos cargue el contenido.
Veremos lo siguiente cuando entremos:
Ya vemos 3 posibles usuarios, los cuales nos vamos a guardar en un archivo por si nos fuera necesario en un futuro utilizarlo:
users.txt
Pero no veremos nada interesante en la pagina, como tenemos un dominio, vamos a realizar un poco de fuzzing a ver si encontramos algun subdominio de la siguiente forma:¡
FFUF
Info:
Veremos que hay 2 subdominios vamos a ver que contiene cada unos de ellos, pero antes vamos añadirlo a nuestro archivo hosts.
Lo guardamos y ahora vamos a probar a entrar a ver que encontramos en los 2, pero si entramos en cualquiera de los 2 veremos lo siguiente:

Vamos a probar a realizar fuerza bruta con un script en bash de la siguiente forma:
Si nosotros capturamos la peticion con BurpSuite veremos lo siguiente:
Vemos que se esta utilizando una Cookie por lo que vamos a crear el script de esta forma:
forceWeb.sh
Vamos a probar con el usuario marie si quisieramos con otro cambiamos el campo del user por el otro, pero en mi caso probare primero con el usuario marie, ahora lo ejecutaremos de la siguiente forma:
Info:
Veremos que ha funcionado y hemos encontrado la contraseña de dicho usuario, ahora si entramos con dichas credenciales veremos lo siguiente:
Escalate user marie
No veremos nada interesante, pero si entramos en la que pone ssh.may.hmv y metemos las mismas credenciales veremos que no son validas, por lo que vamos a capturar la peticion a ver que esta pasando y veremos esto:
Veremos que no se esta estableciendo la Cookie por lo que con la peticion interceptada, vamos a añadir dicho campo de la Cookie para que nos podamos loguear quedando de esta forma:
Ahora si le damos a enviar veremos lo siguiente:
Vemos que ha funcionado de forma correcta, por lo que vamos a probar a meternos por SSH con el usuario marie.
Antes crearemos el archivo para meter nuestro id_rsa:
Lo guardamos y le establecemos los permisos necesarios para que funcione.
Ahora si nos conectaremos por SSH mediante la clave PEM de la siguiente forma:
Info:
Y con esto estaremos dentro de la maquina con dicho usuario, por lo que leeremos la flag del usuario.
user.txt
Escalate Privielges
Si hacemos sudo -l veremos lo siguiente:
Pero no podremos hacer gran cosa con esto, por lo que vamos a seguir buscando.
Vamos a buscar archivos en los cuales pueda escribir omitiendo los que ya vienen por defecto, a ver que encontramos:
Info:
Por lo que vemos, vemos un archivo muy interesante que es miniserv.conf el cual podemos escribir al parecer, asi que vamos a ver que contiene.
Info:
Vemos que se esta ejecutando en el puerto 1000 que es el que vimos antes, es un login, tambien vemos esto:
Vemos que cuando da un error en el login ejecuta el archivo failed.pl que esta en perl y se estaria ejecutando como root por lo que vamos aprovechar eso y vamos a generar un archivo en perl para realizar una reverse shell como root, pero antes tendremos que modificar dicha linea y redirigir esa ejeccucion a otro sitio en este caso en nuestra home dejando la linea de esta forma:
Ahora si vamos a generar el .pl:
Una vez generado el archivo vamos abrir un servidor de python3 para pasarnos el archivo a nuestra home del usuario, donde se va a ejecutar el .pl.
Ahora en la maquina victima ejeuctaremos lo siguiente:
Le damos permisos de ejecuccion:
Echo esto entraremos ya en la siguiente URL:
Antes de meter las credenciales mal, vamos a ponernos a la escucha:
Ahora si metemos por ejemplo como credenciales:
No pondra que hemos fallado las credenciales, pero si volvemos a donde tenemos la escucha veremos lo siguiente:
Veremos que ha funcionado, por lo que leeremos la flag de root.
root.txt
Last updated