Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
findcdn — ドメインをスキャンし、HTTPSヘッダー、CNAMEレコード、WHOISデータのフィンガープリンティングによって、どのContent Delivery Network(CDN)を使用しているかを特定します。JSON出力とモジュールサポートを備えています。 | Kitploit
ツール/GitHubGitHub/cisagov/findcdn
OSINT (オープンソースインテリジェンス)偵察ネットワークマッピング情報収集ユーティリティとフレームワークフィンガープリントスプーフィングDNS分析
GitHubcisagov/findcdn

findcdn

ドメインをスキャンし、HTTPSヘッダー、CNAMEレコード、WHOISデータのフィンガープリンティングによって、どのContent Delivery Network(CDN)を使用しているかを特定します。JSON出力とモジュールサポートを備えています。

リポジトリを見る
12323131ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

findcdn

GitHub Build Status Coverage Status Total alerts Language grade: Python Known Vulnerabilities

findcdn は、ドメインが使用している Content Distribution Network (CDN) の種類をスキャンして検出できるツールです。findcdn は結果をファイルに保存したり、モジュールとして使用したり、単に標準出力に出力したりできます。

findcdn は、ツールのユーザーがドメインが使用している CDN を正確に判断するのに役立ちます。サポートされているドメインのリストは、リポジトリ内の cdn_config.py ファイルに記載されています。このライブラリは、スタンドアロンツールとして、またはプロジェクトにインポート可能なモジュールとして実装できます。どちらの場合も、結果を出力ファイルに書き込むことができます。

はじめに

findcdn には Python 3.7+ が必要です。Python 2 はサポートされていません。

findcdn は、pip とリポジトリ内の requirements.txt ファイルを使用してモジュールとしてインストールできます。

モジュールとしてのインストール

findcdn は pip 経由でインストールできます:

root@kitploit:~
pip install --requirement requirements.txt

その後、直接実行できます:

root@kitploit:~
findcdn list github.com

または、次のコマンドで任意のプロジェクトにすばやくインストールできます:

root@kitploit:~
pip install git+https://github.com/cisagov/findcdn.git

注意: モジュールをインストールして環境をクリーンに保つために、Python 仮想環境を使用することをお勧めします。そうする場合は、モジュールをインストールする前に pyenv と pyenv-virtualenv プラグイン が必要です。

スタンドアロンでの使用と例

root@kitploit:~
findcdn file <fileIn> [options]
findcdn list  <domain>... [options]
findcdn (-h | --help)

findcnd -h
findcdn file domains.txt -o output_cdn.txt -t 17 -d
findcdn list dhs.gov cisa.gov -o output_cnd.txt -v
findcdn list cisa.gov

オプション

root@kitploit:~
  -h --help                    このメッセージを表示します。
  --version                    現在のバージョンを表示します。
  -o FILE --output=FILE        指定した場合、JSON 出力ファイルが
                               指定された値の場所に作成されます。
  -v --verbose                 追加の出力文を含めます。
  --all                        出力に CDN があるドメインとないドメインの
                               両方を含めます。
  -d --double                  精度を高めるためにチェックを 2 回実行します。
  -t --threads=<thread_count>  スレッド数。指定しない場合はデフォルトを使用します。
  --timeout=<timeout>          ドメインの処理が完了するまで待機する最大時間
                               (秒)。指定しない場合はデフォルトを使用します。
  --user_agent=<user_agent>    使用するユーザーエージェントを設定します。
                               指定しない場合はデフォルトを使用します。

出力例

root@kitploit:~
user2@ubuntu:~$ findcdn list asu.edu -t 7 --double
Using 7 threads.
[Pending: 0 jobs]==[Threads: 2]: 100%|███████████████████████████████| 2/2 [00:00<00:00,  2.22it/s]
{
    "date": "06/19/2020, 13:00:38",
    "CDN_count": "1",
    "domains": {
        "asu.edu": {
            "IP": "'104.16.50.14'",
            "cdns": "'.cloudflare.com'",
            "cdns_by_names": "'Cloudflare'"
        }
    }
}
Domain processing completed.
1 domains had CDN's out of 1.

asciicast

ライブラリとしての使用

findcdn はモジュールとしてインストールできるため、その CDN 検出機能を任意のプロジェクトから呼び出して実装できます。まず、上記のように findcdn をプロジェクトにインポートします。次に、分析するドメインのリストを渡します。処理後、プログラムは入力されたドメインとそれらが使用する CDN を含む JSON オブジェクトを返します。

findcdn の動作方法は、渡されたオプションによって決まります。現在使用可能なオプションと例を以下に示します:

root@kitploit:~
findcdn.main(
    domain_list: List[str],  # List of domains to search
    output_path: str = None,  # if included, output results to JSON
    verbose: bool = False,  # Verbose mode (more printing!)
    all_domains: bool = False,  # Includes domains that dont have cdn's in the output
    interactive: bool = False,  # Includes a progress bar (normally used for command line)
    double_in: bool = False,  #D ouble the number of tries on a domain to increase accuracy
    threads: int = THREADS,  # Number of threads to use
    timeout: int = TIMEOUT,  # How long to wait on a domain
    user_agent: str = USER_AGENT,  # User Agent to use
)

例

root@kitploit:~
import findcdn
import json

domains = ['google.com', 'cisa.gov', 'censys.io', 'yahoo.com', 'pbs.org', 'github.com']
resp_json = findcdn.main(domains, output_path="output.json", double_in=True, threads=23)

dumped_json = json.loads(resp_json)

for domain in dumped_json['domains']:
    print(f"{domain} has CDNs:\n {dumped_json['domains'][domain]['cdns']}")

仕組み

findcdn は 3 つのセクションに分かれています:

  • findcdn のメインランナーファイル
    • 入力されたドメインを検証および整理します
    • ドメインのリストを使用して CDN Engine の使用を統括します
    • ドメインの CDN を JSON で標準出力および選択された場合はファイルに出力します
  • CDN Engine
    • すべてのドメインを「pot」に整理します
    • Chef は CDN Detection ライブラリを使用して各ドメインのすべての CDN を取得します
    • 次に Chef は分析を実行し、ドメインが CDN を持っていることを検出した場合にブール値の has_cdn 値を設定し、ドメインのリストをランナーファイルに返します
  • CDN Detection
    • 以下からデータをスクレイピングします:
      • HTTPS サーバーヘッダー
      • CNAME レコード
      • WHOIS データ
    • これらのそれぞれから、cdn_config.py で定義された CDN を識別するためにフィンガープリントスキャンを実行します。

履歴

このツールの当初の目的は、CDN を使用しているドメインがフロント可能かどうかを自動的に検出することでした。フロンティング検出のオーバーヘッドが大きいため、このツールの開発は CDN 検出 ツール専用に方向転換しました。Domain Fronting とは何か、調査ノート、設計上の決定、特定のドメインをフロントするためのプレイブックについて詳しく説明するために、wiki を使用しています。追加のフロント可能なドメインや現在のプレイブックの欠陥を見つけた場合は、貢献をご検討ください!

プロジェクト変更の概要

  • プロジェクトは CDN 検出 用になりました。
    • すべての CDN プロバイダーに対してフロント可能性を判断することは実行不可能でした。
  • リソース、ノート、プレイブックは、このリポジトリの wiki で利用できるようになりました。
  • フィードバック、改善、追加のプレイブックはいつでも歓迎します。

詳細情報

詳細情報は wiki ページにあります。プロジェクトや wiki に追加してほしいものがあれば、機能リクエストや貢献をお勧めします。

これは以下のいずれかになります:

  • Domain Fronting に関する情報
  • さまざまなドメインをフロントするためのプレイブック
  • CDN のより良い検出方法
  • 現在の wiki ページの一般的な更新

貢献

貢献を歓迎します! 詳細は CONTRIBUTING.md をご覧ください。

ライセンス

このプロジェクトは世界的にパブリックドメインです。

このプロジェクトは米国国内でパブリックドメインであり、 世界中の著作権および関連する権利は CC0 1.0 Universal パブリックドメイン 献呈を通じて放棄されています。

このプロジェクトへのすべての貢献は CC0 献呈の下でリリースされます。プルリクエストを送信することにより、 著作権利益の放棄に準拠することに同意したものとみなされます。

ツールをダウンロード