> For the complete documentation index, see [llms.txt](https://1gnotus.gitbook.io/ignotus_pwn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://1gnotus.gitbook.io/ignotus_pwn/dockerlabs/writeup/maquina-chocolatefire-openfire-cve-2023-32315-+-force-brute-ssh-+-privesc-subshell-o-perm-suid-bash.md).

# MAQUINA CHOCOLATEFIRE (Openfire CVE-2023-32315 + FORCE BRUTE SSH + PRIVESC SUBSHELL o PERM SUID bash

Realice un reconocimiento o escaneo de puertos básicos para verificar cuales se encuentran abiertos dentro de la maquina.

<figure><img src="/files/X2Lxk6oAHppEiwxHZ3ym" alt=""><figcaption></figcaption></figure>

Ya terminado veo que tengo varios puertos en open por lo que realizo otro reconocimiento a travez de nmap para ver un poco mas detallado los servicios y las versiones de cada puerto.

<figure><img src="/files/nJwe2Crs1Q9utDspqTPQ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/s2biGsDwG8E25pauebyO" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/P5UVVpFZOyylyioXukAC" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/AK3t0ER2YJmCz6Y6d2pl" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/bZfK52K3NIVIFsl6EHwo" alt=""><figcaption></figcaption></figure>

1: Tengo el puerto 22 ssh de versión un poco ambigua pero como no tengo ningun nombre de usuario ni ninguna credencial no voy a poder acceder

2: En el puerto 5222 tengo un servidor openfire de versión 3.10 (<https://www.igniterealtime.org/projects/openfire/>)

3: En el puerto 5269 hay un servicio xmpp (<https://www.genbeta.com/windows/wildfire-la-forma-mas-sencilla-de-montar-un-servidor-jabber>)

4: En el 7070 hay un servicio web al parecer

5: Luego hay un 7777 y le mas interesante es el 9090 donde corre un servicio web.

Al entrar a los puertos 5222,5269,7070 y 7777 no me envían a ninguna lugar, por lo que descarto estos puertos por el momento y ingreso al 9090 donde me tengo algo interesante.

<figure><img src="/files/feRW7AzH0w93Dz2CA3TB" alt=""><figcaption></figcaption></figure>

Estoy ante un panel de sesión y tengo la versión del openfire 4.7.4, al buscar por searchsploit esta no posee ninguna vuln para aprovechar.

Así que paso a buscar info sobre este servicio en google donde me encontré mucha info.

<figure><img src="/files/BGyhDPXwn5udEofZRFlq" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/UE5WE0sT3H74DglAK5r8" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/YNLGgEpsOjKFdk8SrOt4" alt=""><figcaption></figcaption></figure>

La versión de openfire como me indico el informe es versión 3.10 por lo que es vulnerable a un path traversal CVE-2023-32315.

En esta web me indica que este [CVE-2023-32315](https://nvd.nist.gov/vuln/detail/CVE-2023-32315) es una vulnerabilidad de paso de ruta que afecta a la [Abrir](https://www.igniterealtime.org/projects/openfire/) consola de administración, tengo la forma de hacerlo manual o con metasploit por lo que voy a realizarlo manualmente.

Realice un escaneo de directorios en la URL que corre por el puerto 9090 no encontrando nada interesante.

En gihub encontré esta herramienta la cual me crea a través de un exploit un nombre y una contraseña para ingresar al servicio openfire a través del panel de sesión.

<https://github.com/miko550/CVE-2023-32315/blob/main/README.md>

Ya colocado los requerimientos de la herramienta ya tengo el usuario.

<figure><img src="/files/GruxhiATk6J2oljJFsIU" alt=""><figcaption></figcaption></figure>

Ahora con estas credenciales voy al panel de sesión, me logue y realizo un reconocimiento de la web.

<figure><img src="/files/FSLKgU8yY1AMut031f6K" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/jdpfQpzCxSKEKirl7xNk" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/VEmY7WM6E4DvTolI5kq1" alt=""><figcaption></figcaption></figure>

Lo interesante que encontré fueron usuarios y un apartado donde puedo subir archivos (.jar)

Siguiendo los pasos del exploit, en el apartado plugins al ver que puedo subir archivos (.jar) voy a subir el siguiente archivo donde contiene una webshell --> openfire-management-tool-plugin.jar

<figure><img src="/files/KjYLjroqhLRa1PNmbOOf" alt=""><figcaption></figcaption></figure>

Una vez subido me aparece lo siguiente y realizo lo siguiente.

<figure><img src="/files/pDmywXIBcC13fVIwgiVO" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/R1Q0wZC2xPmpIzZkL8c8" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/jof3uFsgG4oaXPkPzoqW" alt=""><figcaption></figcaption></figure>

Una vez que este dentro de managment tool me va a pedir una contraseña la cual según el exploit es "123"

Ya una vez logueado tengo acceso a varios utilidades del sistema.

<figure><img src="/files/mSG9cEr3fIVbI0sXFSqH" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/le3d9esPWFDIfUigMOmO" alt=""><figcaption></figcaption></figure>

Lo mas interesante acá es la parte de system commando donde puedo ejecutar comandos como root tales como whoami, ls, etc.

<figure><img src="/files/8fGtqY7dZftSGlx4Y4p4" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/f9VFOohdnJy4oTpYpssE" alt=""><figcaption></figcaption></figure>

Trate de realizar un RVshell pero no tuve éxito, por lo que al ver el /etc/passwd veo que tengo 2 usuarios "pinguinaso y "chicolatitochingon".

<figure><img src="/files/nhyzqzjgAgiFflmP7Ims" alt=""><figcaption></figcaption></figure>

Ahora lo agrego a la lista de mis usuarios que encontré en la web en la sección USERS y noto que tengo 1 repetido "chocolatitochingon" asi que paso a realizar fuerza bruta con hydra a ver si su contraseña es facil de decifrar.

<figure><img src="/files/unaad84bh5rF2fdJ2pMB" alt=""><figcaption></figcaption></figure>

Ya teniendo esta credencial voy a ingresar a través del ssh y adentrarme ya dentro de la maquina.

Ahora paso a buscar la forma de realizar una escalada de privilegios en este caso voy a mostrar 2 formas de realizar.

Primero ejecuto un sudo -l y me muestra un binario llamado dpkg pero este lo puede ejecutar el usuario pinguinacio (ojo) así que lo paso a buscar en gtfobins.

<figure><img src="/files/rp0dL4Xhr1FBxBabyysZ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/3MGH7zsFlt2gYWOjRpKw" alt=""><figcaption></figcaption></figure>

Ejecuto este binario como pinguinacio y me sale un lista de archivos para ejecutar asi que directamente escribo !/bin/bash y automáticamente cambio de usuario siendo ahora pinguinacio.

<figure><img src="/files/kyGnzeOVJxT5fj1F0Y4h" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/DE34zpFGdeLEyJlmbIu5" alt=""><figcaption></figcaption></figure>

Como soy pinguinacio ejecuto otra vez sudo -l y veo que tengo puedo ejecutar el script.sh que este mismo tiene permisos de root.

<figure><img src="/files/p3rUWSohQNldu5Fix4l3" alt=""><figcaption></figcaption></figure>

El script al ejecutarlo me esta solicitando un imput o una entrada por lo que acá en busca de mucha info encontré que puedo realizar subshell (algo nuevo para mi) con el siguiente comando.

<figure><img src="/files/VPRe2U81Mp5Dy2z6NF4y" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/uYEAEtVwl2lihgNFgnb1" alt=""><figcaption></figcaption></figure>

Al pasarle el comando de la subshell me pivotea el usuario a root :D

La otra forma de escalar privilegios es de la siguiente manera, voy al panel de ejecución de comandos en la web y veo que al realizar un whoami soy root por ende si le doy permisos de SUID a la bash, me logueo y realizo un /bin/bash -p automáticamente paso de ser usuario "chocolatechingon a root"

<figure><img src="/files/IaOTh0MEILB1LrsiOPDk" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/phmWpMWe8i40TNuqQGWm" alt=""><figcaption></figcaption></figure>
