3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【TryHackMe攻略】Authentication Enumeration & Brute Force 解説

Last updated at Posted at 2025-09-11

はじめに

本記事では、TryHackMe の学習ルーム「Enumeration & Brute Force」を題材に、
認証列挙(Enumeration)とブルートフォース攻撃の実践方法をまとめます。

「攻め方」を理解することは、防御の観点からも非常に重要です。
本記事は学習目的に限定し、実際の環境での不正利用は禁止されています。


事前準備

  • HTTP/HTTPS の基礎知識(ステータスコード、リクエスト/レスポンス構造)
  • Burp Suite の操作経験
  • Linux コマンドラインの基本

演習環境は TryHackMe 上で自動起動し、 /etc/hosts に以下のように追記して利用します。

MACHINE_IP  enum.thm

1. 認証列挙(Authentication Enumeration)

1.1 列挙とは?

アプリの挙動やエラーメッセージを観察して、

  • 有効ユーザー名
  • パスワードポリシー
  • ロックアウト有無
    といった情報を抜き出す作業です。

1.2 よくある情報源

  • 登録フォーム:「すでに使用されています」=ユーザー存在確認
  • パスワードリセット:「メール送信しました」 vs 「ユーザーが存在しません」
  • 冗長エラー: “ユーザー名が存在しません” と “パスワードが違います” の違い
  • 漏えいデータ再利用:既知のID/PWを使った横展開

2. 冗長エラーを使ったユーザー列挙

2.1 観察

http://enum.thm/labs/verbose_login/ で:

  • 無効メール → Email does not exist
  • 既存メール → Invalid password

2.2 自動化スクリプト

Pythonでメールリストを走査し、有効なアドレスを抽出できます。

python3 script.py usernames_gmail.com.txt

script.py
https://github.com/sayhellotogithub/pythontest/blob/main/project/email/script.py

usernames_gmail.com.txt
https://github.com/nyxgeek/username-lists/blob/master/usernames-top100/usernames_gmail.com.txt

出力例:

[VALID] canderson@gmail.com
[INVALID] XX@gmail.com

3. 脆弱なパスワードリセットロジック

3.1 よくある問題

  • トークンが予測可能(例:3桁の数字)
  • 有効期限が長い/即時失効しない
  • 秘密の質問が単純
  • HTTPS 未使用

3.2 TryHackMe演習:Predictable Tokens

  1. admin@admin.com でリセット要求

  2. URL: reset_password.php?token=123

  3. Burp Intruder に送り、token を総当たり

  4. Crunchで辞書生成

    crunch 3 3 -o otp.txt -t %%% -s 100 -e 200
    
  5. 異なるレスポンス長を検出 → 成功

  6. 新パスワードでログイン → Flag入手 🎉


4. HTTP Basic 認証のブルートフォース

4.1 背景

  • Authorization: Basic base64("user:pass")
  • Base64は暗号ではない → HTTPS 必須
  • 今もルータや機器の管理画面で利用例あり

4.2 TryHackMe演習

  1. http://enum.thm/labs/basic_auth/ にアクセス
  2. 適当な認証情報送信 → リクエストを Burp で捕捉
  3. Base64部をデコードし、Intruderでパスワード部分を差し替え
  4. SecLists の 500-worst-passwords.txt を利用
  5. 成功レスポンス(200)が出れば突破 → Flag入手

5. OSINT活用(下調べの強化)

5.1 Wayback Machine

  • https://archive.org/web/ で過去のスナップショットを調査
  • waybackurls でURLをまとめて列挙

5.2 Google Dorks

  • 管理画面探索:site:example.com inurl:admin
  • ログ漏洩確認:filetype:log "password" site:example.com
  • バックアップ露出:intitle:"index of" "backup" site:example.com

まとめ(学びのポイント)

  • 列挙が8割:情報を得てから攻める
  • 効率化:適切な辞書、レート制限回避、応答差分の検出
  • 防御側の対策
    • エラーメッセージを統一
    • トークンは長くランダムに、かつ短命
    • 2FA / HTTPS 強制 / レート制限

おわりに

本記事では「認証列挙とブルートフォース」の基本から、TryHackMe上での実演までを整理しました。
攻撃者視点で知識を身につけることは、システムを守る上で大切です。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?