0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gobuster と Hydra の使い方メモ(実験・検証向け)

Posted at

概要

  • Gobuster:HTTPディレクトリ/ファイル列挙、DNSサブドメイン列挙、vhost列挙などを行うツール。辞書に基づく高速な列挙が特徴。
  • Hydra:ネットワークサービス(SSH/FTP/HTTP-Form/SMB 等)に対する認証試行(パスワード推測)ツール。並列化に優れ、各種プロトコルをサポート。

どちらも 攻撃用にも防御用にも使える道具。用途は「脆弱性確認」「ペネトレーションテスト」「CTF」などに限定する。


共通事前準備

  1. 実験用ターゲット(自分が所有するVM/CTF/テスト環境)を用意する。
  2. 適切なワードリストを用意する(短時間で試す小さめのリスト → 学習用。実運用でのパスワード検査はポリシーに従い実施)。
  3. root/管理者での実行は不要。必要最低限の権限で行う。
  4. ログ出力・結果保存は都度行う(再現性のため)。

Gobuster(概要と主な使い方)

インストール(例)

# Debian/Ubuntu 系(snap or apt で入る環境もある)
sudo apt update
sudo apt install gobuster

# Go 経由の最新版
go install github.com/OJ/gobuster/v3@latest

主なモード

  • dir:HTTP のパス(/admin, /wp-login.php 等)列挙
  • vhost:仮想ホスト名列挙(Host ヘッダ指定で vhost を試す)
  • dns:サブドメイン列挙(DNS ブラウトフォース)

典型的なコマンド(必ず自分の環境で

  • ディレクトリ列挙(HTTP)
gobuster dir -u http://127.0.0.1:8080 -w /path/to/wordlist.txt -t 40 -o gobuster_dir.txt
  • vhost 列挙(Host ヘッダで仮想ホストを試す)
gobuster vhost -u http://127.0.0.1 -w /path/to/vhosts.txt -t 30 -o gobuster_vhost.txt
  • DNS サブドメイン列挙
gobuster dns -d example.local -w /path/to/subs.txt -o gobuster_dns.txt

主要オプション(覚えておく)

  • -u, --url:ターゲット URL またはホスト
  • -w, --wordlist:ワードリスト
  • -t, --threads:並列スレッド数(高すぎるとターゲットに負荷をかける)
  • -s, --statuscodes:表示する HTTP ステータスコードを指定(例 -s 200,301,302,403
  • -x:拡張子リスト(例:.php,.html,.bak を同時試行)
  • -o:出力ファイル

実務的な注意点(ゴブスタ)

  • 静的コンテンツの 200 応答以外でも意味がある(403, 301 の扱いを確認)。
  • ターゲットの WAF/IPS により誤検出や遮断されるため、遅延やスレッド数を調整する。
  • 大規模ワードリストは時間と帯域を消費する。段階的に試す。
  • 結果はログと突合し、運用側のアクセスログ(404/403)と重ねて確認する。

Hydra(概要と主な使い方)

インストール(例)

sudo apt update
sudo apt install hydra
# or for GUI/最新機能はソースやパッケージを確認

使い方の考え方

  • Hydra は「認証プロセス」に大量の試行を投げるツール。
  • 目的は「認証バイパスの可能性確認」「脆弱なパスワードの検出」。
  • 実運用で実行する場合は必ず運用ポリシーに従い、事前合意を得る
  • ロックアウトや監視アラートを誘発しやすいため、テスト手順は事前に周知すること。

典型的なコマンド構成(変数化して記載)

hydra -L <userlist> -P <passlist> -t <threads> -s <port> <target> <service_module> -o hydra_results.txt

例:実験環境の SSH(自分のローカルVM限定

hydra -l testuser -P /path/to/small_password_list.txt -t 4 ssh://127.0.0.1 -o hydra_ssh.txt

例:HTTP-Form(フォーム認証の検証、フォームのパラメータは環境依存)

hydra -L users.txt -P passwords.txt 127.0.0.1 http-form-post "/login:username=^USER^&password=^PASS^:F=incorrect" -o hydra_httpform.txt

(フォーム文字列は環境に合わせて正しく指定する必要がある)

主要オプション(覚えておく)

  • -L:ユーザリスト(1行1ユーザ)
  • -l:単一ユーザ指定
  • -P:パスワードリスト
  • -t:並列スレッド数
  • -s:ポート
  • -o:出力ファイル
  • -V:成功試行を標準出力に逐次表示(verbose)
  • <service_module>ssh, ftp, http-get, http-form-post, ms-sql, smb など

実務的注意点(ハイドラ)

  • 認証試行はターゲットにより アカウントロック/IPブロック/監査アラート を発生させる。
  • テストはステージング環境や合意済みの時間帯に限定する。
  • 大きなワードリストや高スレッドは即時遮断/ログ増加を招く。
  • ログ(/var/log/auth.log など)と連携して検証する。
  • 可能なら「アカウントロックの閾値」を一時的に緩めるなど運用側で協力を得る。

出力の扱いとレポーティング

  • Gobuster:-o で保存したリストを整形(存在したパス・ステータス・リダイレクト先など)。
  • Hydra:成功した認証の記録は機密扱い。発見した場合は速やかに運用担当へ報告し、再現手順、影響範囲、推奨対応を添える。
  • レポートに含める項目例:実行日時、実行コマンド(変数化)、対象、使用ワードリスト、成功結果のスクリーンショット/ログ範囲、推奨対処。

防御観点(検出・軽減)

  • 監査ログの時刻相関で大量の 401/403/404 を検出するルールを作る。
  • レートリミットとアカウントロック(ただし DoS のリスクとトレードオフ)。
  • WAF/IPS での不審なヘッダ/パターンによる検出。
  • 強力なパスワードポリシーと多要素認証(MFA)の導入。
  • 公開ディレクトリの最小化(不要ファイルは除去、インデックス無効化)。

倫理・運用ルール(必須)

  1. 実行前に書面/メール等の許可を得ること(スコープ、時間帯、影響範囲を明示)。
  2. テストは監視担当と連携し、即時停止手順を共有すること。
  3. 発見事項は秘匿扱いとし、脆弱性対応フローに従うこと。
  4. 公開サービスや第三者所有のシステムに対する無断実行は犯罪になる。

参考(学習用)

  • 自分のローカルに DVWA / Juice Shop / intentionally vulnerable VMs を立てて練習する。
  • Kali Linux に Gobuster / Hydra が同梱されている場合がある(ただし利用は許可環境で)。
  • Wordlists は SecLists 等を参考にする(学習用に短縮して使うこと)。

最後に(短く)

  • Gobuster:発見(列挙)ツール。HTTP パス・サブドメインなどの把握に使う。
  • Hydra:認証試行ツール。弱い認証の検出に使うが使用には高い倫理的配慮が必要。
  • 常に「許可」「ログ」「運用連携」を前提に実行すること。
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?