Symfonos 2
Sobre esta maquina: VulnHub
Sistema Operativo: Linux
Skills Usados:
FTP Exploitation - Abusing SITE CPFR/CPTO
Abusing FTP & SMB - Obtaining files from the machine
SSH Connection via Proxychains
SSH + Local Port Forwarding in order to access internal LibreNMS
Playing with socat to define connection flow
LibreNMS Exploitation (User Pivoting) [RCE]
Abusing sudoers privilege (mysql) [Privilege Escalation]
Metodologia:
Symfonos 2 es una red interna que pertenece a Symfonos 1 asi que para poder comprender como llegamos hasta este target te reocmiendo ver symfonos 1 donde realizamos un escaneo de redes y pudimos observar que podriamos lograr acceso a symfonos 2 pivoteando.
Buscamos aumentar privilegios para poder acceder a symfonos 2 asi que empezamos, listando archivos SUID que permitan ejecutar código con permisos root.
find \-perm -4000 2/dev/null
# ./usr/lib/eject/dmcrypt-get-device
# ./usr/lib/dbus-1.0/dbus-daemon-launch-helper
# ./usr/lib/openssh/ssh-keysign
# ./usr/bin/passwd
# ./usr/bin/gpasswd
# ./usr/bin/newgrp
# ./usr/bin/chsh
# ./usr/bin/chfn
# ./opt/statuscheck
# ./bin/mount
# ./bin/umount
# ./bin/bash
# ./bin/su
# ./bin/pingel archivo /opt/statuscheck. Vamos a inspeccionarlo
Path Hijacking
Creamos un archivo en la carpeta /tmp llamado curl, hacemos que ejecute el siguiente comando para darle privilegios SUID a /bin/bash.
Añadimos /tmp dentro de la variable $PATH asignándole prioridad.
Y ejecutamos el archivo statuscheck. Posteriormente, llamamos a /bin/bash con -p para lanzarlo con modo privilegiado.
Nos descargamos Chisel desde su Github con wget, y lo compartimos con Symfonos 1.
Y lo compartimos con Symfonos 1.
Arrancamos chisel en modo servidor en nuestra máquina atacante.
Y desde Symfonos 1, entablamos la comunicación con Socks5.
Por último, en nuestra máquina atacante, debemos configurar Proxychains para que sea capaz de tunelizar las peticiones a través de Symfonos 1.
Enumeración de Symfonos 2
Ejecutamos nmap como al inicio, wrappeando la comunicación a través de Proxychains.
⚠️Recuerda que con Proxychains, no se puede utilizar la opción -sS porque entra en conflicto con el túnel. Hay que cambiar el parámetro a -sT para utilizar peticiones TCP normales.
Se concatenan además unos comandos de limpieza porque Proxychains imprime más contenido del deseado. Los puertos abiertos son los siguientes: 21, 22, 80, 139, 445.
Afinamos la búsqueda.
Si nos comunicamos con Samba, vemos de nuevo que el acceso anónimo está permitido y nos encontramos un archivo log.txt que parece interesante.
Si lo examinamos, nos encontramos con lo siguiente (se han omitido cosas que no eran interesantes).
Existe una copia del shadow en /var/backups/shadow.bak.
Existe el usuario aeolus
El path /home/aeolus/share es visible de forma anónima por samba. Probablemente, ese sea el directorio donde estamos encontrando el archivo, este que acabamos de leer.
A través de smb no se puede hacer nada más.
Continuamos por FTP en el puerto 21.
ProFTPD 1.3.5 exploit
Searchsploit nos arroja información sobre esta versión de ftp. Parece ser vulnerable
Podemos copiar y pegar archivos de forma remota. Teniendo en cuenta que por SMB somos capaces de leer el directorio /home/aeolus/share, podemos aprovechar esto para copiar ahí el backup del archivo /etc/shadow.
Ya estamos listos para descargarnos el archivo con smb.
Vamos a probar con un poco de fuerza bruta, a ver si somos capaces de descifrar los hashes.
JohnTheRipper Shadow
Parece que tenemos la contraseña del usuario aeolus, sergioteamo.
Estamos dentro de la máquina Symfonos 2.
Symfonos 2: Escalado
Con el comando ss, buscamos conexiones de red expuestas.
Parece ser que hay algo expuesto en el puerto 8080 del localhost de la máquina Symfonos 2. Para poder acceder a ella, necesitamos redireccionar en nuestro equipo dicho puerto mediante un túnel SSH.
Con el siguiente comando vamos a ello.
Una vez hecho esto, abrimos firefox y accedemos a http://localhost:8080.

Dado que tenemos las credenciales del usuario aeolus, vamos a ver si podemos reutilizarlas en esta ventana de login.

Una vez dentro, buscamos alguna vulnerabilidad en este CMS.
El script genera un RCE por SNMP cuando crea un dispositivo. Con ayuda de él y poniéndonos en escucha desde Symfonos 1.
Pero vamos a complicarlo un poco más. Vamos a entablar una reverse shell hacia mi máquina atacante. Para ello, haremos uso de Socat.
Desde Symfonos 1, ejecutamos el siguiente comando.
De esta manera, lo que haremos desde Symfonos 1, es que todo el tráfico que le llegue por el puerto 4646, lo redirigirá automáticamente al host 192.168.1.138, que es el de mi máquina atacante.
Adecuamos la TTY con un tratamiento para poder utilizar el Ctrl+C, Ctrl+L y las flechas durante la sesión de la shell.
Aún queda ganar privilegios de root. Buscamos si tenemos permisos en la configuración de sudoers.
Cuando encontramos este tipo de permisos, conviene visitar https://gtfobins.github.io/ a ver si, de alguna manera, podemos acceder a la consola de root directamente.
En este caso, con el siguiente comando ejecutándolo como sudo, parece suficiente.
Last updated