file-linesSymfonos 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 Githubarrow-up-right 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:8080arrow-up-right.

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 tratamientoarrow-up-right 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/arrow-up-right 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