Parsero: Kali Linuxのrobots.txt分析ツールの使い方徹底解説🔎

セキュリティツール

はじめに:Parseroとは?

ウェブサイトの情報収集やセキュリティ診断の初期段階で重要な役割を果たすファイルの一つに robots.txt があります。このファイルは、ウェブサイトの管理者が検索エンジンのクローラー(ボット)に対して、サイト内のどのページをクロール(巡回・情報収集)してほしくないか、またはどのページを許可するかを指示するために使用されます。

通常、robots.txt は検索エンジン最適化(SEO)の目的で使われますが、セキュリティの観点からは、しばしば意図せず内部のパスや管理画面の場所など、外部に知られたくない情報へのヒントが含まれていることがあります。攻撃者はこの情報を悪用して、隠されたディレクトリやファイルを探し出す可能性があります。

ここで登場するのが Parsero です。Parseroは、Kali Linux に含まれているツールの一つで、指定したウェブサイトの robots.txt ファイルを自動的に取得し、その内容を解析するために設計されています。特に、「Disallow」(不許可)エントリや「Sitemap」(サイトマップ)エントリを抽出し、潜在的に興味深いパスや情報を発見する手助けをしてくれます。🕵️‍♂️

このブログ記事では、Parseroの基本的な使い方から、より詳細なオプション、そして実際の使用例までを、初心者にも分かりやすく解説していきます。セキュリティ診断やペネトレーションテストの偵察フェーズで非常に役立つツールですので、ぜひ使い方をマスターしましょう。

⚠️倫理的な注意: Parseroを含むセキュリティツールを使用する際は、必ず自身が管理するウェブサイト、または明確な許可を得ているウェブサイトに対してのみ使用してください。許可なく他者のウェブサイトをスキャンすることは、不正アクセスや法律違反とみなされる可能性があります。

Parseroのインストールと確認

Parseroは通常、Kali Linuxにデフォルトでインストールされています。まずは、ターミナルを開いて以下のコマンドを実行し、Parseroが利用可能か確認してみましょう。

parsero --version

バージョン情報が表示されれば、Parseroはすでにインストールされており、使用準備ができています。🎉

もし「command not found」のようなエラーが表示された場合は、以下のコマンドでインストールを試みてください(ただし、最近のKaliバージョンでは通常不要です)。

sudo apt update && sudo apt install parsero -y

インストール後、再度 parsero --version で確認してください。

また、Parseroのヘルプメニューを表示させることで、利用可能なオプションの概要を確認できます。これは非常に便利なので、使い方に迷ったときはまず試してみましょう。

parsero -h

もしくは

parsero --help

これにより、後述する様々なオプションとその説明が表示されます。

基本的な使い方:robots.txtを解析する

Parseroの最も基本的な使い方は、対象となるウェブサイトのURLを指定して実行することです。-u または --url オプションに続けて、ドメイン名または完全なURLを指定します。

例えば、example.com というウェブサイトの robots.txt を解析したい場合は、以下のコマンドを実行します。

parsero -u example.com

または、プロトコル(http/https)を含めて指定することも可能です。

parsero -u https://www.example.com

コマンドを実行すると、Parseroはまず対象ドメインの robots.txt ファイルを探しに行きます(通常は https://www.example.com/robots.txt)。ファイルが見つかると、その内容をダウンロードし、解析を開始します。

出力結果には、主に以下の情報が含まれます:

  • Finding robots.txt: robots.txt ファイルが見つかったURL。
  • [+] Disallowed entries: Disallow: ディレクティブで指定されているパスの一覧。これらはクローラーにアクセスを禁止しているパスであり、管理画面やテスト用ディレクトリなど、隠されたリソースが含まれている可能性があります。
  • [+] Sitemap entries: Sitemap: ディレクティブで指定されているサイトマップファイルのURL。サイトマップにはウェブサイトの全ページ(または主要なページ)のリストが含まれているため、サイト構造を理解する上で役立ちます。
  • [!] Weird entries found: 標準的でない、または奇妙な記述が見つかった場合に表示されることがあります。

基本的な使い方だけでも、対象サイトがどのようなパスを隠そうとしているのか、またサイト全体の構造を把握するための手がかり(サイトマップ)があるかなどを素早く確認できます。📊

主要なオプション解説

Parseroには、解析の挙動を細かく制御するための様々なオプションが用意されています。ここでは、特によく使われる主要なオプションについて解説します。

オプション (短) オプション (長) 説明
-u --url 必須 解析対象のウェブサイトのURLまたはドメイン名を指定します。 parsero -u example.com
-l --list Parseroが認識している既知のrobots.txtの場所(一般的ではないパスを含む)のリストを表示します。ターゲットを指定せずにこれだけを実行できます。 parsero -l
-o --output 解析結果(主にDisallowedエントリ)を指定したファイルに保存します。 parsero -u example.com -o disallowed_paths.txt
-b --output-base-filename 出力ファイル名のベースを指定します。例えば -b report とすると、report_disallowed.txt のようなファイル名で保存されます。-o とは少し異なる挙動をします。 parsero -u example.com -b output_report
-s --sitemap robots.txt 内にSitemapエントリが見つかった場合、そのサイトマップファイルを取得し、そこに含まれるURLを解析して表示します。 parsero -u example.com -s
-a --all DisallowedエントリとSitemapエントリの両方をチェックします(デフォルトの挙動に近いですが、明示的に両方を確認したい場合に)。-s と同時に指定すると、サイトマップの内容も取得・解析します。 parsero -u example.com -a
-f --force robots.txt が見つからない、または無効に見える場合でも、強制的に処理を試みます。 parsero -u example.com -f
-ua --user-agent リクエストを送信する際のUser-Agent文字列を指定します。デフォルトではPythonの標準的なUAが使われることが多いですが、特定のボット(例: Googlebot)になりすましてアクセスしたい場合などに使用します。 parsero -u example.com -ua "Googlebot/2.1 (+http://www.google.com/bot.html)"
--proxy HTTP/HTTPSリクエストを指定したプロキシ経由で行います。形式は http://proxy.example.com:8080 のように指定します。 parsero -u example.com --proxy http://127.0.0.1:8080
-m --mode 検索モードを指定します (例: `disallowed`, `sitemap`, `all`)。デフォルトは `all` です。特定の種類の情報のみを抽出したい場合に便利です。 parsero -u example.com -m disallowed

これらのオプションを組み合わせることで、より目的に合わせた情報収集が可能になります。例えば、特定のUser-Agentでアクセスしつつ、結果をファイルに保存する、といった操作が簡単に行えます。🔧

実践的な使用例シナリオ

ここでは、いくつかの具体的なシナリオを想定し、Parseroをどのように活用できるかを見ていきましょう。

シナリオ1:基本的な偵察

あるウェブサイト (target-site.com) の初期偵察として、robots.txt にどのような情報が含まれているかを素早く確認したい。

parsero -u target-site.com

期待されるアクション: Parseroが https://target-site.com/robots.txt (またはHTTP) を取得し、DisallowedエントリとSitemapエントリを画面に出力します。これにより、管理者が隠そうとしている可能性のあるパス (/admin/, /backup/, /dev/ など) や、サイトマップの存在がわかります。📝

シナリオ2:Disallowedパスをファイルに保存

target-site.com のDisallowedパスをリストアップし、後で他のツール(例:ディレクトリブルートフォースツール)の入力として使うためにファイルに保存したい。

parsero -u target-site.com -o disallowed.txt

期待されるアクション: robots.txt を解析し、見つかったDisallowedエントリ(例:/private, /cgi-bin/)を disallowed.txt というファイルに一行ずつ書き出します。このファイルは、後続の調査で役立ちます。💾

シナリオ3:サイトマップの内容を調査

target-site.comrobots.txt にサイトマップが記載されているか確認し、もしあればそのサイトマップファイルの内容(URLリスト)を取得したい。

parsero -u target-site.com -s

期待されるアクション: Parseroはまず robots.txt をチェックし、Sitemap: ディレクティブを見つけます。もし Sitemap: https://target-site.com/sitemap.xml のような記述があれば、次に sitemap.xml ファイルをダウンロードし、その中にリストされているURLを解析して表示します。これにより、ウェブサイトの公開されているページ構造を広範囲に把握できます。🗺️

シナリオ4:特定のクローラーとしてアクセス

ウェブサイトがUser-Agentによって異なる robots.txt の内容を返す可能性があるか確認したい。Googlebotとしてアクセスしてみる。

parsero -u target-site.com -ua "Googlebot/2.1 (+http://www.google.com/bot.html)"

期待されるアクション: Parseroは指定されたGooglebotのUser-Agent文字列を使って robots.txt にアクセスします。サーバー側でUser-Agentに基づいた制御が行われている場合、デフォルトのUser-Agentでアクセスした時とは異なるDisallowedリストやルールが表示される可能性があります。🤖

シナリオ5:プロキシ経由でのアクセス

匿名性を高めたい、または特定のネットワーク経路からアクセスする必要があるため、プロキシ (http://127.0.0.1:8080) を経由して target-site.comrobots.txt を調査したい。

parsero -u target-site.com --proxy http://127.0.0.1:8080

期待されるアクション: ParseroからのすべてのHTTP/HTTPSリクエストは、指定されたローカルプロキシ (この場合はlocalhostの8080ポートで待機しているプロキシ、例: Burp SuiteやOWASP ZAP) を経由して行われます。これにより、トラフィックの監視や改変、発信元IPアドレスのマスキングなどが可能になります。🔒

これらの例はParseroの多様な使い方の一部を示しています。実際の調査では、これらのオプションを組み合わせたり、得られた情報を他のツールと連携させたりすることで、より効果的な情報収集が可能になります。

結果の解釈と注意点

Parseroが出力する結果、特に Disallowed エントリは、ウェブサイトの隠された側面を発見するための重要な手がかりとなります。しかし、その解釈には注意が必要です。

  • 単なるSEO対策: Disallowされているパスが、必ずしも機密情報や脆弱な箇所であるとは限りません。単に検索結果に表示させたくない低品質なページや重複コンテンツ、パラメータ付きURLなどが指定されている場合も多くあります。🤷‍♀️
  • 重要なヒント: 一方で、/admin/, /backup/, /config/, /logs/, /old-version/ といったパスがDisallowされている場合、それは管理者用ページ、バックアップファイル、設定ファイル、ログファイル、古いバージョンのアプリケーションなど、攻撃者にとって価値のある情報が存在する可能性を示唆しています。これらのパスに対しては、さらなる調査(ディレクトリやファイルの存在確認など)を行う価値があります。🔍
  • 存在しないパス: robots.txt に記載されていても、そのパスが実際にウェブサーバー上に存在するとは限りません。タイプミスや、過去には存在したが現在は削除されたパスなども考えられます。
  • ワイルドカードとパターン: robots.txt ではワイルドカード (*) や行末マーカー ($) を使用できます。例えば Disallow: /*.bak$ は、URLの末尾が .bak で終わるすべてのパスへのアクセスを禁止します。Parseroはこれらのパターンも表示しますが、解釈には robots.txt の仕様に関する知識が少し必要になる場合があります。
  • サイトマップの価値: サイトマップは、ウェブサイトの公式なページリストを提供します。これにより、手動でのブラウジングでは見つけにくいページや、サイト全体の構造を効率的に把握できます。特に大規模なサイトでは非常に有用です。

💡ヒント: Parseroで見つけた興味深いDisallowedパスは、Dirb, Gobuster, ffuf などのディレクトリ・ファイル探索ツールへの入力として活用すると、隠されたリソースの発見に繋がることがあります。

🚫倫理とルールの遵守: 再度強調しますが、robots.txt はあくまでクローラーに対する「お願い」であり、アクセス制御の仕組みではありません。技術的にはDisallowされたパスにもアクセス可能です。しかし、許可なくアクセスを試みることは、サイト所有者の意向に反する行為であり、場合によっては法的問題に発展する可能性があります。常に倫理的な判断と、テスト対象に関するルール(利用規約、テスト範囲の定義など)を遵守してください。

まとめ

Parseroは、ウェブサイトの robots.txt ファイルを効率的に解析し、隠されたパスやサイト構造に関する情報を収集するためのシンプルかつ強力なツールです。Kali Linuxに標準で搭載されており、コマンドラインから簡単に利用できます。

基本的な使い方から、ファイル出力、サイトマップ解析、User-Agentの偽装、プロキシ経由でのアクセスなど、様々なオプションを活用することで、情報収集の精度と効率を高めることができます。👍

ただし、robots.txt の情報はあくまでヒントであり、その解釈には注意が必要です。また、ツールを使用する際は、常に許可された範囲内で、倫理的な配慮を持って行うことが不可欠です。

セキュリティ診断やペネトレーションテストの初期偵察フェーズにおいて、Parseroはターゲットに関する貴重な洞察を与えてくれるでしょう。ぜひこのツールを使いこなし、効果的な情報収集活動に役立ててください。🚀

参考情報

コメント

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