我想求出给定定义域的所有子定义域。我发现了一个提示,告诉我挖掘权威的Nameserver与以下选项:

dig @ns1.foo.example example.com axfr

但这从来都行不通。有没有更好的主意/方法


当前回答

你可以使用:

$ host -l example.com

在底层,它使用上面提到的AXFR查询。但是你可能不被允许这样做。在这种情况下,您将收到一个传输失败的消息。

其他回答

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

在Windows nslookup中,该命令为

ls -d example.com > outfile.txt

哪个存储子域列表在outfile.txt

现在很少有域名允许这样做

如果你不能从DNS中获得这些信息(例如,你没有被授权),那么另一种选择是使用Wolfram Alpha。

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

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

在子域部分单击更多

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

提示(使用axfr)只适用于你正在查询的NS (ns1.foo。配置为允许来自您正在使用的IP的AXFR请求;这是不太可能的,除非您的IP被配置为相关域的次要IP。

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

挖掘example.com soa 挖掘@ns SOA。example example, com轴