feroxbuster

Kalilinux
この記事は約6分で読めます。

feroxbuster は、Webサーバ上に存在するが公開されていないディレクトリやファイルを発見するための高速なコンテンツ探索(Forced Browsing / Directory Enumeration)ツールです。

記述言語は ‘Rust’ です。

公開されていないディレクトリやファイルの探索は、脆弱性発見の手がかりとなります。

すなわちこれらのファイルには、ソースコード、認証情報、内部ネットワークアドレスなど、Webアプリケーションやオペレーティングシステムに関する機密情報が格納されている可能性があるからです。

実行

自分が管理する(或いは許可を得た)サーバ以外には実行しないで下さい

‘-u’ オプションでURLを指定します。

辞書を指定しない場合は、デフォルトの辞書を使用します。
/usr/share/feroxbuster/raft-medium-directories.txt(30,000語)

辞書を指定する場合のオプションは ‘-w’ です。

使用する辞書については別記事(dirb, dirbuster, seclistsなど)を参照ください。

その他主なオプション

オプション意味
-d 数字再帰的検索(*)の深さ(デフォルトは4)
-x 拡張子拡張子の指定(コンマ又はスペース区切りで複数同時検索可)
-t 数字スレッド(同時並行処理)数の指定(デフォルトは50)
-s コードステータスコードを指定(コンマ又はスペース区切りで複数指定可)
-o ファイル名出力をファイルへ保存

* 再帰的検索:あるディレクトリを発見した場合、その下の階層も自動的に検索する仕様。

実行結果

例によって、左のラズパイ5から、右のラズパイ4Bに立てたサーバ(Wordpress/MySQL/Apach/Kali linux)を探索しました。

raspberry pi 5 & 4B

中身がほとんど空のサイトにもかかわらず、探索終了までに2時間以上かかりました。

実行結果は次の3つのパートに分かれています。

第一パート

表題と各種設定事項が表示されています。

feroxbuster 1

‘ferric oxide’ は、酸化第2鉄(赤錆)のこと。記述言語のRustに因んで ‘rustbuster’ という名前にしようと思ったけど、それは既に使われていたので、少しアレンジして命名したとのこと。

第二パート

発見したファイル・ディレクトリの表示部です。(ここがメイン)

見つからなかった結果も表示されますので非常に多数行あります。

最初の3桁の数字がステータスコードです。( “200” は見つけたもの。 “404” は見つからなかったものを表しています。後掲)

feroxbuster 2

第三パート

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

feroxbuster 3

ステータスコードについて

webサーバへの問い合わせの結果、webサーバから返ってくる3桁のコードがステータスコードです。

問い合わせたファイル・ディレクトリの有無を示します(有が “200” 、無が “404” です)

その他色々なコード番号があり、chatGPTに表を作ってもらったらこんなに沢山ありました。(最重要は赤字、次に重要は青字で示しています)

ステータスコード名称意味対応・確認事項
100Continueリクエスト継続通常は無視してよい
101Switching Protocolsプロトコル変更WebSocketなどで使用
200OK正常にページが存在最重要。内容を確認する
201Createdリソース作成成功APIでよく見られる
202Accepted処理受付APIで使用
204No Content内容なし空ページの可能性
206Partial Content一部返却ダウンロード等で利用
301Moved Permanently永久リダイレクトディレクトリが存在する可能性大
302Found一時リダイレクトログインページへ飛ばされることも多い
303See Other別URLへフォーム送信後など
304Not Modified更新なしキャッシュ用
307Temporary Redirect一時リダイレクト302より厳密
308Permanent Redirect恒久リダイレクト301の後継
400Bad Request不正なリクエストURLやヘッダを確認
401Unauthorized認証が必要ページは存在する
403Forbiddenアクセス禁止存在しているが閲覧不可
404Not Found存在しない通常は無視する候補
405Method Not Allowedメソッド不可GETでは不可、POSTでは可能な場合あり
406Not AcceptableAcceptヘッダ不一致
408Request Timeoutタイムアウトネットワーク遅延など
409Conflict競合APIで使用
410Gone削除済み過去に存在していた
413Payload Too Largeサイズ超過アップロード時
429Too Many Requestsアクセス過多レート制限。スレッド数を減らす
500Internal Server Errorサーバ内部エラー存在するが処理でエラー発生の可能性
501Not Implemented未実装
502Bad GatewayゲートウェイエラーProxy障害など
503Service Unavailableサービス停止一時的障害・メンテナンス
504Gateway Timeoutゲートウェイタイムアウト上位サーバ応答なし

まとめ

今回は、Webサーバの隠しページを探索するツール ‘feroxbuster’ を取り上げました。

過去に取り上げた、 ‘dirb’, ‘gobuster’, ‘ffuf’, ‘dirbuster’ と似たツールです。

他ツールとの比較

比較表は以下の通りです。

ツール特徴再帰探索速度
dirb古典的★★
gobuster高速、VHost・DNS探索★★★★★
ffuf高速柔軟なファジング★★★★★
feroxbuster高速・自動再帰・結果が見やすい★★★★★
dirbusterGUI、メモリ消費大

feroxbusterは高速で再帰探索が自動で行えるということが特徴のようです。(でも、殆ど空のサイトの探索に2時間かかりましたけど)

ヘルプ

kali ー 01-Reconnaissance ー Web Scanning ー feroxbusterでhelp画面が表示されます。

feroxbuster help

参考

ちなみに本サイトが置かれているサーバ(ConoHa-Wing)も、辞書攻撃による「存在しないファイル」へのアクセス攻撃を頻繁に受けています。

例えばこんな感じ⬇️ (とある日のサーバのエラーログです。)

error log

ここでは ‘sodium_compat’, ‘Text’, ‘uploads’ などの当てずっぽうのディレクトリ名でアクセスが試みられた形跡が見られます。

このような攻撃を行う側のツールが、今回取り上げた ‘feroxbuster’ (或いは ‘dirb’, ‘dirbuster’, ‘gobuster’ など)です。

守備側は、このアクセス元のIPアドレスをアク禁にしたりして対抗します。

しかしいくらアク禁にしても次から次からアクセスがあり、キリがない感じです。(アク禁IPリストは優に100を超えてます)

ちょうど農業で雑草が次々に生えてきて、それを取り除く感じとでも申しましょうか。

農業やったこと無いけども。

全然関係ない話に脱線しますが、
農作業や(家庭菜園とかでも)林や藪の中に入る際はダニに気をつけましょう。(長袖長ズボンにして皮膚が露出しないように!)

ダニが持つ病原体には厄介なものが多く、正しい治療に辿り着くまでに時間がかかりやすいのです。しかも手遅れになると命に関わったりします。

農作業や山に入った後に発熱した場合には、その旨を必ず病院で申し出て下さい。

参照:ダニ媒介感染症(厚生労働省)

コメント

タイトルとURLをコピーしました