forbidden 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.95 ( https://nmap.org ) at 2025-04-22 14:45 EDT
Nmap scan report for 192.168.28.21
Host is up (0.00084s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:192.168.28.19
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 3
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxrwxrwx 2 0 0 4096 Oct 09 2020 www [NSE: writeable]
80/tcp open http nginx 1.14.2
|_http-server-header: nginx/1.14.2
|_http-title: Site doesn't have a title (text/html).
MAC Address: 08:00:27:56:3D:D9 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Service Info: OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.66 secondsVemos varias cosas interesantes entre ellas un servidor FTP vamos a probar si el FTP se puede entrar de forma anonima.
FTP
Si dejamos la contraseña en blanco veremos que si nos deja, por lo que si listamos el directorio veremos lo siguiente:
Vemos una carpeta llamada www y si entramos dentro veremos lo siguiente:
Info:
Vemos lo que parece el contenido de la pagina del puerto 80 por lo que podemos probar a subir una webshell.php, pero antes vamos a ver que pone la note.txt:
Info:
Con esto confirmamos que si se esta compariendo la pagina web mediante el FTP por lo que vamos a crear el siguiente webshell.php:
webshell.php
Ahora vamos a subirlo mediante FTP dentro de la carpeta www de la siguiente forma:
Echo esto vamos a probar a entrar a la pagina y dentro de la misma acceder al archivo directamente de esta forma:
Pero nos descargara el archivo, por lo que vamos a probar a utilizar bypasses de las extensiones de PHP.
URL = Bypasses Extensiones

Vamos a probar .php5 a ver si funciona y no nos descarga el archivo.
Ahora dentro del FTP vamos a pasarnos dicho archivo:
Ahora si probamos a meternos con el archivo subido nuevo veremos lo siguiente:
Info:
Escalate user www-data
Veremos que con esto funciona por lo que vamos a probar a crearnos una reverse shell de esta forma:
Antes nos pondremos a la escucha:
Ahora si enviamos el payload de la pagina web, y volvemos a la escucha veremos lo siguiente:
Veremos que nos funciono por lo que vamos a sanitizar la shell.
Sanitizacion de shell (TTY)
Escalate user marta
Como recordamos antes nos comento en la pagina web en la note.txt que hay una imagen coulta con extension .jpg en el servidor, por lo que vamos a buscarlo de la siguiente forma:
Info:
Veremos que la imagen esta en dicha ruta, vamos a exportar la imagen a nuestro host abriendo un servidor de python3:
Ahora en el host ejecutaremos lo siguiente:
Una vez que lo tengamos descargado, vamos a ver que aparece en la imagen:

Veremos que no hay nada interesante, pero vamos a intentar ver si dentro de esta imagen oculta algun archivo o algo por el estilo:
stegcracker/steghide
No pedira una contraseña, pero si la dejamos vacia, no nos va a extraer nada, por lo que vamos a realizar fuerza bruta con una herramienta llamada stegcracker:
Info:
Veremos que la contraseña es portugal por lo que vamos a probarla enviando el mismo comando del principio:
Metemos como contraseña portugal y veremos que si nos ha extraido un .zip.
Info:
Si intentamos descomprimir el archivo ZIP veremos que nos pide una contraseña, por lo que vamos a probar a crackearla.
Info:
Veremos que ha funcionado por lo que vamos a descomprimirlo metiendo dicha contraseña:
Metemos como contraseña secret y veremos que nos descomprime un archivo llamado pass.txt si lo leemos veremos lo siguiente:
Vamos a descodificar el codigo morse:
Por lo que vemos nos indica que la contraseña de algun usuario es vGffXfDreF453!, pero si probamos con todos los usuarios, veremos que no hay suerte, por mas que probemos no coincidiran, pero si probamos a meter como contraseña en el usuario marta el nombre de la imagen:
Metemos como contraseña TOPSECRETIMAGE y veremos que si funciona.
Info:
Escalate user markos
Si vamos a la /home del usuario marta veremos un archivo .c que contiene lo siguiente:
Vemos que si se ejecuta ese binario de forma compilada obtendriamos una bash como el usuario markos que pertenece al ID 1001, pero si vemos hay un archivo compilado llamado .forbidden el cual tiene toda la pinta de que es ese .c por lo que vamos a probar a ejecutarlo.
Ahora si vemos que usuarios somos:
Info:
Vemos que ha funcionado y ya seremos dicho usuario, por lo que leeremos la flag del usuario:
user.txt
Escalate user peter
Con el usuario markos veremos que no podemos hacer gran cosa, si volvemos al usuario marta y hacemos sudo -l veremos lo siguiente:
Veremos que podemos ejecutar el binario join como el usuario root, por lo que haremos lo siguiente:
Info:
Vemos que funciona, por lo que vamos a intentar crackear todas las contraseñas a ver cual conseguimos:
hash.shadow
Solamente vamos a utilizar el de root y el de peter ya que los demas nos dan igual.
Info:
Vemos que la contraseña de peter nos lo ha descubierto, por lo que vamos a escalar a dicho usuario:
Metemos como contraseña boomer y veremos que estamos dentro.
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Veremos que podemos ejecutar el binario setarch como el usuario root, por lo que haremos lo siguiente:
Info:
Con esto veremos que ya seremos root por lo que leeremos la flag del usuario root:
root.txt
Last updated