CLIベースのディレクトリ・ファイル探索ツール
- dirb -
dirbは、Webサーバー上に隠れているディレクトリやファイルを列挙するためのツールです。
本記事では、dirbの特徴からインストール方法、コマンド・オプションの使い方まで、詳しく解説しています。
dirbとは
dirbは、Webサーバー上の隠れたディレクトリやファイルを列挙するためのコマンドラインツールです。主にWebアプリケーションのセキュリティ診断において、Webサーバー上に存在する隠しディレクトリや誤って公開されたファイルを検出する目的で使用されます。
dirbの基本的な動作は、辞書ファイル(ワードリスト)に基づいてURLパスを総当たり(ブルートフォース)でリクエストし、レスポンスのHTTPステータスコードを解析するというシンプルな仕組みです。
例えば、HTTPステータスコードが 200 OK や 403 Forbidden を返す場合、対象のリソースが存在する可能性が高いと判断されます。
dirbはコマンドラインベース(CLI)の軽量ツールであり、Kali Linuxなどのセキュリティ特化型ディストリビューションに標準で搭載されています。
dirbの特徴
- ブルートフォース探索
- 辞書ファイル(ワードリスト)方式
- コマンドライン・インタフェース(CLI)
- 再帰スキャン機能
- 実行結果をファイル出力
- Kali Linuxにプリインストール
ブルートフォース探索
dirbは、Webサーバーに対してブルートフォース手法を用いて、ディレクトリやファイルの存在を確認するツールです。具体的には、HTTPリクエストを送信し、応答として返されるHTTPステータスコードから対象の存在有無を判定します。
例えば、200 OKが返されればそのパスは存在していると判断され、403 Forbiddenであればアクセス制限はあるものの存在が示唆されます。
辞書ファイル(ワードリスト)方式
dirbはあらかじめ用意された辞書ファイル(ワードリスト)を使用してスキャンを実行します。これにより、実際に存在しそうなパスだけを効率的に試行できます。
例えば、Kali Linuxに含まれる/usr/share/wordlists/dirb/common.txtには、汎用的なファイル名やディレクトリ名(admin, login, index.phpなど)が約4 ,600ワードで格納されており、不要なリクエストを避けながら高精度な探索が可能となります。
辞書ファイルの品質はスキャンの精度に直結します。診断対象のシステム特性に応じてカスタム辞書を準備することで、精度の高い診断を実施することができます。
コマンドライン・インタフェース(CLI)
dirbはコマンドライン・インタフェース(CLI)で動作するツールで、ターミナル上で実行します。例えば、以下のようなコマンドでスキャンを実行できます。
$ dirb http://example.com/ /usr/share/wordlists/dirb/common.txtGUIが不要なため、リモート環境や自動化基盤(CI/CDパイプライン、診断スクリプト)への導入に適しています。
再帰スキャン機能
dirbには再帰的にサブディレクトリを探索する機能があり、検出されたディレクトリの内部にさらに潜むディレクトリやファイルを継続的に調査することができます。
例えば、/admin/というディレクトリが検出された場合、/admin/login.phpや/admin/config/といった階層の探索も行われます。
実行結果をファイル出力
スキャン結果は、標準出力だけでなくファイルに保存することも可能です。
Kali Linuxにプリインストール
dirbは、Kali Linuxに標準でプリインストールされており、追加インストールの手間なくすぐに使用できます。
/usr/bin/dirbにバイナリが配置されており、主要なワードリストも/usr/share/wordlists/dirb/に用意されています。
注意事項
dirbの利用にあたっては、以下の点に留意する必要があります。
- 許可のある環境でのみ使用すること
- サーバーに負荷を与える可能性がある
- WAFやIPSに検知される可能性がある
許可のある環境でのみ使用すること
dirbはターゲットサーバーに多数のHTTPリクエストを送信します。無許可で実行すれば、不正アクセス禁止法等に抵触するリスクがあります。検証環境や明確な許可を得た環境以外では使用しないでください。
サーバーに負荷を与える可能性がある
特に大きな辞書ファイルを用いてスキャンを行う場合、ターゲットサーバーへのリクエスト数が数万件以上に達することがあります。本番環境での実行は、業務影響の観点から慎重に検討してください。
WAFやIPSに検知される可能性がある
Web Application Firewall(WAF)やIntrusion Prevention System(IPS)を導入しているシステムでは、dirbのスキャンパターンが検知・ブロックされる場合があります。必要に応じて診断用IPアドレスのホワイトリスト登録など調整が必要です。
dirbのインストール
dirbは多くのセキュリティテスト環境で利用されている成熟したツールで、Kali Linuxにプリインストールされています。
Ubuntuにはプリインストールされていませんが、公式リポジトリにdirbが含まれているため、aptコマンドで簡単にインストールできます。
Kali Linuxの場合
Kali Linux 2025.3を使用しています。
Kali Linuxには、dirbが標準でプリインストールされています。そのため、追加のインストール作業は不要です。
$ which dirb
/usr/bin/dirbアプリケーションメニューから起動することもできます。

アプリケーションメニューの01-Reconnaissance>Web Scanning>dirbを選択すると、ターミナルが起動し、dirbの実行結果(バージョン情報、使用方法)が表示されます。

Ubuntuの場合
Ubuntu 24.04 LTSを使用しています。
Ubuntuではdirbは標準でインストールされていませんが、公式リポジトリに含まれているため、APTパッケージマネージャを用いて簡単に導入できます。
パッケージ情報を更新
$ sudo apt updateパッケージ情報を更新します。
パッケージ情報を確認
$ apt info dirb
Package: dirb
Version: 2.22+dfsg-5build2
Priority: optional
Section: universe/net
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Security Tools <team+pkg-security@tracker.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1,502 kB
Depends: libc6 (>= 2.34), libcurl4t64 (>= 7.16.2)
Homepage: http://dirb.sourceforge.net/
Download-Size: 234 kB
APT-Sources: http://jp.archive.ubuntu.com/ubuntu noble/universe amd64 Packages
Description: URL bruteforcing tool
DIRB is a Web Content Scanner. It looks for existing (and/or hidden) Web
Objects. It basically works by launching a dictionary based attack against
a web server and analyzing the responses.
.
DIRB comes with a set of preconfigured attack wordlists for easy usage but
you can use your custom wordlists. Also DIRB sometimes can be used as a
classic CGI scanner, but remember that it is a content scanner not a
vulnerability scanner.
.
DIRB's main purpose is to help in professional web application auditing.
Specially in security related testing. It covers some holes not covered by
classic web vulnerability scanners. DIRB looks for specific web objects that
other generic CGI scanners can't look for. It doesn't search vulnerabilities
nor does it look for web contents that can be vulnerable.dirbのパッケージ情報を確認します。
dirbパッケージをインストール
$ sudo apt install dirbパッケージ情報に問題がなければ、インストールを行います。
インストール後の動作確認
dirbをインストールすると、バイナリは/usr/bin/dirb、辞書ファイル(ワードリスト)は/usr/share/dirb/wordlistsに配置されます。
実行ファイルのパス
$ which dirb
/usr/bin/dirbバージョン確認
$ dirb
-----------------
DIRB v2.22
By The Dark Raver
-----------------
〜 以下、省略 〜辞書ファイル(ワードリスト)の確認
$ ls -l /usr/share/dirb/wordlists/
合計 260
-rw-r--r-- 1 root root 184073 1月 25 2012 big.txt
-rw-r--r-- 1 root root 1292 1月 27 2012 catala.txt
-rw-r--r-- 1 root root 35849 11月 17 2014 common.txt
-rw-r--r-- 1 root root 1492 5月 23 2012 euskera.txt
-rw-r--r-- 1 root root 142 12月 30 2005 extensions_common.txt
-rw-r--r-- 1 root root 75 3月 16 2012 indexes.txt
-rw-r--r-- 1 root root 244 12月 30 2005 mutations_common.txt
drwxr-xr-x 2 root root 4096 12月 8 14:35 others
-rw-r--r-- 1 root root 6561 3月 5 2014 small.txt
-rw-r--r-- 1 root root 3731 11月 13 2014 spanish.txt
drwxr-xr-x 2 root root 4096 12月 8 14:35 stress
drwxr-xr-x 2 root root 4096 12月 8 14:35 vulnsdirbで使用する辞書ファイル
Kali Linuxには、dirbを含む多くのディレクトリ探索ツールで利用可能な辞書ファイル(Wordlists)が標準搭載されています。これらの辞書ファイルは、/usr/share/wordlists/配下に配置されており、特にWebアプリケーション診断におけるディレクトリ・ファイル列挙で高い効果を発揮します。
APTパッケージからdirbをインストールすると、辞書ファイルは/usr/share/dirb/wordlists/配下に格納されます。
Wordlistsに収録されている主要な辞書ファイル
| ファイル名 | 概要 | 収録ワード数 |
|---|---|---|
| common.txt | 一般的なディレクトリ・ファイル名が収録された基本的な辞書ファイル | 約4,600 |
| big.txt | common.txt を拡張した大規模な辞書ファイル | 約20,000 |
| extensions_common.txt | .php / .html / .xml など、一般的な拡張子のセット | 約30 |
| vulns/apache.txt など | 各種技術スタック(Apache、IIS、JBoss、Oracle、SAP、Tomcat、WebSphereなど)に対応した専用の辞書ファイル | - |
辞書ファイルのワード数が増えるほど列挙精度は向上しますが、Webサーバーの負荷やスキャン時間も比例して増加します。
ディレクトリ・ファイル探索で使用する代表的な辞書ファイル(ワードリスト)には、WordlistsとSecListsがあります。詳細は、以下の記事をご覧ください。
dirbコマンドの使い方
dirbはコマンドライン・インタフェース(CLI)ツールのため、ターミナルからコマンドを実行します。
基本構文
$ dirb <対象URL> [辞書ファイル] [オプション]- 対象URL:スキャン対象のWebサーバーのURL(例:
http://example.com/) - 辞書ファイル:使用する辞書ファイル(省略時はデフォルト辞書が使用されます)
- オプション:ファイル出力や再帰スキャンなどの追加設定
Kali Linux、Ubuntu環境では、/usr/share/dirb/wordlists/common.txtがデフォルト辞書として設定されています。
マニュアル・ヘルプ
# マニュアル
$ man dirb
# ヘルプ
$ dirb基本的な使い方
最もシンプルな使用例
$ dirb http://example.com/最もシンプルな実行方法です。このコマンドは、デフォルト辞書を用いてスキャンを行い、存在が推測されるディレクトリやファイルを列挙します。
辞書ファイルを指定したスキャン例
$ dirb http://example.com/ /usr/share/wordlists/dirb/common.txt辞書ファイルを明示的に指定して、スキャンを実行します。dirbでは複数の辞書ファイルが用意されており、common.txtやbig.txtのようにワード数が異なるものを選択できます。
dirbコマンドで指定可能なオプション
dirbはシンプルな操作性ながら、多彩なオプションを備えており、状況に応じた柔軟なディレクトリ・ファイル探索が可能です。以下の表では、dirbコマンドで使用可能なすべてのオプションをまとめました。
dirbコマンドの全オプション
| オプション | 説明 |
|---|---|
| -a <agent_string> | ユーザーエージェントに任意の文字列を指定する。 |
| -b | URL内の`/../`や`/./`を正規化せず、そのまま使用する。 |
| -c <cookie_string> | HTTPリクエストにクッキーを設定する。 |
| -E <certificate> | クライアント証明書のパスを指定する。 |
| -f | 404(Not Found)判定を細かく調整する。 |
| -H <header_string> | HTTPリクエストにカスタムヘッダーを追加する。 |
| -i | 大文字・小文字を区別せずにURL探索する。 |
| -l | 発見時にレスポンスのLocationヘッダーを表示する。 |
| -N <nf_code> | 指定したHTTPステータスコードのレスポンスを無視する。 |
| -o <output_file> | 実行結果をファイルに保存する。 |
| -p <proxy[:port]> | プロキシを使用する。(ポート省略時は1080)。 |
| -P <proxy_username:proxy_password> | プロキシ接続時の認証情報(ユーザー名・パスワード)を指定する。 |
| -r | 再帰的なディレクトリ探索を行わない。 |
| -R | 対話形式で再帰的なディレクトリ探索を行う。 |
| -S | サイレントモード(試行中の単語を表示しない) |
| -t | URLの末尾に強制的にスラッシュ`/`を付けない。 |
| -u <username:password> | HTTPのBasic認証情報を指定する。 |
| -v | 404(Not Found)ページも表示する。 |
| -w | 警告メッセージが出ても処理を停止しない。 |
| -X <extensions> / -x <exts_file> | 単語(パス)の末尾に指定した拡張子を付けて探索する。 |
| -z <milliseconds> | リクエスト間にミリ秒単位の待機時間を挟む。 |
代表的なオプションの使い方
再帰的にディレクトリを探索する(-Rオプション)
$ dirb http://example.com/ -R-Rオプションを付与すると、発見された各ディレクトリに対して再帰的に探索を行います。
再帰的にディレクトリを探索しない(-rオプション)
$ dirb http://example.com/ -r-rオプションを付与すると、発見された各ディレクトリに対して再帰的に探索を行いません。
実行結果をファイルに出力する(-oオプション)
$ dirb http://example.com/ -o result.txt出力形式はテキストベースで、「URL」「HTTPステータスコード」「サイズ」が記録されます。
Basic認証(-uオプション)
$ dirb http://example.com/ -u user:passwordBasic認証が設定されたWebサイトに対しては、-uオプションで認証情報を付与してスキャンします。
スキャン速度(-zオプション)
# 1000ミリ秒(1秒)間隔でリクエストを送信する場合
$ dirb http://example.com/ -z 1000dirb自体は軽量なスキャンツールですが、大規模な辞書ファイルを使用すると、ターゲットとなるWebサーバーに過度な負荷を与える可能性があります。その場合、-zオプションを指定して、スキャン速度を調整します。
検証環境でdirbを実行してみた
ここでは、ターゲットマシンであるUbuntuに構築した「OWASP Juice Shop」に対し、dirbを使用してディレクトリ・ファイル探索を実施する手順を解説します。
OWASP Juice Shopは、学習目的で意図的に脆弱性を組み込んだアプリケーションで、サイバーセキュリティ教育の教材として活用されています。
Kali Linux、およびOWASP Juice Shopの構築方法は、以下の記事をご覧ください。
- dirb実行マシン
- Kali Linux 2025.3
- dirb v2.22
- 192.168.10.11
- ターゲットマシン
- Ubuntu 24.04 LTS
- OWASP Juice Shop(Dockerコンテナとして稼働)
- 192.168.10.102(ポート3000)
※Kali Linux、およびUbuntuは、Windows上に構築したVirtualBoxの仮想環境で稼働しています。
dirbコマンドの実行
Juice ShopのトップURLに対して、Kali Linuxからdirbコマンドを実行します。
Kali Linuxのターミナル
$ dirb http://192.168.10.102:3000/ /usr/share/wordlists/dirb/common.txt -z 100 -o output.txt-z 100:100ミリ秒ごとにリクエストを送信-o output.txt:実行結果をファイル出力
スキャン結果の確認
Kali Linuxのターミナル
$ cat output.txt
-----------------
DIRB v2.22
By The Dark Raver
-----------------
OUTPUT_FILE: output.txt
START_TIME: Mon Dec 8 19:10:01 2025
URL_BASE: http://192.168.10.102:3000/
WORDLIST_FILES: /usr/share/wordlists/dirb/common.txt
SPEED_DELAY: 100 milliseconds
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.10.102:3000/ ----
+ http://192.168.10.102:3000/assets (CODE:301|SIZE:156)
+ http://192.168.10.102:3000/ftp (CODE:200|SIZE:11317)
+ http://192.168.10.102:3000/profile (CODE:500|SIZE:1049)
+ http://192.168.10.102:3000/promotion (CODE:200|SIZE:6586)
+ http://192.168.10.102:3000/redirect (CODE:500|SIZE:3119)
+ http://192.168.10.102:3000/robots.txt (CODE:200|SIZE:28)
+ http://192.168.10.102:3000/video (CODE:200|SIZE:10075518)
+ http://192.168.10.102:3000/Video (CODE:200|SIZE:10075518)
-----------------
END_TIME: Mon Dec 8 19:20:04 2025
DOWNLOADED: 4612 - FOUND: 8assetsm、ftp、profileなどが検出されました。この中には、外部に公開すべきでない機能や機密情報が含まれている可能性があるため、内容の精査が必要です。
