定义:DNS欺骗是攻击者伪装成域名服务器的一种欺骗行为。
原理:如果你可以模拟域名服务器,将查询到的IP地址设置为攻击者的IP地址,那么用户只能在Internet上看到攻击者的主页,而不能看到用户想要获得的网站主页,这是DNS欺骗的基本原理。域名系统欺骗并不是真正的“黑幕”对方的网站,而是冒名顶替,欺诈而已。
Internet上的大多数DNS服务器都是用bind设置的。使用的绑定版本主要是绑定4.9.5+P1之前和绑定8.2.2-p5之前。这些绑定的共同特点是bind将缓存所有已查询的结果。此问题导致以下问题
1> .DNS欺骗
在DNS缓存过期之前,如果DNS缓存中存在现有记录,一旦有客户查询,DNS服务器将直接返回缓存中的记录。
下面是一个例子:
运行UNIX的Internet主机提供rlogin服务。它的IP地址是123.45.67.89。它使用的DNS服务器(即/etc/resolv.conf中指向的DNS服务器)的IP地址为98.76.54.32。客户端(IP地址为38.222.74.2)尝试连接到UNIX主机的rlogin端口。假设在UNIX主机的/etc/hosts.equiv文件中使用DNS名称以允许目标如果主机访问,则UNIX主机将向IP为98.76.54.32的DNS服务器发送PTR记录查询:
123.45.67.89->98.76.54.32[查询]
NQY:1南:0北:0北:0北:0
问题:2.74.222.38.in-addr.arpa PTR
IP为98.76.54.32的DNS服务器没有此反向查询域的信息。查询后,DNS服务器发现IP为38.222.74.2和38.222.74.10的权威DNS服务器为74.222.38.in-addr.arpa。所以它会将PTR查询发送到38.222.74.2:
98.76.54.32->38.222.74.2[查询]
NQY:1南:0北:0北:0北:0
问题:2.74.222.38.in-addr.arpa PTR
请注意,38.222.74.2是我们的客户IP,也就是说,这台机器完全掌握在我们手中。我们可以更改其DNS记录以返回所需的结果:
38.222.74.2->98.76.54.32[答:]
NQY:1南:2北:2北:2北:2
问题:2.74.222.38.in-addr.arpa PTR
地址:2.74.222.38.in-addr.arpa PTR trusted.host.com
安:trusted.host.com A 38.222.74.2
地址:74.222.38.in-addr.arpa NS.sventech.com
地址:74.222.38.in-addr.arpa NS ns1.sventech.com
广告:ns.sventech.com A 38.222.74.2
广告:ns1.sventech.com A 38.222.74.10
当98.76.54.32的DNS服务器收到响应后,将结果转发到123.45.67.98,这是具有rlogin服务的UNIX主机(也是我们的目标),98.76.54.32的DNS服务器将缓存查询结果
此时,UNIX主机认为IP地址38.222.74.2的主机名是trusted.host.com,然后UNIX主机查询local/etc/hosts.equiv文件,查看是否允许主机使用rlogin服务。显然,我们的骗局已经实现了
在UNIX环境下,还有一种防止这种欺骗的技术,即查询PTR记录后,还查询PTR返回的主机名的a记录,然后比较两个IP地址是否相同:
123.45.67.89->98.76.54.32[查询]
NQY:1南:0北:0北:0北:0
QY:trusted.host.com一个
不幸的是,987654.32的DNS服务器将不查询此记录,但将直接返回查询2.74.222.38in AdDR.ARPA并在缓存中存在的信息:
98.76.54.32->123.45.67.89[查询]
NQY:1南:1北:2北:2
QY:trusted.host.com一个
安:trusted.host.com A 38.222.74.2
地址:74.222.38.in-addr.arpa NS.sventech.com
地址:74.222.38.in-addr.arpa NS ns1.sventech.com
广告:ns.sventech.com A 38.222.74.2
广告:ns1.sventech.com A 38.222.74.10
现在UNIX主机认为38.222.74.2才是真正的trusted.host.com,我们的目标已经实现了!
此IP欺骗的条件是:您必须在Internet上拥有授权的DNS服务器,并且您可以控制此服务器。至少你可以修改这个服务器的DNS记录,我们的欺骗可以执行
2> 是的。阻断服务攻击
在上面的例子中,如果我们将记录更改为38.222.74.2,那么我们将向98.76.54.32的DNS服务器发出查询2.74.222.38.In-addr.arpa,并使查询结果如下:
因为74.222.38.in-addr.arpa完全由我们控制,所以我们可以很容易地修改这些信息以达到我们的目的
38.222.74.2->98.76.54.32[答:]
NQY:1南:2北:2北:2北:2
问题:2.74.222.38.in-addr.arpa PTR
地址:2.74.222.38.in-addr.arpa PTR trusted.host.com
安:www.company.com A 0.0.0.1
地址:74.222.38.in-addr.arpa NS.sventech.com
地址:74.222.38.in-addr.arpa NS ns1.sventech.com