如何获取域的所有子域列表?

cgi*_*cgi 223 subdomain dns dig nameservers

我想找出给定域的所有子域.我找到了一个提示,告诉我使用以下选项挖掘权威的Nameserver:

dig @ns1.foo.bar some_domain.com axfr
Run Code Online (Sandbox Code Playgroud)

但这永远不会奏效.有谁有更好的想法/方法

Tim*_*imB 142

提示(使用axfr)仅在您查询的NS(在您的示例中为ns1.foo.bar)配置为允许来自您正在使用的IP的AXFR请求时才有效; 这是不太可能的,除非您的IP配置为相关域的辅助IP.

基本上,如果你不允许使用axfr,就没有简单的办法.这是故意的,所以它周围的唯一方法是通过暴力破解(即dig a.some_domain.com,dig b.some_domain.com...),我可以不推荐,因为它可以作为服务拒绝攻击进行查看.

  • 我尝试了这个页面上的每个答案,没有任何效果.问题是受保护的,所以我不能添加另一个答案,但这个网站上的工具是唯一对我有用的工具:https://pentest-tools.com/reconnaissance/find-subdomains-of-domain (19认同)
  • @TimB我很确定域名中也不允许使用下划线,尽管它当然只是一个占位符名称. (8认同)
  • Netcraft解决方案:http://searchdns.netcraft.com/?restriction = site +contains&host = stackoverflow.com (6认同)
  • 正确的命令应该是:dig @ 123.456.789.123 DOMAIN.COM -t axfr (2认同)
  • @ACK_stoverflow - 这告诉我我有4个子域名,当我知道有超过100个子域名时 (2认同)
  • 我们如何检查域是否支持 AXFR 请求? (2认同)

小智 101

如果您无法从DNS获取此信息(例如,您未获得授权),则可以选择使用Wolfram Alpha.

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

Wolfram  - 主页

  1. 在顶部的第3部分(名为"所有stackexchange.com的Web统计信息")中,单击" 子域"

Wolfram  - 子域名按钮

  1. 在"子域"部分中,单击" 更多"

Wolfram  - 更多子域按钮

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

  • 它似乎不再起作用了,至少不像描述的那样. (31认同)
  • 只需使用谷歌"site:"搜索并将已知域添加为负匹配,直到它停止查找新域.例如,在域名`realtimerendering.com`上应用此策略几次之后,我的谷歌搜索看起来像这样:`site:realtimerendering.com - "www.realtimerendering.com" - "kesen.realtimerendering.com" - "erich. realtimerendering.com" - "advance.realtimerendering.com"` (17认同)
  • 或者你可以使用这个网站:https://pentest-tools.com/reconnaissance/find-subdomains-of-domain# (9认同)
  • 他们的子域信息似乎来自Alexa.com,例如http://www.alexa.com/siteinfo/stackoverflow.com (8认同)
  • 今天这对我有用,列出了我感兴趣的域名的6个子域名. (4认同)
  • 它似乎只有某些域名(如google.com)会提供[子域名]选项. (4认同)

小智 37

您可以使用:

$ host -l domain.com
Run Code Online (Sandbox Code Playgroud)

在引擎盖下,这使用AXFR上面提到的查询.但是你可能不被允许这样做.在这种情况下,您将收到一条transfer failed消息.

  • 对于 Windows 用户,您可以尝试“nslookup domain.com”。(`host` [在 Windows 上不可用](/sf/ask/1506413401/)) (2认同)

小智 27

  1. dig somedomain.com soa
  2. dig @ns.SOA.com somedomain.com axfr

  • 转移失败的任何建议? (12认同)
  • 如果禁用axfr,这当然不起作用. (12认同)

Mid*_*hat 7

在Windows中nslookup,命令是

ls -d somedomain.com > outfile.txt
Run Code Online (Sandbox Code Playgroud)

它将子域列表存储在outfile.txt中

现在很少有域允许这样做

  • "ls"是nslookup提示符中的有效命令.在CMD提示符下,首先输入nslookup,然后按照建议输入ls -d ...... (10认同)
  • LS?那不是*nix命令吗?不应该是nslookup -d somedomain.com> outfile.txt (6认同)

tec*_*ker 7

免费的robotex工具可以让你这样做,但它们会让你先进入域名的ip:

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


ben*_*enc 6

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

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

例如:

#nslookup

>ls domain.com
Run Code Online (Sandbox Code Playgroud)

注意:因为nslookup已被弃用于dig和其他newere工具,因此某些版本的nslookup不支持"ls",最值得注意的是Mac OS X的捆绑版本.


Ste*_*yer 5

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


Ale*_*leX 5

您可以使用此站点查找子域查找子域

此工具将尝试区域传输,并查询搜索引擎以查找子域列表.

  • 不工作..... (7认同)