Shikata Ga Nai

Private? There is no such things.

LAB: ユーザー名列挙とパスワードブルートフォース攻撃の実践

Hello there, ('ω')ノ

🧪 ラボ概要

このラボでは、ログインページのエラーメッセージの違いを利用して有効なユーザー名を特定し、その後、パスワードのブルートフォース攻撃を行ってアカウントにアクセスする方法を学びます。


🛠️ 手順解説

1. 無効な資格情報でログイン試行

  • Burp Suiteを起動し、ブラウザでラボのログインページにアクセスします。
  • 任意の無効なユーザー名とパスワード(例:invalidUser / invalidPass)を入力してログインを試みます。

2. Burp Suiteでリクエストをインターセプト

  • Burp Suiteの「Proxy」タブで「Intercept」をオンにします。
  • ログイン試行時のPOST /loginリクエストをキャプチャし、「HTTP history」から該当リクエストを右クリックして「Send to Intruder」を選択します。

3. ユーザー名の列挙

  • 「Intruder」タブで、usernameパラメータが§で囲まれていることを確認します。
  • 攻撃タイプを「Sniper」に設定します。
  • 「Payloads」タブで、提供された候補ユーザー名リストをペーストします。
  • 「Start attack」をクリックして攻撃を開始します。

4. 有効なユーザー名の特定

  • 攻撃結果の「Length」列を確認し、他と異なる長さのレスポンスを探します。
  • 該当するレスポンスを選択し、エラーメッセージが「Invalid username」ではなく「Incorrect password」となっていることを確認します。
  • このユーザー名が有効である可能性が高いです。

5. パスワードのブルートフォース攻撃

  • 「Intruder」タブで既存のペイロードポジションをクリアし、passwordパラメータを§で囲みます。
  • 「Payloads」タブで、提供された候補パスワードリストをペーストします。
  • 「Start attack」をクリックして攻撃を開始します。

6. 正しいパスワードの特定

  • 攻撃結果の「Status」列を確認し、他と異なるステータスコード(例:302)のレスポンスを探します。
  • 該当するパスワードが正しい可能性が高いです。

7. アカウントへのログイン

  • 特定した有効なユーザー名とパスワードを使用してログインし、アカウントページにアクセスします。

📝 ポイントとコツ

  • エラーメッセージの違いを利用してユーザー名の存在を推測します。
  • レスポンスの長さやステータスコードの違いも有効な手がかりとなります。
  • ブルートフォース攻撃時には、レスポンスの違いを注意深く観察し、成功の兆候を見逃さないようにします。

🔒 防御策のポイント

  • ログイン時のエラーメッセージは、**一律に「ユーザー名またはパスワードが無効です」**と表示し、詳細を明かさないようにします。
  • レスポンスの長さやステータスコードを統一し、攻撃者に手がかりを与えないようにします。
  • アカウントロックやCAPTCHAなどの対策を導入し、ブルートフォース攻撃を防ぎます。

Best regards, (^^ゞ