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/ping

el 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