dirbでサブディレクトリ探索

## 概要
**dirb**は**Kali Linux**にプリインストールされているWebコンテンツスキャナーで、80番ポート（Webサイト）の調査に利用されます。今回はなるべく簡単にdirbの使い方を解説します。

:::note warn
※本記事ではTryHackMe等のハッキング学習サイトでの利用を前提に内容を作成しています。記載しているツールを許可を得ずに第三者のサイトに利用することは不正アクセス行為の禁止等に関する法律に抵触する可能性があるため、絶対にお控えください。
:::


## 筆者の属性
社会人2年目のしがないCSIRT要員（非技術系）です。普段はインシデント対応やセキュリティ対策関連の業務をしています。<br>

## dirbの基礎知識
前述の通り**dirb**はWebコンテンツスキャナーで、**Kali Linux**ではデフォルトで利用可能。Webコンテンツスキャナーとは調査対象サイトに総当たりの手法でリクエストを送り、**アクセス可能なサブディレクトリを発見できるツール**です。


:::note info
 http://<ドメイン名>/<サブディレクトリ>
:::

ただしKaliの公式ドキュメントによるとハッキングツールというわけではなく、あくまで専門的なWeb アプリケーション監査を支援することが目的のツールだとか。
ちなみにこの手のツールで**Gobuster**という競合がいますが、両者の違いが筆者にはよくわかっていません。

## 辞書ファイルについて

デフォルトで参照される辞書ファイル`/usr/share/wordlists/dirb/common.txt`にはサブディレクトリによく利用される文字列（adminやuploads等）が網羅されているため、純粋な総当たりよりも遥かに効率良く探索ができます。

他にも沢山の辞書ファイルが用意されていますが、説明しきれないため気になる方は下記のリンクへ。

https://github.com/v0re/dirb/tree/master/wordlists

実際に使ったことはないですが、`/vulns`の中の`apache.txt`なんかはApacheの設定ファイルっぽい文字列が列挙してあり、攻撃対象サーバーがApacheと判明した後の調査で有用そうです。

## 利用方法
dirbは以下のコマンドで実行できます。※`*`付きの引数は必須
```
dirb <*対象URL> <辞書ファイル> <オプション> 
```


#### 実際に実行してみる
TryHackMeのとあるマシンにdirbを実行してみます。
- デフォルトの辞書ファイルだと少し時間がかかるので、今回はお手軽に実行できる`/usr/share/wordlists/dirb/small.txt`を指定します。
- `-o`を指定し、結果をファイル出力します。
- `-r`を指定し、見つかったディレクトリに対して再帰的に探索する機能はOFFにしておきます。（時短のため）
:::note info
デフォルトもしくは`-R`を指定する事で、例えば`/home`ディレクトリが見つかった際に`/home`配下のディレクトリも探索してくれます。
:::
<table>
  <thead>
    <tr>
      <th>オプション</th> <th>説明</th>
    </tr>
  </thead>
  <tr>
    <td> -o <任意のファイル名> </td> <td>実行結果をファイルに出力。</td>
  </tr>
  <tr>
    <td> -r</td> <td>再帰的な探索を行わないように設定。</td>
  </tr>
</table>

```:実行結果
┌──(kali㉿kali)-[~]
└─$ dirb http://<対象URL> /usr/share/dirb/wordlists/small.txt -o dirb.txt -r

-----------------
DIRB v2.22    
By The Dark Raver
-----------------

OUTPUT_FILE: dirb.txt
START_TIME: Sun Jan 26 16:36:00 2025
URL_BASE: http://<対象URL>/
WORDLIST_FILES: /usr/share/dirb/wordlists/small.txt
OPTION: Not Recursive

-----------------

GENERATED WORDS: 959                                                           

---- Scanning URL: http://<対象URL>/ ----
==> DIRECTORY: http://<対象URL>/css/                                                                                                                                                                                                     
==> DIRECTORY: http://<対象URL>/js/                                                                                                                                                                                                      
==> DIRECTORY: http://<対象URL>/panel/                                                                                                                                                                                                   
==> DIRECTORY: http://<対象URL>/uploads/                                                                                                                                                                                                 
                                                                                                                                                                                                                                           
-----------------
END_TIME: Sun Jan 26 16:40:12 2025
DOWNLOADED: 959 - FOUND: 0

```
※IPアドレスのみ<対象URL>に置き換えています。

実行結果の通り、対象サイトには`/css`、`/js`、`/panel`、`/uploads`の4つのサブディレクトリが存在することが分かりました。

今回は`drib.txt`に結果を出力したので、実行結果をいつでも見返すことができます。なおdirbに限らず調査系コマンドの実行結果はファイル出力して後で見返せるようにしておくと吉だと思います。

## 所感
簡単に使えるシンプルさが素敵ですが、未紹介の様々なオプションと合わせることで、痒い所に手が届くツールなのではと（勝手に）思っています。<br>
以上です。


## 参考
下記のサイトを参考とさせていただきました。

https://www.kali.org/tools/dirb/

https://github.com/v0re/dirb/tree/master

https://whitemarkn.com/learning-ethical-hacker/dirb/#google_vignette