Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PolarDNS — PolarDNSは、ペネトレーションテストや脆弱性調査に適した特殊な権威DNSサーバーです。 | Kitploit
ツール/GitHubGitHub/oryxlabs/polardns
脆弱性スキャナー脆弱性分析ファジングネットワークセキュリティペネトレーションテストDNS分析
GitHuboryxlabs/polardns

PolarDNS

PolarDNSは、ペネトレーションテストや脆弱性調査に適した特殊な権威DNSサーバーです。

リポジトリを見る
249191年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト
PolarDNSロゴ PolarDNS は Python 3.x で書かれた特殊な権威 DNS サーバーで、もともとはサーバー側から DNS 再帰リゾルバーのセキュリティテストを行うためのツールとして開発されました。

これにより、オペレーターはカスタム DNS 応答を生成でき、詳細な DNS プロトコルテストに適しています。

_

PolarDNS は以下のテストに使用できます:

  • DNS リゾルバー(サーバー側)
  • DNS クライアント
  • DNS ライブラリ
  • DNS パーサーおよびディセクター
  • DNS 情報を扱うあらゆるソフトウェア

UDP と TCP の両方のプロトコルをサポートし、オペレーターは DNS プロトコル層を完全に制御できます。

PolarDNS サーバーは、非標準および非準拠の DNS 応答、RFC 仕様に違反する DNS 応答、極めて異常で不正な形式の DNS 応答などを生成できます。

これは以下の用途に役立ちます:

  • 機能テスト
  • RFC 準拠性
  • 脆弱性調査

インストール

PolarDNS をインストールするには、3 つの方法があります。

PolarDNS には Python 3.11 以降が必要であり、追加の依存関係はありません。

方法 1: Pip によるインストール

これが PolarDNS をインストールして実行する最も簡単な方法です:

root@kitploit:~
pip install polardns
polardns

方法 2: 従来のインストール

リポジトリをクローンして PolarDNS を直接実行することもできます:

root@kitploit:~
git clone https://github.com/oryxlabs/PolarDNS.git
cd PolarDNS
python polardns.py

この方法は、コードのデバッグや修正、新機能の追加を計画している場合に推奨されます。

方法 3: Docker での PolarDNS の実行

PolarDNS を Docker コンテナ内で実行することもできます:

root@kitploit:~
docker run -p 53:53/tcp -p 53:53/udp oryxlabs/polardns

PolarDNS の実行

PolarDNS サーバーは polardns/polardns.toml 設定ファイルで構成できます。

  • テスト目的の場合、デフォルトの設定でローカル実行は問題なく動作します。
  • ただし、ドメインとネームサーバーの IP アドレスを追加して設定を調整したい場合があります。

PolarDNS を起動すると、次のような出力が表示されるはずです:

root@kitploit:~
python polardns.py
1741599804.9039893 | PolarDNS v1.6.1 サーバー起動中
1741599804.9039893 | '/path/to/your/polardns/polardns.toml' 設定ファイルを使用中
1741599804.9039893 | tcp://0.0.0.0:53 でリスナーを起動中
1741599804.9039893 | udp://0.0.0.0:53 でリスナーを起動中

これはサーバーが起動して実行中であることを示します。

PolarDNS の操作

デフォルトでは、サーバーはすべてのインターフェース上で UDP および TCP ポート 53 (0.0.0.0:53) で待機し、DNS クエリに応答する準備ができています。

次のサンプルクエリをローカルでテストできます。これは常に何かに解決されるはずです。

UDP モードで問い合わせ:

root@kitploit:~
dig always.yourdomain.com @127.0.0.1

TCP モードで問い合わせ:

root@kitploit:~
dig always.yourdomain.com @127.0.0.1 +tcp

2.3.4.5 IP アドレスを持つ A レコードが返されるはずです。次のスクリーンショットと同様です:

PolarDNS使用例

これはサーバーが正しく動作していることを示します。

主要なコンセプト

PolarDNS サーバーに何かを解決するよう依頼することは、実質的にサーバーに対してどのように応答すべきかの指示を与えることになります。つまり、クライアントであるあなたが PolarDNS サーバーにどのような応答を生成させるかを決定します。

例えば、次のクエリを考えてみてください:

root@kitploit:~
dig always.ttl2000000000.slp1500.yourdomain.com @127.0.0.1

再び 2.3.4.5 IP アドレスを持つ A レコードが返されるはずですが、今度は TTL 値が 2,000,000,000(63.4 年)で、1.5 秒の遅延後に応答が返されます:

PolarDNSカスタムTTLとレイテンシ

上記の例では、always 基本機能(常に何かに解決)を使用し、ttl モディファイアで TTL 値を調整し、slp モディファイアで応答送信前に待機するように組み合わせました。

PolarDNS の機能

PolarDNS には以下の主要な機能があります:

  1. 機能: さまざまな DNS 応答を生成できます。ほとんどの機能にはパラメータがあり、動作を調整してさまざまな DNS 応答を生成できます。
  2. 応答モディファイア: PolarDNS サーバーからの DNS 応答をさらに変更できます。モディファイアは選択した機能に依存せず、自由に組み合わせられます。

現在、70 を超える機能と 19 の応答モディファイアが実装されています。異なる機能と応答モディファイアを組み合わせることで、無数の応答バリエーションを生成できます。

実装されているすべての 機能 と 応答モディファイア の カタログ をご覧ください。

これにより、PolarDNS は非常に異常で、異常かつ不正な形式の DNS 応答を生成でき、受信側がそのような状況をどのように処理するか、また受信側が技術的に堅牢で成熟しているかを確認できます。

PolarDNS が生成できる DNS 応答の例には以下が含まれます:

  • エイリアス (CNAME) チェーンとエイリアスループ
  • DNS ヘッダーの不正な形式 (ID、フラグ、セクション数)
  • 未承諾レコードの注入 (キャッシュポイズニング)
  • 任意の長さの任意のバイト列の注入
  • 不完全 / 空 / NULL バイト応答
  • 圧縮の問題 (ループ、無効なポインタ)
  • 低速で送信されるチャンク応答
  • 不正なラベルまたはドメイン名の長さ
  • 任意のサイズの任意の数の TXT レコード
  • パケット長の操作 (TCP)
  • 等

これらは、次のようなさまざまな脆弱性の発見につながる可能性があります:

  • Sloth domain 攻撃
  • Phantom domain 攻撃
  • Domain lock-up 攻撃
  • キャッシュポイズニング
  • リソース枯渇
  • クラッシュ、DoS

詳細、さらに多くの例とユースケースについては、BlackHat MEA 2023 のプレゼンテーション(BONUS スライドを含む)をご覧ください。

再帰 DNS リゾルバーのテスト

再帰 DNS サーバーのテストを開始するために必要なものの概要を以下に示します。

  1. 任意のドメインレジストラを使用して、テスト用のドメイン(例:example123.com)を購入します。
  2. 公開静的 IP アドレスを持つ 2 台の Linux VPS インスタンスを取得します。これらがネームサーバーになります。
  3. 両方のインスタンスに PolarDNS サーバーをデプロイします。
  4. 各インスタンスで polardns/polardns.toml 設定ファイルを編集し、ドメイン名とネームサーバーの IP アドレスを適宜変更します(両方で同じ設定)。
  5. ドメインレジストラで、独自のネームサーバーを使用してドメインを管理するオプションを選択します。プライマリおよびセカンダリ NS を指定します。インスタンスの IP アドレスを提供します。

これで、任意の再帰 DNS リゾルバーをテストするためのインフラストラクチャが整いました。

テストプロセスの内訳

ターゲット DNS リゾルバーのテストを開始するには、クエリをターゲット DNS リゾルバーに向ける必要があります。例:

root@kitploit:~
dig always.example123.com @<TARGET-RESOLVER-IP>

例えば、CloudFlare のパブリック DNS をテストする場合:

root@kitploit:~
dig always.example123.com @1.1.1.1

解決中、ターゲット DNS リゾルバーは、クエリを解決するためにあなたの権威ある PolarDNS ネームサーバー(example123.com テストドメインを管理)に接続します。

PolarDNS サーバーの 1 つがターゲット DNS リゾルバーに応答します。リゾルバーは PolarDNS からの応答を受信、解析、処理し、最終的な回答をクライアント(あなた)に返します。

テストプロセスの視覚的な概要: PolarDNSを使用したDNSリゾルバーのテスト

DNS リゾルバーに example123.com ドメインのさまざまなサブドメインを解決するように指示することで、DNS リゾルバーの動作を効果的にテストし、さまざまな予期しない状況(応答)をどのように処理するかを確認できます。

例えば、不正な形式の DNS 応答、注入されたレコードを含む応答、不正な文字を含むレコードを取得した場合、リゾルバーはどのように処理し、最終的にクライアントにどのような回答を送信するのでしょうか?

GitHub Actions による自動 E2E テスト

PolarDNS はさまざまな DNS リゾルバーと統合して、包括的なエンドツーエンド(E2E)DNS サーバーテストスイートを実行できます。

この統合は GitHub Actions によって実現され、現在以下の 6 つの DNS リゾルバー用のリファレンステンプレート(ワークフロー)が利用可能です:

  • BIND9 (e2e-bind9.yaml)
  • CoreDNS (e2e-coredns.yaml)
  • Dnsmasq (e2e-dnsmasq.yaml)
  • Knot Resolver (e2e-knot-v5.yaml, e2e-knot-v6.yaml)
  • PowerDNS (e2e-powerdns.yaml)
  • Unbound (e2e-unbound.yaml)

GitHub Action がトリガーされると(例:コミット時または手動)、ワークフローは次の手順を実行します:

  1. 選択した DNS リゾルバーを Docker コンテナで起動します
  2. 別の Docker コンテナで PolarDNS を起動します
  3. 選択したリゾルバーを PolarDNS に接続します
  4. 選択した DNS リゾルバーに対して E2E テストスイートを実行します

独自の E2E テストを追加するには、test-e2e/ ディレクトリに配置するだけです。

フル機能の DNS サーバー E2E テストスイートをお探しですか? [email protected] までお問い合わせください。

新機能の追加

PolarDNS に新機能を追加することは、真に新しい DNS 問題を発見するために不可欠です。そして PolarDNS を使用すれば、比較的簡単にそれができます。

PolarDNS を使用すると、新しい機能を迅速に追加したり、アイデアを試したり、独自の DNS サーバーを構築せずに PoC を開発したりできます。必要なのは Python コードを理解する能力と、DNS プロトコルを実験する好奇心だけです。

詳細なステップバイステップのコントリビューションガイドが用意されており、新しい機能の追加方法だけでなく、PolarDNS のデバッグ方法、問題の報告、アイデアの共有なども記載されています。

リンク

PolarDNS を試す際に役立つ優れたリソースをいくつか紹介します。

DNS プロトコル関連リンク:

  • https://en.wikipedia.org/wiki/List_of_DNS_record_types
  • https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml

DNS サーバー:

  • https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software
  • https://www.lifewire.com/free-and-public-dns-servers-2626062

クレジット

PolarDNS に貢献してくださったすべての皆様に感謝します! ❤️

ツールをダウンロード