Home

VulnHub

Symfonos 3

El escaneo con Nmap reporta abiertos los puertos 21, 22 y 80 sym3 nmap.png La web no muestra nada interesante, pero en el código fuente se muestra una pregunta acerca del Underworld. sym3 codigo fuente comentario.png Hacemos Fuzzing con Gobuster para encontrar directorios, entre ellos destaca el /cgi-bin/. Este solo aparece con el uso del parámetro --add-slash sym3 gobuster.png Probando este directorio vemos que con la diferencia de un / nos muestra 2 respuestas distintas; 403 y 404. Por tanto vamos a investigar sobre el mismo. sym3 404.png sym3 403.png Volviendo a hacer Fuzzing sobre este directorio encontramos el Underworld sym3 underworld.png sym3 top en web.png Se muestra la primera línea del comando top de Linux. Por lo que podemos asumir que es una bash ejecutándose por detrás.

top | head -n 1

sym3 top consola.png Intentamos buscar información en caso de ser una bash vulnerable. En este enlace encontramos información sobre esta vulnerabilidad: https://blog.cloudflare.com/inside-shellshock

curl -H "User-Agent: () { :; }; /bin/eject" http://example.com/

Lanzamos el ataque con Curl probando explotar el User-Agent y nos sale un Internal Server Error. Ante esta respuesta podemos intentar probar incluir un echo; delante del comando a ejecutar y funciona sym3 shellshock curl.png En este punto nos podemos enviar una reverse shell para la que no es necesario que esté codificado en formato URL sym3 shell curl.png Vamos a listar los comando o tareas que se estén ejecutando en el sistema en intervalos regulares de tiempo. Para ellos usaremos la herramienta Pspy Esperado un tiempo vemos que hay un fichero ftpclient.py que se ejecuta periódicamente en el directorio /opt sym3 pspy.png Listando los detalles de la ruta del archivo python vemos que solo tienen acceso 2 usuarios: hades y root. Debemos acceder de otra forma sym3 opt permisos directorio.png Como el nombre del fichero nos sugiere que emplea el FTP y es un servicio de trasferencia de datos que no utiliza cifrado, vamos a capturar algunos paquetes que se transmitan Con tcpdump -D primero listamos las interfaces en las que nos podemos poner en escucha y luego capturamos el tráfico de datos a través de la interfaz seleccionada, en este caso la loopback. sym3 tcpdump captura.png Para recibir el archivo en nuestro equipo nos pondremos en escucha con Netcat y todo lo que recibamos por este puerto lo enviaremos a un archivo sym3 envio con nc.png Leemos el fichero con Tshark y encontramos las credenciales de un usuario sym3 credenciales ftp.png Con estas credenciales nos conectamos por SSH Una vez dentro y como este usuario, que era uno de los 2 autorizados a entrar en el directorio /opt, podemos revisar el contenido del script que reveló Pspy; el cual nos da una pista de como escalar privilegios. Ya que no se cuenta con permisos de escritura sobre el script, se puede intentar alterar la librería que importa, cayendo en un Library Hijacking sym3 script cron.png Viendo que ahora pertenecemos al grupo gods, buscamos archivos sobre los que tengamos permisos elevados, y uno de estos puede ser la librería que mencionamos antes. sym3 library hijacking.png Podemos editar la librería añadiendo la siguiente línea para otorgar privilegios a la bash

os.system("chmod u+s /bin/bash")

sym3 library hijacking 2.png Observamos los permisos de la bash constantemente con watch y veremos que cambian sym3 watch.png Se asignan permisos a la bash y ya seremos root. sym3 root 1.png

← Volver al árbol de writeups