如何获取某个域的所有子域的列表? [已关闭]

问题描述 投票:0回答:8

我想找出给定域的所有子域。我发现了一个提示,告诉我使用以下选项挖掘权威名称服务器:

dig @ns1.foo.example example.com axfr

但这永远行不通。有谁有更好的想法/方法吗?

dns subdomain dig nameservers
8个回答
165
投票

提示(使用 axfr)仅在您正在查询的 NS(示例中的

ns1.foo.example
)配置为允许来自您正在使用的 IP 的 AXFR 请求时才有效;这不太可能,除非您的 IP 配置为相关域的辅助 IP。

基本上,如果您不允许使用 axfr,则没有简单的方法可以做到这一点。这是故意的,因此唯一的解决方法是通过暴力破解(即

dig a.example.com
dig b.example.com
,...),我不推荐这样做,因为它可能被视为拒绝服务攻击。


126
投票

如果您无法从 DNS 获取此信息(例如您未获得授权),则另一种选择是使用 Wolfram Alpha

  1. 在搜索框中输入域名并运行搜索。 (例如
    stackexchange.com

  1. 在顶部第三部分(名为“所有 stackexchange.com 的 Web 统计信息”)中,单击 Subdomains

  1. 在子域部分单击更多

您将能够在那里看到子域列表。虽然我怀疑它没有显示所有子域。


51
投票

您可以使用:

$ host -l example.com

在幕后,这使用了上面提到的

AXFR
查询。但您可能不被允许这样做。在这种情况下,您会收到一条
transfer failed
消息。


31
投票
  1. dig example.com soa
  2. dig @ns.SOA.example example.com axfr

8
投票

仅当您连接到域的 DNS 服务器并且为您的 IP 地址启用了 AXFR 时,您才能执行此操作。这是辅助系统用来从主系统加载区域的机制。在过去,这不受限制,但出于安全考虑,大多数主名称服务器都有一个白名单:辅助名称服务器+几个特殊系统。

如果您使用的名称服务器允许这样做,那么您可以使用 dig 或 nslookup。

例如:

#nslookup

>ls example.com

注意:由于 dig 和其他新工具已弃用 nslookup,因此某些版本的 nslookup 不支持“ls”,尤其是 macOS X 的捆绑版本。


7
投票

免费的 robotex 工具可以让你做到这一点,但它们会让你首先输入域的 IP:

  1. 找出IP(有一个很好的ff插件可以做到这一点,但我无法发布链接,因为这是我在这里的第一篇文章!)
  2. 在 Robotex 上进行 IP 搜索:http://www.robtex.com/ip/
  3. 在随后的结果页面中,单击您感兴趣的域>
  4. 您将进入一个列出所有子域以及大量其他信息(例如邮件服务器信息)的页面

6
投票

在 Windows 中

nslookup
命令是

ls -d example.com > outfile.txt

将子域列表存储在

outfile.txt

如今很少有域名允许这样做


5
投票

如果 DNS 服务器配置正确,您将无法获取整个域。如果由于某种原因允许来自任何主机的区域传输,您必须向其发送正确的数据包才能发出该请求。我怀疑这就是你所包含的挖掘声明的作用。

© www.soinside.com 2019 - 2024. All rights reserved.