Poison

Publicado: 13 de Mayo de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Medium
๐ Descripciรณn
Poison es una mรกquina FreeBSD de dificultad media que alberga un sitio web vulnerable a Local File Inclusion (LFI). El camino para comprometer la mรกquina incluye la explotaciรณn de esta vulnerabilidad para obtener credenciales cifradas, seguido del descubrimiento de un servicio VNC ejecutรกndose localmente. La escalada de privilegios implica el aprovechamiento de un archivo secreto ZIP y la creaciรณn de un tรบnel SSH para acceder al servicio VNC ejecutรกndose como root, permitiendo asรญ la obtenciรณn de la flag del sistema.
๐ Metodologรญa
๐ญ Reconocimiento
Ping para verificaciรณn en base a TTL
๐ก Nota: El TTL cercano a 64 sugiere que probablemente sea una mรกquina Linux.
Escaneo de puertos
Enumeraciรณn de servicios
๐ Enumeraciรณn Web
80 HTTP

Encontramos un sitio web que nos permite introducir el nombre de un script para leer su contenido:

Vale la pena analizar si el parรกmetro "file" estรก debidamente sanitizado y no es vulnerable a LFI o Path Traversal.
Al introducir un valor de script que no existe, obtenemos un error, lo cual ya nos hace indicar que puede no estar bien sanitizado, ya que nos perite ademรกs ver la ruta del archivo completa:

Probando el siguiente payload para leer el archivo /etc/passwd confirmamos la vulnerabilidad

Otro de los archivos que tenemos es : http://10.10.10.84/browse.php?file=listfiles.php el cual nos permite ver un archivo interesante llamado pwdbackup.txt

Usando el siguiente payload leemos su contenido: http://10.10.10.84/browse.php?file=pwdbackup.txt
Hay una nota junto a esta contraseรฑa que nos indica que la contraseรฑa se ha codificado 13 veces. A simple vista parece que estรก codificada en base 64, para hacer este proceso iterativo mรกs rรกpido usamos la herramienta https://cyberchef.io/ y repetimos el proceso de decodificacion de base64 13 veces hasta obtener la contraseรฑa:

Tenemos una contraseรฑa pero no tenemos usuarios, pero si nos fijamos en un pequeรฑo detalle de cuando enumeramos el fichero /etc/passwd vemos que habรญa un usuario llamado charix

Probamos a intentar conectarnos vรญa ssh:
Ganamos conexiรณn al host remoto vรญa ssh:

Obtenemos la flag del directorio /home/charix;
๐ Escalada de privilegios
Al enumerar la mรกquina descubrimos un archivo .zip en el directorio /home/charix:
Nos pide una contraseรฑa, como no la tenemos, vamos a descargar el archivo a nuestro host de ataque para ver si podemos usar fuerza bruta:
Usamos la contraseรฑa que obtuvimos anteriormente y se extrae un archivo llamado secret cuyo contenido no es legible:

Seguimos enumerando la mรกquina y listamos los servicios con

Vemos que hay dos servicios que no estรกn espuestos (5801,5901) que corresponden a servicios vnc
Hacemos port forwading de ellos para enumerarlos y ver si hay algรบn posible vector de ataque:
Ahora intentamos conectarnos a alguno de los puertos usando vncviewer y el fichero secret que habรญamos encontrado anteriormente:

Tras enumerar la mรกquina, comprobamos que sudo no estรก instalado en la mรกquina, tampoco hay grupos interesante ni capabilities. Tampoco detectamos una versiรณn vulnerable del kernel, pero al listar procesos vemos algo intesante:
![[Pasted image 20250513131131.png]]
Se estรก ejecutando un script en python llamado tmp.py como root.
Revisamos los permisos del archivo y vemos que tenemos control total sobre el mismo:
Asรญ que reemplazamos su contenido por el de una simple python reverse shell:
Simple python reverse shell https://github.com/orestisfoufris/Reverse-Shell---Python/blob/master/reverseshell.py
A continuaciรณn, esperamos unos segundos y recibimos la reverse shell como root para finalmente obtener la flag:
Last updated