导语:众所周知,DNS是网络工作的基础,网络上的所有内容都由DNS域名访问。本文中将讲述ISP是做什么用的。

众所周知,DNS是网络工作的基础,Web上的所有内容都由DNS域名访问。

最初,DNS是在视为不必要事项的时候构建的,所以这是一种旧协议(创建日期为1987年11月)。不要与DNSSEC(DNS安全扩展)相混淆,DNSSEC的目的是验证DNS响应没有被篡改。

因为查询未在DNS中加密,所以它们对于用户和解析器之间的网络设备是可见的,并且在通常情况下,人们都会在其内部网络中使用外部解析器(通常是未命中传递的DNS查询缓存到ISP DNS解析器)或在外部网络使用外部解析器(请参阅8.8.8.8 / 9.9.9.9 / 1.1.1.1和其他的IP地址)。

很多“威胁情报”都是依赖DNS数据进行研究的,因此公司内部的安全团队通常会记录DNS查询数据,以便他们可以在以后查找相关事件。

然而,为了使这些数据具有意义,研究人员需要野外真实的系统数据。这时他们则会求助于大型公司,通过那些大型解析器得到数据并记录下来。

1.png

如图所示,下游客户的数据会发送给第三方来源,他们通常会负责让研究人员访问数据。

那么ISP是做什么用的呢?我们怎么能找到它?

您只需要访问每个打开的DNS解析器就可以获得与ISP本身绑定的查询!毕竟,IPv4互联网仅有350万个可路由地址!

因此,在18个小时内,我的服务器每秒向随机互联网主机发送50,000个DNS数据包。

2.png

为了使这个设置生效,我为这个实验买了一个新的域名,并且每个ASN都为该ISP生成了一个特定的DNS查询。在发送端,我放弃了任何响应,只听取了返回到我的DNS域名服务器的查询:

3.png

我的想法是,我碰到的这些解析器实际上只是上游到它们本地ISP解析器的缓存。从入站查询的结果中,我可以看到ISP使用什么将查找发送到我的名称服务器。发送给家庭ISP的查询,会导致从Google到达的域名服务器查询提示8.8.8.8,从cloudflare到达的查询会提示1.1.1.1,或者来自ISP本身的查询会表明它是ISP查询的本地基础架构。

另外,我们可以在开放平台上查看收获的子域名:

4.png

这些ASN和他们的解析器之间似乎没有直接联系。

另外一个有趣的现象,即使在扫描完成后,我还会收到查询,就好像我还在向一些ISP发送数据包。我管这些叫“僵尸查询”。

举个例子:

我向比利时的Telenet发送了200万次查询,并且返回了416次查询至我的域名服务器。然而,经过扫描后,我收到了来自南非ISP的4个查询:

5.png

这就特别奇怪了,因为最后3个查询是针对不同的DNS类型的。因此,我必须处理发送给比利时Telenet的查询,并进一步翻查我的子域名。

但我觉得这并不意味着Telenet已经把数据卖给了第三方,然后在南非重新查询,它有可能是一位配置了另一个上游DNS提供商的客户。

如下表格是我整理的数据,您可以输入ISP名称或AS号码:(点击这里可在原文中输入

6.png

您也可以在https://github.com/benjojo/dns-spies找到我为此编写的相关工具。

如果您对我的文章感兴趣,欢迎关注我的推特或者RSS

源链接

Hacking more

...