黑基网 首页 学院 网络安全 查看内容

通过伪造DNS响应绕过域名所有权验证

2017-9-16 09:13| 投稿: xiaotiger |来自: 互联网

摘要: 当用户需要使用Detectify来扫描一个网站时,我们必须先验证他对这个域名的所有权(几乎所有的在线扫描都有这种验证)。其中的一种验证方式是在DNS的TXT记录中增加Detectify提供的字符串。当用户点击验证时,Detectif ...

译者:testvul_001

预估稿费:120RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

前言:


我们的客座博主和Detectify众包团队黑客Evgeny Morozov将在本文中解释他是如何通过伪造DNS响应来绕过Detectify的域名所有权验证的。非常感谢Evgeny的突出贡献—众包团队中有这样的研究者很令人感到自豪。

当用户需要使用Detectify来扫描一个网站时,我们必须先验证他对这个域名的所有权(几乎所有的在线扫描都有这种验证)。其中的一种验证方式是在DNS的TXT记录中增加Detectify提供的字符串。当用户点击验证时,Detectify会执行一个DNS检查来确认是否存在验证字符串。下面我们来看看如果验证一个你并不拥有的域名会发生什么。

DNS 伪造背景


DNS查询和响应通常都是通过UDP协议传输的,所以IP地址伪造可以让查询客户端认为攻击者所发的DNS响应是来自于正常DNS服务器的。当然查询客户端只会接受明显符合要求的响应,下面的几个项目必须符合要求:

1、源IP地址(DNS服务器)

2、目的IP地址(DNS客户端)

3、源端口(DNS服务器)-通常是53

4、目的端口(DNS客户端)-DNS请求的源端口

5、Transaction ID- 客户端产生的16 bit数字

6、Questions-本质上是复制的DNS查询请求

源地址和端口以及目的IP都是已知的,DNS “question”可以猜出来,或者从一个攻击者可以访问的地方复制一个真实的查询。现在唯一不能确定的就是目的端口和Transaction ID了。

九年前很多DNS客户端修复了可以预测源端口和Transaction ID的漏洞。猜测一个16bit的数字是完全可行的—因为只有65536种可能,攻击者完全可以在真实的DNS响应到达前给DNS客服端发送成千上万的假响应包。2008年的7月Dan Kaminsky披露了这个问题。随后DNS维护方就用完全随机的Transaction ID和端口修复了这个问题。所以这种攻击已经过时了,那么真是这样吗?

通过验证


我有一种预感,为了避免得到缓存数据,Detectify会执行自己的DNS查询,而不仅仅是使用系统的DNS解析工具。如果这样的话,它就仍可能还在使用可预测的Transaction ID和小范围的源端口。

为了测试我通过dnsmasq为我控制的域名搭建了一个简单域名服务器,并且在进行Detectify验证的时候抓了多次包。使用Wireshark打开抓的包,可以发现来自scanner.detectify.com的dns查询请求。源端口看起来是足够随机了,但是Transaction ID是不是有问题呢?

事情简单了!!!


Transaction ID每次都是0,现在我准确的知道Detectify发出的DNS查询,所以伪造一个正确的DNS响应的唯一问题就是源端口。

POC


尽管现在我已经可以报告漏洞了,但是我想确定它是可利用的。一个理论漏洞和可利用的漏洞还是有差别的。

下面我们尝试验证example.com。创造一个伪造的DNS响应payload很简单:首先用tcpdump抓取一个真实的响应,然后手工改变域名。Nping工具可以用来发送这个响应并伪造原地址和端口:

上面的命令尝试尽可能快的发送伪造的DNS响应给scanner.detectify.com,它声称来自于199.43.133.53(example.com的真实域名服务器),设置的源端口范围在30000到39999。下面需要做的就是在我的笔记本上运行上述命令,并且在Detectify的网站上疯狂的不停的点击验证按钮。

事实上现在所有的ISP和数据中心都会在出口过滤伪造的数据包—防止它们离开自己的网络,并且有很好地理由。伪造的数据包最常见的用途是DDOS攻击,特别是DNS反射放大攻击。所以我需要一个不会做过滤的主机,并且攻击机和受害者之间的延迟必须尽可能的低,以提高伪造的响应在真实的响应之前到达的概率。

如何找到这样的一个主机就留给读者作为练习了。但是现在我可以自豪的说我已经是6个虚拟服务器的主人了,虽然其中的5个并没有什么卵用(所幸它们都很便宜)。在疯狂的点击Detectify网站的验证按钮后,我们终于得到了下面的提示:

成功了!

总结:


Detectify在报告后的三小时内修复了漏洞。

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:http://www.toutiao.com/a6465921882574029326/

免责声明:本文搜集整理自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,请我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


新出炉

返回顶部