Al entrar, nos encontramos con una página de presentación de BoardLight.
BoardLight is a cybersecurity consulting firm specializing in providing cutting-edge security solutions to protect your business from cyber threats
Arriba aparecen varios botones que redirigen a páginas PHP:
Home redirige a index.php
About redirige a about.php
What we do redirige a do.php
Contact us redirige a contact.php
El icono de una persona redirige a about.php
Dicho esto, si analizamos cada uno de los archivos con BurpSuite y lo que se manda al solicitarlos, veremos que no hay nada interesante.
En contact.php parece haber un formulario, pero si miramos lo que se manda al servidor al enviarlo, no es ni una solicitud POST, simplemente es algo como GET /contact.php?=&=&=test&=, y no se hace nada con los datos que mandamos. Lo mismo para lo demás.
Primero, lo añadimos a /etc/hosts también, luego entramos. Nos encontramos esto.
Es el panel de login de Dolibarr 17.0.0. Si buscamos más acerca de esto:
Dolibarr es un software integral de gestión empresarial que combina las funciones de un ERP (Planificación de Recursos Empresariales) y un CRM (Gestión de Relaciones con los Clientes). Es de código abierto (open source), gratuito y está diseñado principalmente para pymes, autónomos, emprendedores y asociaciones.
Si buscamos vulnerabilidades de esta versión:
CVE-2023-30253: Dolibarr before 17.0.1 allows remote code execution by an authenticated user via an uppercase manipulation.
Encontramos un PoC disponible. Lo usamos. Además, tras una búsqueda, veo que las credenciales por defecto son o admin:admin o admin:changeme.
Si probamos a iniciar sin credenciales, fallará el login.
1
2
3
4
5
6
www-data@boardlight:~/html/crm.board.htb$ mysql
ERROR 1045(28000): Access denied for user 'www-data'@'localhost'(using password: NO)www-data@boardlight:~/html/crm.board.htb$ mysql -u root -p
Enter password:
ERROR 1698(28000): Access denied for user 'root'@'localhost'
Así que tenemos que encontrar las credenciales que usa Dolibarr para conectarse. Si buscamos en Internet, encontraremos que se almacenan en un único archivo: /etc/dolibarr/conf.php o /var/www/html/[dominio_dolibarr]/htdocs/conf/conf.php.
En este caso, se trata de /var/www/html/crm.board.htb/htdocs/conf/conf.php:
Y tenemos las credenciales dolibarrowner:serverfun2$2023!!.
1
2
3
$ mysql -u "dolibarrowner" -p"serverfun2$2023!!"mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045(28000): Access denied for user 'dolibarrowner'@'localhost'(using password: YES)
Falla, es posible que sea porque normalmente para MySQL “localhost” no es lo mismo que “127.0.0.1”. Probamos con la segunda
1
2
3
www-data@boardlight:~/html/crm.board.htb$ mysql -h 127.0.0.1 -u "dolibarrowner" -p"serverfun2$2023!!"mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045(28000): Access denied for user 'dolibarrowner'@'localhost'(using password: YES)
Tampoco nos deja. De todas formas, podemos simplemente probar a reutilizar la contraseña con el usuario larissa.
1
2
3
www-data@boardlight:~/html/crm.board.htb$ su larissa
Password:
larissa@boardlight:/var/www/html/crm.board.htb$
CVE-2021-3156: Por versión de Sudo 1.8.31 (Baron Samedit)
CVE-2022-0847: Vuln. de kernel (DirtyPipe)
CVE-2022-0995: Vuln. de kernel (watch_queue)
Probamos cualquiera de las 3 de abajo, y no funciona ninguna, así que echamos un ojo al grupo adm al que pertenecemos. Tras una búsqueda, veo que este grupo está para lo siguiente:
In Linux, the adm group is a system group primarily used to grant members read-only access to system log files in the /var/log directory (such as auth.log and syslog) without needing root or sudo privileges.
Es decir, que podemos ver los registros del sistema. Esto puede ser útil si un usuario, como root, ha escrito sus credenciales en algún comando como argumento.
Al parecer, los útiles aquí son syslog y auth.log, pero si miramos dentro, no vemos ninguna contraseña ni nada. En el resto tampoco parece haber nada relevante.
Encontramos varios, pero si buscamos en Internet cuáles son relevantes, veremos que /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys puede permitirnos escalar privilegios fácilmente (CVE-2022-37706).
El binario utiliza de forma interna funciones del sistema para invocar el comando /bin/mount utilizando rutas introducidas por el usuario. Al no desinfectar correctamente los parámetros de entrada, un atacante puede manipular cadenas de texto y usar subcadenas como /dev/.. para inyectar comandos arbitrarios que el sistema ejecutará con los privilegios del dueño del binario (root).
larissa@boardlight:/tmp$ chmod +x exploit.sh
larissa@boardlight:/tmp$ ./exploit.sh
CVE-2022-37706
[*] Trying to find the vulnerable SUID file...
[*] This may take few seconds...
[+] Vulnerable SUID binary found!
[+] Trying to pop a root shell!
[+] Enjoy the root shell :)mount: /dev/../tmp/: can't find in /etc/fstab.
# whoamiroot
OS: Linux | Dificultad: Easy | Conceptos: CVE Público, Unauthenticated SQLi en FreePBX, RCE vía SQLi, Privesc mediante inyección de comandos con incron.