如何获取域的所有子域的列表?
我想找出给定域的所有子域。我发现了一个提示,告诉我使用以下选项来挖掘权威的名称服务器:
dig @ns1.foo.bar some_domain.com axfr
但这是行不通的。有谁有更好的主意/方法
解决方案
如果DNS服务器配置正确,则我们将无法获得整个域。如果出于某种原因允许从任何主机进行区域传输,则必须向其发送正确的数据包以发出该请求。我怀疑这就是我们包含的dig语句所做的。
在Windowsnslookup
中,命令是
ls -d somedomain.com > outfile.txt
它将子域列表存储在outfile.txt中
这些天来很少有域名允许
提示(使用axfr)仅在我们要查询的NS(示例中为ns1.foo.bar)配置为允许来自所使用IP的AXFR请求时有效;除非IP被配置为该域的辅助域,否则这几乎是不可能的。
基本上,如果不允许使用axfr,没有简单的方法可以做到这一点。这是有意的,因此解决该问题的唯一方法是通过蛮力(例如,dig a.some_domain.com,dig b.some_domain.com等),因为它可能会导致这种情况被视为拒绝服务攻击。
仅在连接到域的DNS服务器时才可以执行此操作-并且已为IP地址启用了AXFR。这是辅助系统用来从主系统加载区域的机制。在过去,这不受限制,但是由于安全方面的考虑,大多数主要名称服务器都有一个白名单:辅助名称服务器+几个特殊系统。
如果我们使用的名称服务器允许这样做,则可以使用dig或者nslookup。
例如:
#nslookup >ls domain.com
注:由于dig和其他较新版本的工具不建议使用nslookup,因此nslookup的某些版本不支持" ls",尤其是Mac OS X的捆绑版本。
dig somedomain.com soa
- dig @ ns.SOA.com somedomain.com axfr
免费的robotex工具可让我们执行此操作,但是它们使我们首先输入域的ip:
- 找出ip(有一个很好的ff插件可以做到这一点,但我无法发布链接cos,这是我的第一篇文章!)
- 在robotex上进行ip搜索:http://www.robtex.com/ip/
- 在随后的结果页面中,单击我们感兴趣的域>
- 我们将被带到列出所有子域的页面以及其他负载(例如邮件服务器信息)的页面
如果我们无法从DNS获取此信息(例如,我们未获得授权),则可以使用Wolfram Alpha。
- 在搜索框中输入域,然后运行搜索。 (例如
stackexchange.com
) - 在顶部的第3部分(名为"所有stackexchange.com的网络统计信息")中,单击"子域"
- 在"子域"部分中,单击"更多"。
我们将能够在此处看到子域列表。尽管我怀疑它不会显示所有子域。
我们可以使用此站点查找子域查找子域
该工具将尝试进行区域传输,并向搜索引擎查询子域列表。