- N +

如何扩大分布式环境中DNS服务攻击面!

  我目前在RCNTEC公司工作,每天都会与分布式环境打交道。每当我不得不使用ISC BIND来实现DNS服务时,我就会问自己是否只有用于域名的NS服务器同时也被当做该域名的DNS服务器?“yandex.ru”域名的DNS区域是否只有两个名称服务器,同样,“这个域名是否也只有四个名称服务器呢?

  很显然,事实并非这样。我认为很多拥有互联网服务的公司已经通过负载均衡,防火墙或者某种反向代理服务分散了它们的DNS基础设施。

  但是,我们该如何解决这个谜题,并得到有关后端DNS服务器的一些信息呢?现在是时候跟随我的思路,深入了解一下DNS。

  你可以点击这里阅读更多关于Chaosnet的信息。换句话说,这是另一种处于ISO OSI第三层的网络协议。关于DNS,Chaosnet被认为是类似于IN(互联网)和HS(Hesiod)这样的网络类之一(代码为CH )。

  Chaosnet很有趣,因为CH类经常被用于服务区域的“bind.”,它包含了一些关于DNS服务器的有用信息。我想你应该知道version.bind的记录,通过该记录你可以确定DNS服务器的版本。

  我们可以获得DNS服务器版本信息,但是我们仍然无法枚举中继器后面的DNS服务器。另外,很多系统管理员都知道这个“特性”,并且他们也知道如何修复这个问题并隐藏DNS服务器版本。

  即使我们的目标系统管理员没有修补DNS域的“bind.”记录,我们也无法枚举DNS 这只是版本信息,而不是IP或任何类似的东西。

  TXT记录“hostname.bind”是CH区域“bind”中可用的另一条记录。我们来看看,如果我们从DNS服务器上请求这个记录会发生什么:

  不错!我们得到了服务器的主机名。在我所演示的这种情况中,主机名只是内部服务器的名称,但是在分布式环境中会是什么呢?

  我的经验表明,为了部署的方便,服务器主机名与他们的外部DNS名称相等的情况非常普遍。那么在这种情况下,获得了主机的内部主机名称,也就获得了该主机的外部DNS名称。我们可以简单地解析一下主机的外部DNS名称来获得服务器的IP地址。

  我写了一个小工具 ,通过运行“dig”来确定DNS服务器的版本和主机名,并解析收到的主机名。

  从上图中你可以看到,在31.177.85.186后面只有一个DNS服务器。事实上,我们只是通过IP 31.177.85.194和名称“ns9-1.nic.ru”扩大了我们的测试范围。

  哈哈!我们完全列举出了放在公共机器后面的Yandex后端的DNS服务器。我们可以请求主机名并解析出它们的IP地址。

  在请求Yandex的DNS服务器所发现的主机都被防火墙所保护,所以我无法直接与这些服务器直接通信。但我试图对其他几家公司执行unhidens脚本后,有时我会看到一些存在漏洞的DNS软件版本的机器,甚至有开放TCP 53端口的机器。

  另外,请记住“bind.”域并不仅仅是ISC BIND的功能,我看到很多不同的DNS服务器均受到这种信息泄露的影响。

  这不是一种隐藏DNS服务器版本信息和主机名的最简单的方法,但是使用此配置,你可以将记录所有的 “bind.” 请求行为, 这样你可以跟踪所有试图请求有关你的机器的敏感信息的客户端来进行攻击分析和攻击溯源。

  ①本网所有内容均来自互联网或网友投稿,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。

  ②如相关内容涉及版权等问题,请在作品发表之日起一周内与本网联系,我们将在您联系我们之后24小时内予以删除,否则视为放弃相关权利,读者热线 。

返回列表
上一篇:
下一篇:
评论列表 (暂无评论,共461人参与)

还没有评论,来说两句吧...

发表评论

验证码