DNS劫持与污染

 DNS劫持

DNS劫持的数据包是在路由器上,对请求返回假的IP地址(访问的是假网址)或者什么都不做使请求失去响应(网络不能反应)。
解决DNS劫持的方法:
在Interner协议(TCP/IP)的属性页里,选择”使用下面的DNS服务器地址”,首选和备用DNS服务器分别设置为8.8.8.8和8.8.4.4(Google Public DNS),完成后重新连接上网。
原理是由于域名劫持往往只能在特定的被劫持的网络范围内进行,所以在此范围外的域名服务器(DNS)能够返回正常的IP地址。但是由此引出了域名劫持通常相伴的措施――封锁正常DNS的IP。[中国大陆境内的客户端不一定能获得正确的解析结果]
DNS污染(DNS cache poisoning/pollution)
DNS污染的数据包是在路由器旁路产生的,故无法阻止正确的DNS解析结果返回。但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包。
验证DNS污染的办法
我们在命令行下通过这样一条命令 nslookup 域名 144.223.234.234,即可判断该域名是否被污染。由于144.223.234.234不存在,理应没有任何返回,但如果我们却得到了一个错误的IP(不确定),即可证明这个域名已经被DNS污染了。
解决DNS污染方案
1、修改hosts文件,操作系统中Hosts文件的优先级高于DNS服务器,操作系统在访问某个域名时,会先检测HOSTS文件,然后再查询DNS服务器。可以在hosts添加受到污染的DNS地址来解决DNS污染和DNS劫持。
2、如果你是Firefox only用户,并且只用Firefox,又懒得折腾,直接打开Firefox的远程DNS解析就行了。在地址栏中输入about:config找到network.proxy.socks_remote_dns一项改成true。
3、使用各种SSH加密代理,在加密代理里进行远程DNS解析,或者使用VPN上网。
4、通过一些软件编程处理,可以直接忽略返回结果是虚假IP地址的数据包,直接解决DNS污染的问题。

本文转自落叶红尘博客网络安全攻防研究室(www.91ri.org) 信息安全小组收集整理.转载本文请著名原文地址及原作者版权信息。