はじめに
このチャレンジでは、Hydra を使用してリモートサーバー上で稼働している隠されたサービスの認証情報をクラックします。このサービスは HTTP 基本認証(HTTP Basic Authentication)によって保護されています。あなたの目標は、隠されたデータにアクセスするためのユーザー名とパスワードの両方を特定することです。
これを達成するために、まず必要なディレクトリを作成し、候補となるユーザー名とパスワードを含むワードリスト(Wordlist)を用意して環境を構築します。次に、Python を使用して基本認証を備えたシンプルな HTTP サーバーを作成します。最後に、作成したワードリストを用いて Hydra で認証情報に対してブルートフォース(総当たり)攻撃を仕掛け、秘密のデータへのアクセス権を取得します。
隠されたサービスのクラッキング
リモートサーバー上で秘密のサービスが稼働しており、HTTP 基本認証で保護されています。Hydra を駆使して、隠されたデータにアクセスするための正しいユーザー名とパスワードを見つけ出すことができますか?
タスク
- 提供されたユーザー名リストとパスワードリストを使用して、
localhostのポート8000で動作している HTTP サービスに対して Hydra でブルートフォース攻撃を実行してください。 - Hydra の出力から正しい認証情報を特定し、パスワードを
found_password.txtファイルに保存してください。
要件
hydraコマンドは/home/labex/project/wordlistsディレクトリ内で実行する必要があります。- ユーザー名リストには
usernames.txt、パスワードリストにはpasswords.txtという名前のファイルを使用してください。 - ターゲットは
localhostのポート8000で動作している HTTP サービスです。 - 攻撃を実行する際は、Hydra の
http-get /モジュールを使用してください。 - 特定した正しいパスワードを
/home/labex/project/found_password.txtに保存してください。
実行例
Hydra の成功時の出力イメージ:
[DATA] attacking http-get://localhost:8000/
[8000][http-get] host: localhost login: [USERNAME] password: [PASSWORD]
1 of 1 target successfully completed, 1 valid password found
[USERNAME] と [PASSWORD] は、Hydra によって実際に発見された認証情報に置き換わります。
ヒント
-sフラグを使用して正しいポート番号を指定することを忘れないでください。- 正しいパスワードは、初期状態の
passwords.txtファイルには含まれていない可能性があります。パスワードをクラックするための別の方法を検討する必要があるかもしれません。 - 一般的なパスワードを含む独自のパスワードリストを作成することを検討してください。
まとめ
このチャレンジの目標は、リモートサーバー上で稼働している隠されたサービスを保護する HTTP 基本認証をクラックすることでした。Hydra を使用することで、サービスへのアクセスに必要なユーザー名とパスワードの両方を発見することができました。
このチャレンジを通じて、ワードリスト用ディレクトリの作成、HTTP サーバーの構築、ユーザー名とパスワードのリスト生成、そして認証を必要とする Python ベースの HTTP サーバーの作成といった、シミュレーション環境のセットアップ方法を学びました。その後、稼働中の HTTP サーバー(ポート 8000)に対して、作成したワードリストを用いて Hydra でブルートフォース攻撃を実行する手順を習得しました。


