在我们上网的过程中,用户可以利用IE等浏览器进行各种各样的WEB站点的访问,如阅读新闻、订阅报纸、电子商务等。攻击者可以将用户想要浏览的网页的URL改写成指向攻击者自己的服务器,当用户浏览目标网页的时候,实际上是向攻击者服务器发出请求,那么攻击者就可以达到欺骗或攻击的目的了。例如,可以利用Webserver的网页给客户端机器传染病毒。这种攻击的效果是通过DNS欺骗技术得到的。DNS协议不对转换或信息性的更新进行身份认证,这就使得攻击者可以将不正确的信息掺进来,并把用户引向攻击者自己的主机。
用一个简单的例子说明
假如cn.wy.com向xinxin.com的子域DNS服务器120.2.2.2询www.xinxin.com的IP地址时,用户冒充120.2.2.2给www.xinxin.com的IP地址,这个IP地址是一个虚拟的地址,列如202.109.2.2,这cn.wy.com就会把202.109.2.2当www.xinxin.com的地址返还给hk.wy.com了。当hk.wy.com连www.xinxin.com时,就会转向我们提供的那个虚假的IP地址了,这样对www.xinxin.com来说,就算是给黑掉了。因为别人根本连接不上这个域名。 这就是DNS欺骗的基本原理,但正如同IP欺骗一样。DNS欺骗在技术上实现上仍然有一些困难,为了理解这些需要看一下DNS查询包的结构。在DNS查询包中有一个重要的域叫做做标识ID。用来鉴别每个DNS数据包的印记,从客户端设置。由服务器返回,它可以让客户匹配请求与响应。
如cn.wy.com120.2.2.2 这时黑客只需要用假的120.2.2.2进行欺骗,并且在真正的120.2.2.2返回cn.wy.com信息之前,先于它给出所查询的IP地址。cn.wy.com←120.2.2.2 ,www.xinxin.com的IP地址是1.1.1.1 。在120.2.2.2前cn.wy.com送出一个伪造的DNS信息包,如果要发送伪造的DNS信息包而不被识破,就必须伪造正确的ID,但是,如果无法判别这个标识符的话,欺骗将无法进行。这在局域网上是很容易实现的,只要安装一个sniffer,通过嗅探就可以知道这个ID。但如果是在Internet上实现欺骗,就只有发送大量的一定范围的DNS信息包,通过碰运气的办法来提高给出正确标识ID的机会。
DNS欺骗的真实过程
如果已经成功的攻击了120.2.2.2子网中任意一台主机,并且通过安装sniffer的方法对整个子网中传输的包进行嗅探,可以设置只对进出120.2.2.2的包进行观察,从而获得我们需要的标识ID。当DNS服务器120.2.2.2发出查询包时,它会在包内设置标识ID,只有应答包中的ID值和IP地址都正确的时候才能为服务器所接受。这个ID每次自动增加1,所以可以第一次向要欺骗的DNS服务器发一个查询包并监听到该ID值,随后再发一个查询包,紧接着马上发送构造好的应答包,包内的标识ID为预测的值。为了提高成功效率可以指定一个范围,比如在前面监听到的哪个ID+1的范围之间。接上列,如cn.wy.com向120.2.2.2发来了要求查www.xinxin.com的IP地址的包,此时,120.2.2.2上的黑客就要欺骗cn.wy.com。
cn.wy.com→120.2.2.2 [Query]
NQY:1 NAN:0 NNS:0 NAD:0 QID:6573
QY:www.xinxin.com A
其中NQY,NAN等是查询包的标志位。当这两个标志位为“1”时表示是查询包,这时我们就可以在120.2.2.2上监听到这个包,得到他的ID为6573.然后紧接着我们也向120.2.2.2发出一次查询,使它忙于应答这个包。
1.1.1.1→120.2.2.2 [Query]
NQY:1 NAN:0 NNS:0 NAD:0
QY:other.xinxin.com A
紧接着发带预测QID的应答包
120.2.2.2→cn.wy.com [Answer]
NQY:1 NAN:0 NNS:0 NAD:0 QID:6574
QY www.xinxin.com PTR
AN www.xinxin.com PTR 111.222.333.444
111.222.333.444就是由攻击者来指定的IP地址。注意发这个包时标识ID为前面监听到的ID值加1既6574+1=6575。这样,DNS欺骗就完成了cn.wy.com就会把111.222.333.444当www.xinxin.com的IP地址了。假如111.222.333.444是一台已经被用户控制的计算机,可以把它的主页改成想要的内容,这时当被欺骗的其他用户连接www.xinxin.com时,他就以为这个网站已经被黑掉了。
防范DNS欺骗的方法是用DNS转换得到的IP地址或域名再次作反向转换进行验证,用户可以通过一些软件来实现。
【编辑推荐】