如何找到指向特定地址的 cname 列表?

如何找到指向特定地址的 cname 列表?

我正在进行安全实验,需要识别指向特定子域的域。我想知道是否有办法在某个列表中找到所有域的 cname?

或者我必须挖掘整个 .com 列表,并通过 grep 查找 cname 的每个实例?

答案1

我想知道是否有办法在某个列表中找到所有域名的 cname?

不。没有正确的方法。CNAME 条目存储在区域文件中,而区域文件存储在不同的名称服务器中。并且没有通用的方法可以从名称服务器获取整个区域文件。除非您有权访问全部世界上所有的名字服务器,你都找不到全部指向域的 CNAMES(显然您不能拥有)。

或者我必须挖掘整个 .com 列表,并通过 grep 查找 cname 的每个实例?

即使您下载了 TLD 的区域文件(是的,这是可能的:http://jordan-wright.com/blog/2015/09/30/how-to-download-a-list-of-all-registered-domain-names/),您将获得的只是用于所有二级域名的名称服务器列表。然后,您需要遍历列表中的每个名称服务器并递归请求其区域文件,在大多数情况下,它们不会提供区域文件。


对于您来说,一个可行的解决方法是记录用户的活动。

  • particular subdomain如果您是需要 CNAME 的所有者并且该服务器上托管着一个 Web 服务器,那么您可以HOST在 HTTP 请求中记录标头以获取可能的 CNAME 条目。

  • 如果您是网络的网络管理员(即您有权访问本地 DNS 服务器),您可以记录所有解析为所需 CNAME 的 DNS 查询。

答案2

作为最终用户,如果名称服务器未正确设置,您将无法通过 DNS 获取所有资源记录的列表(我认为这就是您所要求的)。

如果域名设置不正确(或者您有提升的权限,我认为您没有),您可以执行“区域传输”,它将转储区域的内容 - 看看这里但在 Linux 下,它就像执行 dig axfr domain.name @dns.server.name 一样简单

如果您有权访问该框或可以拦截“特定子域”的网络流量,并且目标流量是“http”,则可以嗅探 http 标头以获取请求列表(如果您运行 Web 服务器,则可以创建一个日志文件来生成此信息,您可以通过它进行搜索)

最后,如果您有一个域列表,并且知道要为每个域查找的子域,则可以编写一个脚本来查询每个域的子域,并记录下来。(但我怀疑这不是您要问的?)

相关内容