Webサイトの隠れたページを探せ!セキュリティ診断ツール「Gobuster」入門

タグ GitHubオープンソースOJgobuster

このソフトで何ができる?

Gobusterは、Webサイトに存在する隠れたディレクトリやファイルを高速に探し出すセキュリティ診断ツールです。サブドメインの列挙やクラウドストレージの設定ミス検出など、複数の調査モードを備えています。Go言語で書かれているため動作が非常に速く、セキュリティ専門家のペネトレーションテスト(侵入テスト)現場で広く使われています。

どんな人におすすめ?

Gobusterが役立つ場面はこんなシーンです:

  • セキュリティエンジニア・ペネトレーションテスター:自社や依頼先のWebサーバーに不要なファイルや管理画面が公開されていないか確認したい
  • Webシステム管理者:本番環境に上げてしまった設定ファイルやバックアップファイルがないかセルフチェックしたい
  • CTF(セキュリティ競技)参加者:隠しページやフラグファイルを探す問題に取り組んでいる
  • セキュリティ学習者:ペネトレーションテストの基礎を実際のツールで体験したい

重要な注意点:Gobusterは必ず自分が管理する環境または正式に許可を得たシステムに対してのみ使用してください。無断で他者のサーバーに対して実行することは不正アクセス禁止法に違反します。

インストール方法

Go言語を使ったインストール(推奨)

Go 1.24以上がインストールされている環境であれば、以下の1行で導入できます。

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

インストール後、パスが通っているか確認しましょう。

gobuster --help

Usage: から始まるヘルプが表示されれば成功です。

Dockerを使う方法(Goが入っていない場合)

# イメージを取得
docker pull ghcr.io/oj/gobuster:latest

# 動作確認
docker run --rm ghcr.io/oj/gobuster:latest --help

ソースコードからビルドする方法

git clone https://github.com/OJ/gobuster.git
cd gobuster
go mod tidy
go build

インストールがうまくいかない場合

# Goのバージョンを確認(1.24以上が必要)
go version

# GOPATHとGOBINの設定を確認
echo $GOPATH
echo $GOBIN

# $GOPATH/bin にパスを通す(bashの場合)
export PATH=$PATH:$(go env GOPATH)/bin

基本的な使い方

Gobusterにはいくつかの動作モードがあります。それぞれの使い方を見てみましょう。

ディレクトリ・ファイルの探索(dirモード)

最もよく使われるモードです。Webサーバーに対してWordlist(単語リスト)をもとに総当たりでアクセスし、実在するパスを見つけます。

gobuster dir -u https://example.com -w /path/to/wordlist.txt

実行例のイメージ:

===============================================================
Gobuster v3.x
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     https://example.com
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /path/to/wordlist.txt
[+] Status codes:            200,204,301,302,307,401,403
===============================================================
/admin                (Status: 301) [Size: 0] [--> /admin/]
/images               (Status: 301) [Size: 0] [--> /images/]
/backup.zip           (Status: 200) [Size: 10240]
/robots.txt           (Status: 200) [Size: 102]
===============================================================

ステータスコード 200 は「ファイルが存在する」、301 は「別のURLに転送される」ことを示しています。/backup.zip のようなファイルが見つかった場合は要注意です。

DNSサブドメインの探索(dnsモード)

gobuster dns -d example.com -w /path/to/subdomains.txt

mail.example.comstaging.example.com のような隠れたサブドメインを発見できます。

仮想ホストの探索(vhostモード)

gobuster vhost -u https://example.com -w /path/to/vhosts.txt

同じIPアドレスで複数のサイトが動いているサーバー上の、非公開サイトを見つけるのに使います。

スレッド数を増やして高速化する

# スレッドを50に増やす(デフォルトは10)
gobuster dir -u https://example.com -w wordlist.txt -t 50

活用アイデア

1. 本番環境のバックアップファイル漏洩チェック

開発中に作成した .bak.old.zip などのバックアップファイルがそのまま公開されていることがあります。以下のように拡張子を指定して調べることができます。

gobuster dir -u https://yoursite.com -w wordlist.txt -x php,bak,zip,old,sql

2. 管理画面への不正アクセスリスクの確認

/admin/administrator/wp-admin などの管理ページが誰でもアクセスできる状態になっていないかを確認できます。見つかった場合はIPアドレス制限や認証強化を検討しましょう。

gobuster dir -u https://yoursite.com -w admin-wordlist.txt --status-codes 200,302,401

3. CTF(セキュリティ競技)での隠しページ探し

CTFの問題では「Webサイトのどこかに隠されたフラグを探せ」という形式がよくあります。Gobusterを使えば手動では到底確認できない数千〜数万のパスを短時間で調査できます。

gobuster dir -u http://ctf-challenge.example.com -w /usr/share/wordlists/dirb/common.txt

4. クラウドストレージの設定ミス確認

Amazon S3やGoogle Cloud Storageのバケットが誤って公開設定になっていることがあります。s3モードやgcsモードでチェックできます。

# S3バケットの探索
gobuster s3 -w bucket-names.txt

5. ステータスコードでフィルタリングして効率アップ

大量の結果から必要なものだけを絞り込めます。

# 403(アクセス禁止)を除外して表示
gobuster dir -u https://example.com -w wordlist.txt --exclude-length 0 -b 403,404

まとめ

Gobusterは、Webサイトのセキュリティ状態を自分でチェックするための強力なツールです。隠れたディレクトリ、うっかり残ったバックアップファイル、外部から見えてしまっている管理画面など、手作業では気づきにくいリスクを素早く発見できます。

Go言語で開発されているため動作が非常に速く、マルチスレッドで並列処理を行うことで大量のパスも短時間でスキャンできる点が大きな強みです。複数のモード(dir・dns・vhost・s3など)を使い分けることで、Webサーバーからクラウドストレージまで幅広い対象を調査できます。

繰り返しになりますが、必ず自分が権限を持つ環境でのみ使用してください。セキュリティツールは正しい知識と倫理観を持って使うことで、システムをより安全にするための大きな力になります。まずは自分のローカル環境や練習用のCTFプラットフォームで試してみることをおすすめします。