🔩

GoBuster入門 - Cyber Security Roadmap

2024/11/28に公開

GoBuster

はじめに

ペネトレーションテストでは、Webアプリケーションが提供する表面的な情報だけでなく、隠されたディレクトリやファイルを探索することがあります(アクセス制御の不備)。この作業を効率的に行うために活用されるツールがGoBusterです。

GoBusterは、ディレクトリバスティング(Directory Busting)やサブドメイン探索、さらにはAmazon S3バケット探索まで、幅広い用途に対応する軽量かつ高速なツールです。

この投稿では、以下の内容を通してGoBusterの基本的な使い方や活用例を学んでいきます。

  • GoBusterとは
  • GoBusterのインストール
  • GoBusterの基本操作
  • 実践的な活用例
  • 注意点

GoBusterとは?

GoBusterは、以下の特徴を持つディレクトリバスティングツールです:

  • 高速性:Golangで実装されており、非常に高速に動作します。
  • 柔軟性:ディレクトリ、サブドメイン、S3バケット、DNSレコードの探索が可能。
  • 簡単なインターフェース:シンプルなコマンドライン操作で扱いやすい。
  • カスタマイズ可能:自分のワードリストやオプションを組み合わせて柔軟に対応。

GoBusterは、隠れた資産や構造を発見し、セキュリティ上の脆弱性を特定するための重要なツールとして、多くのセキュリティテスターに使用されています。

GoBusterのインストール

GoBusterを使うには、以下の手順でセットアップを行います。

1. インストール

Linuxの場合

Linuxでは、以下のコマンドでインストールできます:

sudo apt-get install gobuster

または、GitHubリポジトリから直接インストールする方法もあります:

  1. Go言語をインストール(必要に応じて):

    sudo apt install golang
    
  2. GoBusterをインストール:

    go install github.com/OJ/gobuster/v3@latest
    

Macの場合

Macでは、以下のコマンドでHomebrewを使用してインストールできます:

brew install gobuster

または、GitHubリポジトリから直接インストールする方法もあります:

  1. Go言語をインストール(必要に応じて):

    brew install go
    
  2. GoBusterをインストール:

    go install github.com/OJ/gobuster/v3@latest
    

インストール後、GoBusterの実行ファイルは通常、~/go/bin に配置されます。そのため、以下のコマンドを実行してパスを設定してください:

export PATH=$PATH:~/go/bin

永続化する場合は、.zshrc または .bashrc に追加してください:

echo 'export PATH=$PATH:~/go/bin' >> ~/.zshrc
source ~/.zshrc

2. インストール確認

以下のコマンドを実行し、GoBusterが正常にインストールされたことを確認します:

gobuster --help

ヘルプメッセージが表示されればインストール成功です。

GoBusterの基本操作

GoBusterの使用方法を具体的な例を交えながら解説します。

1. ディレクトリバスティング

ディレクトリバスティングは、Webサーバー上の隠れたディレクトリやファイルを探索する機能です。

基本コマンド

gobuster dir -u http://example.com -w /path/to/wordlist.txt
  • -u:対象のURL。
  • -w:使用するワードリスト。

オプション例

  • -x:ファイル拡張子を指定(例:.php.html)。
  • -t:スレッド数を指定して高速化。
  • -o:結果をファイルに出力。

実践例

gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/common.txt -x php,html -t 20

このコマンドは、20スレッド(最大20個のリクエスト)を使用して.php.htmlファイルを含むディレクトリを探索します。

2. サブドメイン探索

DNSサブドメインを探索し、隠されたサブドメインを発見する機能です。

基本コマンド

gobuster dns -d example.com -w /path/to/subdomains.txt
  • -d:対象のドメイン。
  • -w:使用するサブドメインリスト。

実践例

gobuster dns -d example.com -w /usr/share/wordlists/dns/subdomains-top1million-20000.txt

このコマンドは、example.comのサブドメインを探索します。

3. Amazon S3バケットの探索

GoBusterを使用して、Amazon S3バケットを探索できます。

基本コマンド

gobuster s3 -w /path/to/wordlist.txt
  • -w:使用するワードリスト。

実践例

gobuster s3 -w /usr/share/wordlists/s3-buckets.txt

注意点

GoBusterは以下のようなシナリオで役立ちます。

例1: 隠されたディレクトリの発見

  1. Webアプリケーションが404エラーページを返すディレクトリに隠れた情報があるかを確認。
  2. GoBusterを使用して、ディレクトリを探索。
  3. admin/ディレクトリを発見し、ログインページを特定。

例2: サブドメインの探索

  1. 企業が使用している隠れたサブドメインを探索。
  2. staging.example.comdev.example.comを発見。
  3. これにより、テスト環境や開発環境の脆弱性を発見。

注意点

1. 許可された環境でのみ使用

GoBusterを使用する際は、必ずターゲットの所有者や管理者から許可を得ましょう。無許可での使用は法律違反となる可能性があります。

2. ワードリストの選択

適切なワードリストを使用することで、探索の精度を向上させることができます。特にSecListsなどの有名なリストを活用しましょう。

3. 負荷に注意

高いスレッド数での実行はターゲットサーバーに負荷をかけるため、適切なスレッド数を設定してください。

まとめ

GoBusterは、隠れたディレクトリやファイル、サブドメインを効率よく発見できる強力なツールです。その高速性と柔軟性は、セキュリティテストを行う際に非常に役立ちます。ただし、使用する際は必ず許可を得た環境でのみ行い、倫理的な使用を行う必要があります。GoBusterの活用を通じて、セキュリティの知識とスキルをさらに高めていきます。

Discussion