【问题标题】:How do I get a list of all subdomains of a domain? [closed]如何获取域的所有子域的列表? [关闭]
【发布时间】:2016-11-01 04:30:48
【问题描述】:

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

dig @ns1.foo.bar some_domain.com axfr

但这永远不会奏效。有没有人有更好的想法/方法

【问题讨论】:

标签: dns subdomain dig nameservers


【解决方案1】:

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

基本上,如果您不允许使用 axfr,就没有简单的方法可以做到这一点。这是故意的,因此唯一的解决方法是通过蛮力(即dig a.some_domain.comdig b.some_domain.com,...),我不建议这样做,因为它可能被视为拒绝服务攻击。

【讨论】:

  • 正确的命令应该是:dig @123.456.789.123 DOMAIN.COM -t axfr
  • Netcraft 解决方案:searchdns.netcraft.com/…
  • 我尝试了此页面上的所有答案,但没有任何效果。这个问题是受保护的,所以我不能添加另一个答案,但这个网站上的工具是唯一对我有用的东西:pentest-tools.com/reconnaissance/find-subdomains-of-domain
  • @ACK_stoverflow - 这告诉我我有 4 个子域,当我知道有超过 100 个时
  • 我们如何检查一个域是否支持 AXFR 请求?
【解决方案2】:

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

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

  1. 在从顶部算起的第 3 部分(名为“stackexchange.com 的所有网站统计信息”)中,单击 子域

  1. 在子域部分点击更多

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

【讨论】:

  • 看来这不再起作用了,至少不像描述的那样。
  • 今天这对我有用,列出了我感兴趣的域的 6 个子域。
  • 他们的子域信息似乎取自 Alexa.com,例如alexa.com/siteinfo/stackoverflow.com
  • 只需使用 google “site:” 搜索并将已知域添加为否定匹配项,直到它停止查找新域。例如,在对域 realtimerendering.com 应用此策略几次后,我的 google 搜索看起来像这样:site:realtimerendering.com -"www.realtimerendering.com" -"kesen.realtimerendering.com" -"erich.realtimerendering.com" -"advances.realtimerendering.com"
【解决方案3】:

你可以使用:

$ host -l domain.com

在底层,它使用了上面提到的AXFR 查询。不过,您可能不被允许这样做。在这种情况下,您会收到transfer failed 消息。

【讨论】:

【解决方案4】:
  1. dig somedomain.com soa
  2. dig @ns.SOA.com somedomain.com axfr

【讨论】:

  • 如果传输失败有什么建议吗?
  • 如果 axfr 被禁用,这当然不起作用。
【解决方案5】:

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

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

【讨论】:

    【解决方案6】:

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

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

    例如:

    #nslookup
    
    >ls domain.com
    

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

    【讨论】:

      【解决方案7】:

      在 Windows nslookup 中,命令是

      ls -d somedomain.com > outfile.txt
      

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

      如今很少有域允许这样做

      【讨论】:

      • ls?这不是 *nix 命令吗?不应该是 nslookup -d somedomain.com > outfile.txt
      • "ls" 是来自 nslookup 提示符的有效命令。在 CMD 提示符下,先输入 nslookup,然后按照建议输入 ls -d ......
      • 我以管理员身份在 Windows 10 PowerShell 上运行 nslookup,然后运行 ​​ls -d somedomain.com > outfile.txt 并得到“无法识别的命令”。
      【解决方案8】:

      如果 DNS 服务器配置正确,您将无法获取整个域。如果出于某种原因允许从任何主机进行区域传输,则您必须向其发送正确的数据包才能发出该请求。我怀疑这就是您包含的 dig 语句的作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多