Bizness
Last updated
Last updated
Escanear puertos con nmap.
Se realizó un escaneo inicial que revelo 3 puertos abiertos: 22, 80 y 443.
El puerto 22 tiene un servicio SSH.
Los puertos 80 y 443 tienen un servicio nginx.
Agregar la IP de la máquina y el host bizness.htb
a /etc/hosts
.
En el puerto 80 se está ejecutando una aplicación web, pero no se puede acceder a ella mediante la IP, es necesario agregar el host para poder acceder mediante bizness.htb
.
Búsqueda de directorios con dirsearch.
El resultado de la búsqueda mostró el directorio /control/login
.
Al recorrerlo redirigió a una página de inicio de sesión de Apache OFBiz (versión v18.12).
Investigación de las vulnerabilidades.
Se investigó sobre las vulnerabilidades de Apache OFBiz.
Se encontró lo siguiente: CVE-2023–51467.
CVE-2023–51467: Análisis.
Según el informe de análisis de Qualys, apache OFBiz es un conjunto de soluciones empresariales, basado en Java, que permite una gran versatilidad a la hora de mejorar el diseño.
La vulnerabilidad se encuentra en el inicio de sesión. Apache eliminó el código XML RPC de la aplicación para parchear la vulnerabilidad.
Existen dos formas de explotar la vulnerabilidad.
Cuando el nombre de usuario y la contraseña se pasan a la función "iniciar sesión", devuelve requirePasswordChange, pero PasswordChange deberá estar establecido en "Y".
Ahora la solicitud se envía a la función "checkLogin", que se omite porque nombre de usuario == nulo y contraseña == nulo.
Esto hace que la función checkLogin sea exitosa, lo que permite omitir la autenticación.
El nombre de usuario y la contraseña no se mantuvieron vacíos y el parámetro requirePasswordChange=Y se incluye en el URL.
La función de inicio de sesión devolvió "requirePasswordChange" gracias a "requirePasswordChange=Y". Este valor se pasa a la función checkLogin.
El "error".equals(login(request, response)) se mantuvo como falso debido al valor de retorno proporcionado por la función de inicio de sesión, que era requirePasswordChange.
El parámetro requirePasswordChange=Y permite omitir la autenticación.
CVE-2023–51467: Explotación.
Se utilizó el exploit proporcionado por el siguiente repositorio:
Consiste en un exploit hecho en python, que envía una solicitud con un nombre de usuario y contraseña vacíos junto con el parámetro requirePasswordChange establecido en 'Y'.
En una terminal, se escuchó con ncat en el puerto 1234.
En la otra terminal, se ejecutó el exploit.
Se consiguió una reverse Shell, lo que permitió entrar al equipo objetivo y revisar sus archivos.
Dentro del directorio /home/ofbiz
, se encontró la bandera del usuario.
Escalar privilegios.
Se enumeraron los archivos en el directorio.
Se encontró un archivo en: /opt/ofbiz/framework/resources/templates/AdminUserLoginData.xml
. Este archivo posee la contraseña de los templates que por el momento, no es de mayor interés.
Dentro del archivo c54d0.dat, se encontró un hash para descubrir la contraseña. Estaba dentro del siguiente directorio: /opt/ofbiz/runtime/data/derby/ofbiz/seg0
.
Dentro del archivo, se puede visualizar el hash encriptado SHA256.
Para desencriptar el hash, se utilizó un script de python.
Es necesario descargar el archivo rockyou.txt. Este se encuentra haciendo una búsqueda sencilla en Google.
Con la contraseña desencriptada, se procede a elevar los permisos e ingresar como usuario root.
Se extrae la bandera del archivo root.txt.