0

我想进行一个实验,我需要一个包含 Internet 上所有 DNS 条目的完整数据库。

扫描 Internet 并获取所有 DNS 条目是否可行?限制是什么:存储、时间或网络带宽?有什么好的方法可以开始吗?(我总是可以蛮力扫描 IP 空间并进行反向 DNS 查找,但我想这不是这样做的有效方法)

4

1 回答 1

2

下载 RIPE 或 ARIN 之类的数据库不会为您提供所需的反向 DNS 条目。事实上,您只会得到自治系统和解析这些范围的 DNS 服务器。没有其他的。检查这个: ftp: //ftp.ripe.net/ripe/dbase/ripe.db.gz

反向 DNS 查询只会获得所有 DNS 条目的一小部分。事实上,没有人可以拥有它们,因为大多数域名不接受 AXFR 请求,并且在某些国家可能被认为是非法的。要访问 .com/.net/.org 域名的完整列表,您可能是 ICANN 或 ICANN 经销商,但您永远不会获得其他不公开的 TLD(几个国家/地区)。

然后,最好的方法是暴力破解所有反向 IP 解析 + 成为像谷歌这样的互联网巨头来设置你自己的公共 DNS + 尝试对你能够检测到的每个域名执行 AXFR 请求。

混合所有这些选项是获得所有 DNS 条目的重要部分的唯一方法,但绝不是 100%,可能不超过 5 到 10%。忘记使用暴力破解 whois 服务器来获取域名列表。他们的条款和条件禁止这样做。

我们现在正在暴力破解 reverse-ipv4-resolution,因为它是唯一合法的方式来做到这一点,而不是谷歌。我们是 2 周前开始的。

经过两周的调整,我们已经完成了 20% 的互联网。我们开发了一个 python 脚本,从几个不同的节点启动数千个线程并行扫描 /24 范围。

它比 nmap -sL 快得多,但它不如 nmap 可靠,所以我们需要“第二次通过”来填补我们得到的空白(大约 85% 的 IP 在第一次尝试时得到解决)。必须执行定期重新扫描以获得完整且一致的数据库。

现在我们有几台服务器在每个节点上以 2mbps 的 DNS 查询速度运行(每个节点上每秒 300 到 4000 次查询,主要取决于我们的服务器和远程 DNS 之间的 RTT)。

我们预计在大约 30 天内完成所有 IPV4 条目的第一次通过。

我们存储初步结果的文本文件对于每个“A 类”范围(即 111.0.0.0/8)平均有 3M 条目。这些文件只是“IP\tname\n”,我们只存储解析的 IP。

我们需要在每台服务器上配置 DNS,因为我们影响了提供商的 DNS 服务,它阻止了我们。事实上,我们在不同的 DNS 服务器上进行了一些基准测试。忘记 Bind,它太重了,你几乎不会得到超过 300 个分辨率/秒。

一旦我们完成扫描,我们将发布一篇文章并共享数据库:)

在 Twitter 上关注我:@kaperuzito

我们已经得出的一个结论是,人们可能会对他们在 DNS PTR 条目中输入的名称三思而后行。您不能将 IP 命名为“payroll”、“ldap”、“intranet”、“test”、“sql”、“VPN”等等……而且有数百万个 :(

于 2013-09-09T08:40:17.093 回答