feroxbuster は、Webサーバ上に存在するが公開されていないディレクトリやファイルを発見するための高速なコンテンツ探索(Forced Browsing / Directory Enumeration)ツールです。
記述言語は ‘Rust’ です。
公開されていないディレクトリやファイルの探索は、脆弱性発見の手がかりとなります。
すなわちこれらのファイルには、ソースコード、認証情報、内部ネットワークアドレスなど、Webアプリケーションやオペレーティングシステムに関する機密情報が格納されている可能性があるからです。
実行
自分が管理する(或いは許可を得た)サーバ以外には実行しないで下さい
‘-u’ オプションでURLを指定します。
feroxbuster -u http://example.com
辞書を指定しない場合は、デフォルトの辞書を使用します。
/usr/share/feroxbuster/raft-medium-directories.txt(30,000語)
辞書を指定する場合のオプションは ‘-w’ です。
feroxbuster -u http://example.com -w wordlist
使用する辞書については別記事(dirb, dirbuster, seclistsなど)を参照ください。
その他主なオプション
| オプション | 意味 |
|---|---|
| -d 数字 | 再帰的検索(*)の深さ(デフォルトは4) |
| -x 拡張子 | 拡張子の指定(コンマ又はスペース区切りで複数同時検索可) |
| -t 数字 | スレッド(同時並行処理)数の指定(デフォルトは50) |
| -s コード | ステータスコードを指定(コンマ又はスペース区切りで複数指定可) |
| -o ファイル名 | 出力をファイルへ保存 |
* 再帰的検索:あるディレクトリを発見した場合、その下の階層も自動的に検索する仕様。
実行結果
例によって、左のラズパイ5から、右のラズパイ4Bに立てたサーバ(Wordpress/MySQL/Apach/Kali linux)を探索しました。

中身がほとんど空のサイトにもかかわらず、探索終了までに2時間以上かかりました。
実行結果は次の3つのパートに分かれています。
第一パート
表題と各種設定事項が表示されています。

‘ferric oxide’ は、酸化第2鉄(赤錆)のこと。記述言語のRustに因んで ‘rustbuster’ という名前にしようと思ったけど、それは既に使われていたので、少しアレンジして命名したとのこと。
第二パート
発見したファイル・ディレクトリの表示部です。(ここがメイン)
見つからなかった結果も表示されますので非常に多数行あります。
最初の3桁の数字がステータスコードです。( “200” は見つけたもの。 “404” は見つからなかったものを表しています。後掲)

第三パート
最後にどの層までを検索したかのサマリーがあります。(検索中は検索状況が表示されます)

ステータスコードについて
webサーバへの問い合わせの結果、webサーバから返ってくる3桁のコードがステータスコードです。
問い合わせたファイル・ディレクトリの有無を示します(有が “200” 、無が “404” です)
その他色々なコード番号があり、chatGPTに表を作ってもらったらこんなに沢山ありました。(最重要は赤字、次に重要は青字で示しています)
| ステータスコード | 名称 | 意味 | 対応・確認事項 |
|---|---|---|---|
| 100 | Continue | リクエスト継続 | 通常は無視してよい |
| 101 | Switching Protocols | プロトコル変更 | WebSocketなどで使用 |
| 200 | OK | 正常にページが存在 | 最重要。内容を確認する |
| 201 | Created | リソース作成成功 | APIでよく見られる |
| 202 | Accepted | 処理受付 | APIで使用 |
| 204 | No Content | 内容なし | 空ページの可能性 |
| 206 | Partial Content | 一部返却 | ダウンロード等で利用 |
| 301 | Moved Permanently | 永久リダイレクト | ディレクトリが存在する可能性大 |
| 302 | Found | 一時リダイレクト | ログインページへ飛ばされることも多い |
| 303 | See Other | 別URLへ | フォーム送信後など |
| 304 | Not Modified | 更新なし | キャッシュ用 |
| 307 | Temporary Redirect | 一時リダイレクト | 302より厳密 |
| 308 | Permanent Redirect | 恒久リダイレクト | 301の後継 |
| 400 | Bad Request | 不正なリクエスト | URLやヘッダを確認 |
| 401 | Unauthorized | 認証が必要 | ページは存在する |
| 403 | Forbidden | アクセス禁止 | 存在しているが閲覧不可 |
| 404 | Not Found | 存在しない | 通常は無視する候補 |
| 405 | Method Not Allowed | メソッド不可 | GETでは不可、POSTでは可能な場合あり |
| 406 | Not Acceptable | Acceptヘッダ不一致 | 稀 |
| 408 | Request Timeout | タイムアウト | ネットワーク遅延など |
| 409 | Conflict | 競合 | APIで使用 |
| 410 | Gone | 削除済み | 過去に存在していた |
| 413 | Payload Too Large | サイズ超過 | アップロード時 |
| 429 | Too Many Requests | アクセス過多 | レート制限。スレッド数を減らす |
| 500 | Internal Server Error | サーバ内部エラー | 存在するが処理でエラー発生の可能性 |
| 501 | Not Implemented | 未実装 | 稀 |
| 502 | Bad Gateway | ゲートウェイエラー | Proxy障害など |
| 503 | Service Unavailable | サービス停止 | 一時的障害・メンテナンス |
| 504 | Gateway Timeout | ゲートウェイタイムアウト | 上位サーバ応答なし |
まとめ
今回は、Webサーバの隠しページを探索するツール ‘feroxbuster’ を取り上げました。
過去に取り上げた、 ‘dirb’, ‘gobuster’, ‘ffuf’, ‘dirbuster’ と似たツールです。
他ツールとの比較
比較表は以下の通りです。
feroxbusterは高速で再帰探索が自動で行えるということが特徴のようです。(でも、殆ど空のサイトの探索に2時間かかりましたけど)
ヘルプ
kali ー 01-Reconnaissance ー Web Scanning ー feroxbusterでhelp画面が表示されます。





参考
ちなみに本サイトが置かれているサーバ(ConoHa-Wing)も、辞書攻撃による「存在しないファイル」へのアクセス攻撃を頻繁に受けています。
例えばこんな感じ⬇️ (とある日のサーバのエラーログです。)

ここでは ‘sodium_compat’, ‘Text’, ‘uploads’ などの当てずっぽうのディレクトリ名でアクセスが試みられた形跡が見られます。
このような攻撃を行う側のツールが、今回取り上げた ‘feroxbuster’ (或いは ‘dirb’, ‘dirbuster’, ‘gobuster’ など)です。
守備側は、このアクセス元のIPアドレスをアク禁にしたりして対抗します。
しかしいくらアク禁にしても次から次からアクセスがあり、キリがない感じです。(アク禁IPリストは優に100を超えてます)
ちょうど農業で雑草が次々に生えてきて、それを取り除く感じとでも申しましょうか。
農業やったこと無いけども。
全然関係ない話に脱線しますが、
農作業や(家庭菜園とかでも)林や藪の中に入る際はダニに気をつけましょう。(長袖長ズボンにして皮膚が露出しないように!)
ダニが持つ病原体には厄介なものが多く、正しい治療に辿り着くまでに時間がかかりやすいのです。しかも手遅れになると命に関わったりします。
農作業や山に入った後に発熱した場合には、その旨を必ず病院で申し出て下さい。
参照:ダニ媒介感染症(厚生労働省)

コメント