
HackSudo Thor に対するブラックボックス方式のペネトレーションテスト : Apache mod_cgi 経由の CVE-2014-6271 Shellshock RCE を、sudo 設定ミスと bash eval インジェクションと連鎖させ、完全な権限昇格を実現。CSRF 対応のカスタムブルートフォースツールと Metasploit RPC 自動化を含む。
ターゲット: HackSudo Thor from VulnHub
目的: rootアクセスを取得し/root/proof.txtを読み取る
環境: pfSense ファイアウォールによってセグメント化された隔離された VirtualBox ラボ
このリポジトリは、Vishal Waghmare によって VulnHub に公開された、意図的に脆弱な仮想マシンである HackSudo Thor に対して実施した部分的なブラックボックス侵入テストの記録です。目標は、外部の攻撃者が隔離された内部システムの侵害を試みるという現実世界の攻撃をシミュレートすることであり、主な目的は root アクセスを取得して /root/proof.txt の内容を読み取ることです。
この評価は、侵入テストの完全なライフサイクルに従います: 受動的偵察、ネットワークディスカバリ、列挙、脆弱性評価、悪用、権限昇格、攻撃後活動、および痕跡の除去です。
使用した主なツールは、ネットワークスキャン用の Nmap、脆弱性評価用の Nessus、そして主要な悪用および攻撃後プラットフォームとしての Metasploit Framework です。John the Ripper、Hashcat、およびオンラインのレインボーテーブルはパスワードクラッキング段階で使用されましたが、使用されていたハッシュアルゴリズムの強度により、すべての試みは最終的に失敗しました。
仮想ラボは完全に VirtualBox で構築され、pfSense 2.7.2 ファイアウォールによって管理される 3 つの異なるセキュリティゾーンを持つ現実的なエンタープライズネットワークをシミュレートするように設計されました。3 つの NAT ネットワークは次のように構成されています: 攻撃者マシンである Kali が存在する公共インターネットをシミュレートする WAN ゾーン、ターゲットマシンをホストする DMZ ゾーン、および範囲外のマシンを含む内部 LAN ゾーンです。``` Internet Zone — NatNetwork (10.0.2.0/24) │ │ Kali Linux 2025.4 [attacker] — 10.0.2.9 │ pfSense WAN interface — 10.0.2.8 │ ├── pfSense Firewall (boundary device) │ ├── DMZ Zone — DMZnat (10.0.4.0/24) │ ├── HackSudo Thor [TARGET] — 10.0.4.3 │ └── DVWA — 10.0.4.4 (out of scope) │ └── LAN Zone — LANnat (10.0.3.0/24) ├── Metasploitable 2 — 10.0.3.5 (out of scope) └── Windows XP Cyberlab — 10.0.3.4 (out of scope)

*pfSenseによって管理される論理ネットワークトポロジのセキュリティゾーン*
WANインターフェースにはDHCPによって`10.0.2.8/24`が割り当てられ、LANインターフェースは`10.0.3.1/24`に、OPT1(DMZ)インターフェースは`10.0.4.1/24`に設定されました。ラボに意図的な設定ミスを導入するため、ポート80はpfSenseのWANインターフェースで意図的に公開されたままにされました。これは一般的な実世界の管理パネル露出をシミュレートし、内部ネットワークへの主要なエントリポイントとして機能しました。
---
## 攻撃チェーンの概要```
[Kali Linux — 10.0.2.9]
│
│ CSRF-aware Python brute force → admin / pfsense
▼
[pfSense webConfigurator — 10.0.2.8:80]
│
│ Firewall rules disabled → DMZ and LAN now reachable
▼
[HackSudo Thor — 10.0.4.3]
│
│ Shellshock RCE (CVE-2014-6271)
│ Apache mod_cgi → /cgi-bin/shell.sh
▼
[Meterpreter shell — www-data]
│
│ sudo -u thor /home/thor/hammer.sh
│ Command injection via eval → bash -i payload
▼
[Interactive shell — thor]
│
│ GTFOBins: sudo service ../../bin/bash
▼
[Root shell]
│
├── /root/proof.txt captured ✅
├── /etc/shadow + /etc/passwd exfiltrated
└── SSH RSA backdoor planted
ターゲット環境に一切コンタクトを取る前に、公開ソースのみから情報を収集した。主な情報源は2つで、HackSudo Thor の公式 VulnHub エントリページと、作者の公開 GitHub プロフィールである。
VulnHub のページから、ターゲットが Linux ベースのシステムで、難易度は easy から medium、目的は proof.txt フラグの発見であることが確認できた。作者の GitHub プロフィールを調査すると、さらなる洞察が得られた。Vishal Waghmare は HackSudo シリーズ全体を通じて、権限昇格を中核的な課題とする Linux の boot-to-root マシンを一貫して設計している。この情報が、アクティブフェーズに進む際の脅威モデルを形作った。HTTP と SSH サービスが最も可能性の高い攻撃対象領域であり、昇格経路は sudo の設定ミス、SUID バイナリの悪用、またはカスタムサービスの悪用のいずれかになると予測された。
このような作者のパターン分析は、実際のエンゲージメントでも重要である。システムがどのように設計された可能性が高いか、その管理者がどのようなカテゴリの弱点を繰り返し作りがちかを理解することで、1パケットも送信する前に方向性が得られる。
| フィールド | 詳細 |
|---|---|
| ターゲット | HackSudo Thor |
| 作者 | Vishal Waghmare (@hacksudo) |
| リリース | 2021年8月3日 |
| 難易度 | Easy to Medium |
| OS | Linux (Debian) |
| 形式 | VirtualBox OVA |
| DHCP | 有効 |
| 予測される攻撃対象領域 | HTTP、SSH、sudo の設定ミスの可能性が高い |
このフェーズでは、環境への直接的なアクティブコンタクトを行った。目的は、稼働中の全ホストを特定し、ネットワーク境界を把握し、プライマリターゲットに焦点を絞る前に攻撃対象領域全体の全体像を構築することである。
まず、WAN サブネット(10.0.2.0/24)に対して軽量な Nmap ピンスイープ(-sn)を実行し、ノイズを最小限に抑えながら稼働中のホストを発見した。3台のホストが特定された。10.0.2.1 と 10.0.2.2 は標準的な VirtualBox インフラストラクチャ用アドレスであり、インフラストラクチャ以外のホストは 10.0.2.8 のみとなった。このマシンが直ちに調査の焦点となった。
10.0.2.8 に対する完全な SYN ステルススキャンでは、結果が一切返ってこなかった。これはエラーではなく、予期された挙動である。エンタープライズ向けファイアウォールは、ポートスキャンに対して応答しないように設計されており、応答を返す代わりにパケットを静かにドロップする。結果が返らないこと自体が、このマシンがトラフィックを積極的にフィルタリングするネットワーク境界デバイスであることの確認となった。
パケットスキャンに頼らずに実際に稼働中のサービスを確認するため、curl を使用して直接 HTTP リクエストを送信した。標準的な Web リクエストはスキャンツールよりもフィルタリングされる可能性がはるかに低いため、この方法を採用した。応答は HTTP/1.1 200 OK、Server: nginx、ページタイトルは pfSense であり、WAN インターフェースからポート 80 で webConfigurator に直接アクセスできることが確認できた。
ログインページを確認した後、次のステップは認証情報の回復を試みることだった。当初はブルートフォースツールとして Hydra を選択したが、この試みは2つの理由で失敗した。1つ目は実際的な問題で、rockyou.txt には1,400万以上のエントリが含まれており、今回の評価の時間枠内では非現実的だった。2つ目は技術的な問題で、より重要だった。pfSense 2.7.2 は CSRF トークン保護を実装しており、ページを読み込むたびに一意の暗号トークンを生成し、認証情報と一緒に送信する必要がある。Hydra の HTTP POST モジュールは静的なリクエストボディを送信するため、試行ごとに新しいトークンを動的に取得する仕組みがなく、パスワードがチェックされる前にすべての送信が拒否された。
この問題を回避するため、ブラウザのログインプロセス全体を再現するカスタム Python スクリプトを作成した。スクリプトはパスワードを試行するたびに新しいセッションを開き、ログインページを読み込み、HTML フォームから現在の CSRF トークンを抽出し、ブラウザとまったく同じように認証情報とともにトークンを送信する。カスタムワードリストは、CeWL を使用して pfSense のログインページをクロールし、関連する用語を抽出して作成し、既知のデフォルト認証情報をカバーするために fasttrack.txt で補完した。
スクリプトは認証情報 admin / pfsense を回復した。これは変更されていないデフォルトのままである。
pfSense の認証情報を回復するカスタム Python スクリプト
ダッシュボードへのアクセスを確立した後、内部トポロジ全体を把握するために pfSense のインターフェース設定を確認した。これにより、WAN からは見えなかった2つのサブネットが明らかになった。LAN(10.0.3.0/24)と DMZ(10.0.4.0/24)である。その後、Web インターフェースから WAN ファイアウォールルールを無効にし、攻撃者の IP から両サブネットへのトラフィックを許可する2つの許可ルールを追加した。
両サブネットに対する Nmap ピンスイープで6台の稼働中ホストが特定された。pfSense のゲートウェイインターフェースに属する 10.0.4.1 と 10.0.3.1 を除外し、残りの4台をさらに列挙した。バージョン検出、デフォルトの NSE スクリプト、OS フィンガープリントを組み合わせたサービス列挙スキャンを、4台すべてに対して同時に実行した。結果をパッシブ偵察の情報と突き合わせることで、トポロジ内のすべてのマシンを特定した。
| IP アドレス | 主要サービス | OS | 特定結果 |
|---|---|---|---|
| 10.0.4.3 | SSH 7.9p1, Apache 2.4.38, FTP | Linux (Debian) | HackSudo Thor |
| 10.0.4.4 | Apache 2.4.29, DVWA v1.10 | Linux (Ubuntu) | DVWA |
| 10.0.3.4 | Microsoft IIS 5.1 | Windows XP/2003 | WinXP Cyberlab |
| 10.0.3.5 | vsftpd 2.3.4, SSH, Apache 2.2.8 | Linux (Ubuntu) | Metasploitable 2 |
ターゲットは 10.0.4.3 であると確認された。以降の活動はすべて、このマシンにのみ焦点を当てた。
ターゲットを特定した後、攻撃対象領域をマッピングし、実行可能な悪用経路を特定するために、サービスのより詳細な分析を実施した。このフェーズでは、Metasploit Framework を主要プラットフォームとして使用した。特に、PostgreSQL バックエンドがスキャン結果をセッション、ホスト、サービス、脆弱性としてすべてデータベースに永続化し、後のフェーズで再スキャンせずに参照できるためである。
開始前に、msfdb init で Metasploit を初期化し、db_status でデータベース接続を確認した。以降の作業はすべて msfconsole 内で実施した。
db_nmap コマンドを使用して 10.0.4.3 に対してフルスキャンを実行した。SYN ステルススキャン、サービスバージョン検出、デフォルトの NSE スクリプト、OS フィンガープリント、および全 65,535 の TCP ポートを対象とした。結果は自動的にデータベースに保存され、hosts と services コマンドで取得した。3つのサービスがオープンであることを確認した。ポート 21 の FTP(Pure-FTPd)、ポート 22 の SSH(OpenSSH 7.9p1)、ポート 80 の HTTP(Apache 2.4.38)である。
その後、各サービスを対象とした Metasploit の補助モジュールを使用して、さらに列挙を実施した。最も注意を払ったのは HTTP サービスである。dir_scanner モジュールと http_crawler モジュールを使用して、Web サーバー上でアクセス可能なすべてのパスとエンドポイントをマッピングした。この中で最も重要な発見は、/cgi-bin/ ディレクトリと shell.sh という名前のスクリプトだった。また、news.php の HTML ソースコードを手動で確認したところ、作者による /cgi-bin/ ディレクトリへの言及を含む隠しコメントが明らかになった。これは CGI ベースの脆弱性を示す意図的なヒントである。FTP サービスについては匿名アクセスが無効であることを確認し、バージョン文字列を CVE の突き合わせ用に記録した。SSH バナーも同じ目的で取得した。