
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パケットも送信する前に方向性が得られる。
このフェーズでは、環境への直接的なアクティブコンタクトを行った。目的は、稼働中の全ホストを特定し、ネットワーク境界を把握し、プライマリターゲットに焦点を絞る前に攻撃対象領域全体の全体像を構築することである。
まず、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台すべてに対して同時に実行した。結果をパッシブ偵察の情報と突き合わせることで、トポロジ内のすべてのマシンを特定した。
ターゲットは 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 バナーも同じ目的で取得した。
攻撃対象領域を完全にマッピングした後、2つのアプローチを使用して体系的な脆弱性評価を実施した。自動化された Nessus スキャンと、各サービスに対する手動での攻撃者視点の分析である。
CGI スキャンと Web アプリケーションテストを明示的に有効にしたカスタム Nessus ポリシーを作成し、ポート 21、22、80 を対象とした。これらの設定はデフォルトでは有効になっておらず、ここでは重要だった。これらがないと CGI エンドポイントはテストされなかっただろう。スキャンは約11分間実行され、合計41件の検出結果が返された。対応が必要な検出結果は以下の通りである。
/cgi-bin/shell.sh に関する2つの Shellshock 検出結果が直ちに優先事項となった。CVE-2014-6271 は CVSS スコア 9.8 を備え、認証なしのリモートコード実行を可能にする。スキャン内で最も影響度の高い検出結果である。CVE-2014-6278 は同一脆弱性の不完全な修正を表しており、部分的にパッチ適用済みのシステムでも悪用が可能なままであることを意味する。SSH の Terrapin 脆弱性は、中間者の位置を確保できない限り悪用不可能と評価した。残りの検出結果は、今回のエンゲージメントにおいて意味のある悪用価値はなかった。
悪用に移る前に、Shellshock の検出結果を、/cgi-bin/shell.sh を直接ターゲットにした Nmap の http-shellshock NSE スクリプトを使用して独立に検証した。悪用前の独立検証はメソドロジー上の重要なステップである。脆弱性が実際に存在し、スキャナによる誤検知ではないことを確認でき、また機能しないエクスプロイトの試行に時間を浪費することを避けられる。NSE スクリプトによりエンドポイントが脆弱であることが確認され、CVE-2014-6271 をプライマリ攻撃ベクターとして選択した。
Shellshock が確認されたため、悪用フェーズを開始した。この脆弱性は、CGI スクリプトが呼び出されると Apache mod_cgi が HTTP リクエストヘッダーを環境変数として Bash に渡すために発生する。パッチ未適用の Bash では、環境変数に特別に細工された関数定義が含まれていると、その定義の後に追加された任意のコマンドが即座に実行される。このペイロードを /cgi-bin/shell.sh へのリクエストの User-Agent ヘッダーに注入することで、認証なしでサーバー上で任意のコマンドを実行できた。
Metasploit モジュール exploit/multi/http/apache_mod_cgi_bash_env_exec はこれを完全に自動化する。モジュールは、RHOSTS を 10.0.4.3、TARGETURI を /cgi-bin/shell.sh、ペイロードを linux/x86/meterpreter/reverse_tcp に設定し、リスナーを Kali マシンのポート 4444 に向けて構成した。モジュールを実行すると悪意のあるリクエストが送信され、サーバーがペイロードを実行し、Metasploit が着信接続を受信して www-data としての Meterpreter セッションが確立された。
Shellshock エクスプロイトの実行と、www-data として確立された Meterpreter リバースシェル
www-data から開始した時点では、システムへのアクセス範囲は当初不明だった。当面の優先事項は、現在の立場を理解することだった。アクティブなユーザーが誰か、他にどのようなアカウントが存在するか、そしてより高い権限への道がどこにあるかを把握することである。
Meterpreter セッションを素のシステムシェルに落とし、Python の pty モジュールを使用して疑似端末を生成し、適切な対話型ターミナルを作成した。/etc/passwd を読み、/home/ をリストすることで、システム上に thor というユーザーが存在することを確認した。最初に実行した ls -la /home/thor/ は permission denied を返したため、ディレクトリの権限に関係なく thor が所有するファイルを find / -user thor 2>/dev/null でファイルシステム全体から検索した。これにより /usr/local/sbin/ls に異常なバイナリが発見された。標準のシステムバイナリではない ls という名前のファイルである。その内容から、Thor が所有するカスタムスクリプトであることが判明し、後の調査用に記録した。
現在のユーザーの sudo 権限を確認する標準的なポストエクスプロイテーションの手順として、sudo -l を実行した。その結果、www-data はユーザー thor として /home/thor/hammer.sh をパスワードなしで実行できることが判明した。正当な運用上の理由がない NOPASSWD ルールである。
www-data が thor として hammer.sh をパスワードなしで実行できることを確認する sudo -l
hammer.sh を読み取るための直接アクセスはディレクトリの権限によってブロックされたため、まず sudo -u thor /home/thor/./hammer.sh を実行してその挙動を観察した。スクリプトは2つの対話型プロンプトを表示した。「Secret Key」と「Secret Message」である。最初のプロンプトは入力を挨拶としてエコーバックした。2つ目は入力を処理してから終了した。この2つの挙動の違いは重要だった。両方のプロンプトが単に入力をエコーバックするだけなら、どちらも興味深いものではない。2つ目のプロンプトが応答する前に入力を処理したという事実は、その値をシェルコマンドに渡していることを示唆しており、これは eval ステートメントと一致するパターンであり、十分に文書化されたコマンドインジェクションの攻撃対象領域である。
2回目の実行では、最初のプロンプトに空の入力を渡した。2つ目のプロンプトには、インジェクションペイロード bash -i を渡した。これにより thor としての対話型シェルが起動した。
hammer.sh に注入された bash -i ペイロード
thor として再度 sudo -l を実行した。その結果、root として /usr/bin/cat と service の両方に対して無制限の NOPASSWD アクセスがあることが判明した。最も重要だったのは service のルールである。GTFOBins の sudo service テクニックでは、サービス名の引数としてパストラバーサル文字列を渡すことができる。../../bin/bash を渡すと、service バイナリがトラバーサルを解決して root 権限で /bin/bash を起動する。```bash
sudo service ../../bin/bash
これにより完全なルートシェルが得られました。

*GTFOBinsのsudo serviceパストラバーサルによるルートシェル取得を確認*
## フェーズ 7: ポストエクスプロイテーション
ルート権限の取得が確認された後、ポストエクスプロイテーションフェーズでは、システム環境の把握、機密データの抽出、永続的アクセスの確立という3つの領域に焦点を当てました。
### システム情報とフラグ
まず、カーネルバージョン、OSリリース、ネットワーク設定など、ターゲットの身元を確認し、是正推奨事項の文脈を構築するために、基本的なシステム列挙が実行されました。システムは、`10.0.4.3`上でカーネル4.19.0-17-686-paeを実行しているDebian GNU/Linux 10 (Buster)であることが確認されました。
ルートのホームディレクトリを一覧表示したところ、`proof.txt`と`root.txt`が明らかになりました。このエンゲージメントの明示された目的であるプライマリフラグを取得するため、`proof.txt`ファイルが読み取られました。

*proof.txtの内容 プライマリフラグ取得*
### 資格情報の抽出とパスワードクラッキング
`/etc/shadow`と`/etc/passwd`ファイルは`/tmp`にコピーされ、Meterpreterを介して攻撃者マシンにダウンロードされました。この2つのファイルは、オフラインクラッキングに必要なシステムユーザーアカウントとパスワードハッシュをまとめて提供します。
いくつかのクラッキング手法が試みられました。John the Ripperは両方のハッシュを、コストファクター5,000回のSHA-512cryptとして識別しました。`rockyou.txt`を使用した最初の試みは、数時間実行しても結果が出ず中止されました。SHA-512cryptの計算コストにより、GPUアクセラレーションなしでは網羅的な辞書攻撃は非常に遅くなります。偵察中に収集したインテリジェンスから構築したカスタムのターゲット指定ワードリストによる2回目の試みはすぐに完了しましたが、一致するものはありませんでした。
次に、オンラインのレインボーテーブルサービスであるCrackStationが試されましたが、両エントリに対して認識できないハッシュ形式を返しました。これは予想通りでした。SHA-512cryptは、ハッシュ化する前に各ハッシュに一意のランダムソルトを追加するため、同じパスワードでもアカウントごとに異なるハッシュが生成されます。レインボーテーブルは既知のパスワードのハッシュを事前計算することで機能しますが、可能なソルト値ごとに個別のテーブルが必要になるため、ソルト付きハッシュに対してはこの手法は完全に非現実的です。
最終的な試みにはHashcatが使用され、3つのワードリストが連続して使われました:`fasttrack.txt`(4秒で使い果たし)、カスタムのターゲット指定リスト(一致なしで使い果たし)、`rockyou.txt`の上位100,000エントリ(3分後に失敗)。すべてのパスワードクラッキングの試みは成功しませんでした。高い反復回数のソルト付きSHA-512cryptが使用されていることがその理由です。このアルゴリズムは、まさにこの種のオフライン攻撃に抵抗するために計算コストが高くなるよう設計されています。
### SSHキーの検索
`find`を使用したRSA秘密鍵ファイルとPEM証明書のファイルシステム検索も実行されました。見つかった秘密鍵は、対応する公開鍵を信頼する他のシステムへのアクセスを許可する可能性があり、貴重なラテラルムーブメント(横展開)の機会となります。他のシステムに属する秘密鍵は見つかりませんでした。
### バックドアの展開
永続的アクセスは、RSA公開鍵をルートアカウントの`authorized_keys`ファイルに注入することで実装されました。SSHキー認証は、パスワードに依存せず、`authorized_keys`ファイルが特に監査されない限り検出が困難なため選択されました。Kaliマシンで4096ビットのRSA鍵ペアが生成され、ターゲット上の`/root/.ssh/authorized_keys`に公開鍵が追加され、正しいディレクトリとファイルのパーミッションが設定されました。バックドアが機能することを確認するため、秘密鍵を使用したターゲットへの接続が確立されました。

*秘密鍵認証による永続的ルートアクセスの確認*
### 自動化
ポストエクスプロイテーションチェーン全体を自動化するためのカスタムMetasploit RPC Pythonスクリプト(`thor_full_chain.py`)も開発されました。このスクリプトはライブのMetasploit RPCセッションに接続し、`www-data`シェルの安定化、thorへの権限昇格のためのhammer.shの注入、GTFOBinsによるルートへの権限昇格、フラグの取得、資格情報の抽出、バックドアの展開という一連の流れを、ローカルファイルに保存されるタイムスタンプ付きログとともに処理します。これは、Metasploit RPC APIを使用した攻撃チェーン自動化の能力を示す追加の成果物でした。完全な実装については`scripts/thor_full_chain.py`を参照してください。
## フェーズ 8: 痕跡の隠蔽
最終フェーズでは、ターゲットシステムとKali攻撃者マシンの両方から侵入の証拠を削除しました。ターゲット上では、初期エクスプロイトを引き起こした生のShellshock HTTPリクエストを含んでいたため、Apacheアクセスログが消去すべき最も重要なファイルでした。昇格フェーズ中に使用されたすべてのsudoコマンドを保存していたauthログが消去されました。syslog、バイナリログイン記録(`wtmp`、`btmp`、`lastlog`)、および`root`と`www-data`の両方のbash履歴はすべて上書きされ、空であることが確認されました。
Kaliでは、`workspace -d default`でMetasploitワークスペースが削除され、ダウンロードした資格情報ファイルが削除され、SSH鍵ペアが削除され、bash履歴が消去されました。各ステップは次に進む前に検証されました。
SSHバックドアは意図的に例外とされ、関連する鍵ファイルはこの段階では削除されずターゲット上に保持されました。これは、評価プレゼンテーションでのデモンストレーション目的に必要だったためです。
## 悪用された脆弱性
| 脆弱性 | CVE | CVSS | コンポーネント | 手法 |
|--------------|-----|------|-----------|--------|
| Shellshock RCE | CVE-2014-6271 | 9.8 | Apache mod\_cgi + 未パッチのBash | 悪意のあるUser-Agentヘッダーを使用したMetasploit |
| デフォルト資格情報 | — | — | pfSense webConfigurator | インストール後に変更されていない`admin / pfsense` |
| sudoの誤設定 (www-data) | — | — | `/etc/sudoers` | thorとして実行可能なNOPASSWD `hammer.sh` |
| hammer.shのコマンドインジェクション | — | — | カスタムbashスクリプト | `bash -i`ペイロードによる`eval`インジェクション |
| sudoの誤設定 (thor) | — | — | `/etc/sudoers` | rootとして無制限のNOPASSWD `service` |
---
## 使用したツール
| ツール | 目的 |
|------|---------|
| Nmap | ホスト発見、ポートスキャン、OSフィンガープリンティング、NSE Shellshock検証 |
| Metasploit Framework | データベース連携の列挙、エクスプロイト、Meterpreter、ポストエクスプロイテーション |
| Nessus Essentials | CGIおよびWebアプリケーションスキャンによる構造化された脆弱性評価 |
| Hydra | CSRF保護により失敗した最初のpfSenseブルートフォース試行 |
| CeWL | pfSenseログインページのクロールによるカスタムワードリスト生成 |
| Python 3 + BeautifulSoup | CSRF対応のpfSenseブルートフォーススクリプト |
| pymetasploit3 | 完全な攻撃チェーン自動化のためのMetasploit RPC APIクライアント |
| John the Ripper | オフラインのSHA-512cryptハッシュクラッキング |
| Hashcat | GPUアクセラレーションによるSHA-512cryptクラッキング試行 |
| CrackStation | オンラインのレインボーテーブル検索 |
| GTFOBins | sudo service権限昇格テクニックのリファレンス |
| curl | pfSense WANに対するHTTPサービス検証 |
---
## 推奨事項
**Bashを直ちにパッチ適用してください。** Shellshock脆弱性が存在するのは、このDebian 10システムでBashが一度も更新されていないためです。`apt-get update && apt-get upgrade bash`を実行すると、この脆弱性が除去されます。パッチ適用に加えて、CGIスクリプトが運用上不要である場合は、Apache設定で`/cgi-bin/`ディレクトリを完全に無効化し、Bashのバージョンに関係なく攻撃対象領域を除去する必要があります。
**sudoルールを監査して強化してください。** 2つのNOPASSWD sudoルールが権限昇格チェーン全体を構成していました。どちらのルールにも正当な理由はありません。`/etc/sudoers`ファイルをレビューし、両方のエントリを削除する必要があります。最小権限の原則が今後のsudo設定を支配すべきです。アカウントには、実際に必要な特定のアクセス権のみを付与し、それ以上は付与しないでください。
**シェルスクリプトからevalを削除してください。** `hammer.sh`スクリプトは、検証やサニタイズを一切行わずにユーザー入力を`eval`ステートメントに直接渡していました。これがコマンドインジェクションを可能にした原因です。ユーザー入力を受け付けるシェルスクリプトでは、`eval`の使用はほとんどの場合攻撃対象領域となるため、完全に避けるべきです。入力は、処理が行われる前に厳格な許可リストに対して検証されるべきです。
**pfSenseのデフォルト資格情報を変更し、アクセスを制限してください。** webConfiguratorは、変更されていないデフォルト資格情報`admin / pfsense`を使用してWANインターフェースに公開されていました。デフォルト資格情報はインストール直後に変更する必要があります。webConfiguratorはWANから到達可能であってはならず、アクセスはLANまたは専用の管理インターフェースのみに制限されるべきです。
**集中ログ管理を実装してください。** フェーズ8では、すべてのローカルログが数分以内に消去され、ターゲットシステムに侵入の痕跡が残りませんでした。これは、ターゲットに集中ログ管理がなかったことを示しています。本番環境では、ログをリアルタイムでリモートのSIEMに転送する必要があります。これにより、攻撃者がローカルでログを消去しても、証拠はすでにシステム外に保存されており、改ざんできないことが保証されます。
---
## リポジトリ構造```
hacksudo-thor-pentest/
│
├── README.md
├── report.pdf ← Full penetration testing report
│
├── scripts/
│ ├── pfsense_brute.py ← CSRF-aware pfSense brute force script
│ └── thor_full_chain.py ← Metasploit RPC attack chain automation
│
└── screenshots/
├── network.PNG
│
├── Discovery/
│ └── pfsenselogin.png
│
└── exploit/
├── sheellockexploit.PNG
├── sudol.PNG
├── hammer.bash-i.PNG
├── privilage escaltiontoroot.PNG
├── proof.PNG
└── backdoor.PNG
このペネトレーションテストは、Oracle VirtualBox で構築された自己完結型の隔離された仮想ラボ環境内でのみ実施されました。HackSudo Thor は、セキュリティ教育と演習を明示的な目的として VulnHub に公開された、意図的に脆弱性を持つ CTF マシンです。
| フィールド | 詳細 |
|---|
| ターゲット | HackSudo Thor |
| 作者 | Vishal Waghmare (@hacksudo) |
| リリース | 2021年8月3日 |
| 難易度 | Easy to Medium |
| OS | Linux (Debian) |
| 形式 | VirtualBox OVA |
| DHCP | 有効 |
| 予測される攻撃対象領域 | HTTP、SSH、sudo の設定ミスの可能性が高い |
| 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 |
| 深刻度 | 検出名 | CVE | CVSS v3 |
|---|
| 緊急 | Shellshock RCE | CVE-2014-6271 | 9.8 |
| 緊急 | Shellshock 不完全修正 | CVE-2014-6278 | 8.8 |
| 中 | SSH Terrapin Weakness | CVE-2023-48795 | 5.9 |
| 中 | 閲覧可能な Web ディレクトリ | — | 5.3 |
| 中 | クリックジャッキング / X-Frame-Options なし | CWE-693 | 4.3 |
| 低 | ICMP タイムスタンプの開示 | CVE-1999-0524 | 2.1 |