在我将漏洞提交给Guatemala的DNS管理员之后,他们已经打好补丁(而且用超快的速度回复)
为了寻找更有趣和高效的DNS 漏洞,我决定开始研究各种顶级域名和分析他们的配置错误。在一些初步的搜索后,我发现了一款叫做DNSCheck的开源服务软件—帮助管理员扫描他们域名中的错误配置,是由在瑞士的互联网基金会开发的。这个工具可以帮助指出各种类型的ODD错误配置,例如授权域名服务器域名目录不匹配--授权域名服务器和父域里设置的TLD域名服务器不匹配((引起这种问题的原因在“通过劫持DNS解析服务器攻击目标”这篇文章中可以看到)尽管这些域名有配置错误,但是它并没有明确指出漏洞在哪里。
截至这篇文章发表 前,总共有1519 顶级域名。我选择写一个脚本来自动扫描所有的TLD而不是手动的一个一个扫描。这个脚本的输出结果可以在我的Github TLD Health Report 底下找到。这个脚本是用来查找有严重配置错误的TLD。在花一到两个小时重新查看这些有配置错误的TLD,我在“.gt”顶级域名上发现了一个有趣的问题.gt TLD.这个错误可以在Github网页中看到,就像下面这样:
Soa Scan
Errors:
· No address found for maestro.gt. No IPv4 or IPv6 address was found for the host name.
Warnings:
· Error while checking SOA MNAME for gt. (maestro.gt). The SOA MNAME is not a valid host name.
Notices:
· SOA MNAME for gt. (maestro.gt) not listed as NS. The name server listed as the SOA MNAME is not listed as a name server.
…trimmed for brevity…
从上面我们可以看出,域名_maestro.gt_is有许多错误和警告状态,而且无法路由错误,并且“.gt”顶级域名在主机域名服务器(MNAME)的是无效的。通过以下挖掘命令,我们可以看到这些配置在运行:
从以上我们可以看出,我们收到一个NXDOMAIN错误(因为我们请求的域是不存在的),同时我们得到一个maestro.gt域名作为主名称服务器的SOA记录。因此,在“.gt"TLD下任何对不存在的域请求都会返回一个带有这个域名的SOA记录。
“无法解决”用另一种说法就是“现在还没解决”
如果你看过我先前写过的关于DNS漏洞文章,你就可能猜到为什么这个域的问题还没解决。这是因为这个根本不存在!这个说明,它也是可以开发注册的。稍微搜索一下或谷歌翻译,我发现可以从“Registro de Dominios.gt”注册。花大概60美元(最少要注册两年)。
你会相信可以用信用卡?
虽然有点贵,但比起许多中美洲的TLDS注册,这很快而且是全自动的。唯一的不足就是我的信用卡因为这个有问题的激活被冻结了,为了注册仍能顺利进行,我不得不在线解冻:
很显然,在1:30AM买一个Guatemalan域名是被冻结的原因。
流量监测
由于SOA MNAME是一种复杂的DNS,我无法预测DNS流量中有什么。因为不确定随便搜索一下什么样类型的DNS客户端或者服务可以在这次检测中拿来利用,所以,我配置了我的Bind DNS服务器来应答.gt下所有域名对A记录的请求,并根据我的赋予其IP过滤出所有数据包。我设置了tcpdump将所有的DNS流量打包成一个pcap文件,用来接下来的分析,先让这个工具跑一个晚上。
早上的时候,我发现大大出乎我的意料,当我查看PCAP数据时,我发现来自Guatemala全国的电脑发送了DNS查询请求到我的服务器:
这世界正发生着什么?进一步观察结果,只会产生更多的困惑:
大部分DNS UPDATE请求的流量来自于内部IP地址。上面是一个DNS UPDATE流量请求的例子,正在尝试更新我的DNS服务器的区域,目的是为了在内部的LDAP服务器中更新SRV记录,这个服务器是属于Guatemala政府的一个随机网络。
① 2000多本网络安全系列电子书② 网络安全标准题库资料③ 项目源码④ 网络安全基础入门、Linux、web安全、攻防方面的视频⑤ 网络安全学习路线图私信“安全”免费获取
,