DNS劫持与污染

泥人传说
泥人传说
泥人传说
900
文章
112
评论
2015-12-2616:49:41
评论
659 3482字
 
DNS污染,又称为域名服务器缓存污染(DNS cache poisoning)或者域名服务器快取侵害(DNS cache pollution)。

是指一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的IP地址。一般来说,外间在互联网上一般都有可信赖的域名服务器,但为减免网络上的交通,一般的域名都会把外间的域名服务器数据暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的局域域名服务器的缓存受到污染,就会把网域内的电脑导引往错误的服务器或服务器的网址。域名服务器缓存污染可能是通过域名服务器软件上的设计错误而产生,但亦可能由别有用心者通过研究开放架构的域名服务器系统来利用当中的漏洞。

详解

某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址。某些国家或地区为出于某些目的防止某网站被访问,而且其又掌握部分国际DNS根目录服务器或镜像,也可以利用此方法进行屏蔽。
常用的手段有:DNS劫持和DNS污染。关于DNS劫持和DNS污染的区别。对付DNS劫持的方法很简单,只需要把系统的DNS设置改为为国外的DNS服务器的IP地址即可解决。但是对于DNS污染,一般除了使用代理服务器和VPN之类的软件之外,并没有什么其它办法。但是利用我们对DNS污染的了解,还是可以做到不用代理服务器和VPN之类的软件就能解决DNS污染的问题,从而在不使用代理服务器或VPN的情况下访问原本访问不了的一些网站。当然这无法解决所有问题,当一些无法访问的网站本身并不是由DNS污染问题导致的时候,还是需要使用代理服务器或VPN才能访问的。
DNS污染的数据包并不是在网络数据包经过的路由器上,而是在其旁路产生的。所以DNS污染并无法阻止正确的DNS解析结果返回,但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包,从而使得DNS污染得逞。而某些国家的DNS污染在一段时期内的污染IP却是固定不变的,从而可以忽略返回结果是这些IP地址的数据包,直接解决DNS污染的问题。

验证方法

我们在命令行下通过这样一条命令 nslookup 域名 144.223.234.234,即可判断该域名是否被污染,由于144.223.234.234不存在,理应没有任何返回。但我们却得到了一个错误的IP(不确定)。即可证明这个域名已经被DNS污染了。

解决方案

1、使用各种SSH加密代理,在加密代理里进行远程DNS解析,或者使用VPN上网。
2、修改hosts文件,操作系统中Hosts文件的优先级高于DNS服务器,操作系统在访问某个域名时,会先检测HOSTS文件,然后再查询DNS服务器。可以在hosts添加受到污染的DNS地址来解决DNS污染和DNS劫持。
3、通过一些软件编程处理,可以直接忽略返回结果是虚假IP地址的数据包,直接解决DNS污染的问题。
4、如果你是Firefox only用户,并且只用Firefox,又懒得折腾,直接打开Firefox的远程DNS解析就行了。在地址栏中输入about:config找到network.proxy.socks_remote_dns一项改成true。

分析:
它的查询方式一般有两种.迭代和递归,我们一般在客户端到服务器之间做递归查询,什么是递归呢?也就是你告诉你本机设置的dns服务器,我要知道一个域名对应的IP是多少?然后你的dns服务器会在公网各dns上轮回性的询问这个域名对应的IP,一直找到为止.不用自己跑腿.这样做的好处是不用消耗太多的本机资源.服务器与服务器之间做迭代查询(DNS到DNS的查询),也就是当查询一个域名的IP时,其中一个dns找不到,然后直接告诉你我找不到,你去问问另一个dns吧,你接着在询问下一个dns,说的有点笼统,不好意思了.你可以通过ping与tracert来找到一个快速的dns服务器,来满足你的上网需求.不过有些dns可不能要.呵呵

不多说,让们来了解下何为dns污染与劫持?

DNS劫持原理

DNS劫持就是dns系统被入侵或人为的修改某些记录,如A记录,这个做过dns服务器的朋友一定不陌生想当年百度被黑事件.就是因为它注册的dns服务器被人入侵,修改了A记录,结果上了一个垃圾网站.可见一个dns的安全不可小视,通过这样的劫持可以实现很多欺骗,后果不堪设想.用专业的术语来讲就是通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。

实例:
DNS劫持与污染 网络问题 第1张-泥人传说

咱们就拿被国家屏蔽的twitter.com站点来说吧,你看看这个混蛋dns,我问它两次,它两都告诉我假的IP.你怎么知道这个IP不是真的呢?一开始,说实在的我也不知道是真的假的,后来我为了弄清楚,用国内几家域名到IP的解析网站,解析后,晕啊!都是错误的.可见国家”禁”的牛逼啊!你怎么知道它们解析的也不对呢?呵呵,其实我用网页代理均一一试过的,没有一个IP能打开其网页.汗,无奈之下,我找了个国外的domin to ip,域名为:http://dawhois.com/ 嘿嘿!

 

DNS劫持与污染 网络问题 第2张-泥人传说
这是其真正的twitter.com的ip地址,解析正确.网页代理通过IP上其网站也OK.不过要说一下的是,别想着用IP直接上这个网站,IP可能早已被ACL了吧!这叫多重封杀.还有个办法就是用dns根服务器解析也可以.为什么说它是劫持呢?通过查看其TTL,我们发现不论解析常规域名还是被禁域名,返回TTL一般都是一个值,也就是同一个服务器返回,这样就可以证明.污染会是什么情况呢?

DNS污染原理

DNS污染是一种让一般用户由于得到虚假目标主机IP而不能与其通信的方法,是一种DNS缓存投毒攻击(DNS cache poisoning)。其工作方式是:由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改,通过对UDP端口53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果.DNS污染的数据包并不是在网络数据包经过的路由器上,而是在其旁路产生的。所以DNS污染并无法阻止正确的DNS解析结果返回,但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包,从而使得DNS污染得逞。

实例:
DNS劫持与污染 网络问题 第3张-泥人传说

来看看这个吧!这个就更牛了,我问了一声谁是twitter.com?他妈的居然这么多回应.从前面图中我们知道了真正twitter.com的ip, 然后看上图中便可知道哪个是不正确的twitter.com域名解析。.就像上面讲的那样污染的数据包总是快上一步,先到达客户端,并且旁路由并不能阻止正确dns的解析结果返回,这个就是典型的dns污染。

接着分析:上图中,我连续解析了两个域名:一个为twitter.com,一个为我的博客www.wildlee.org地址。 twitter.com这个域名得到了三个回复,咱们先看看客户端得到什么答案吧!

 

DNS劫持与污染 网络问题 第4张-泥人传说

客户端总是响应先到的回应包,对于后到达的正确的域名解析结果就会不予理睬,这样就轻而易举的被骗了。我们在看看正确解析到IP的那个数据包的TTL值是52吧,在看下www.wildlee.org(IP是对的)这个解析包的TTL,也是52吧!这才是正直IP为208.67.222.222的产生的回复包,至于前两个错误的IP解析,当然是网络中其它主机的欺骗了。

我们在来看下我本机IP到dns服务器IP所经过的跳数吧!

 

 

DNS劫持与污染 网络问题 第5张-泥人传说

如果要得到dns的回复,就必须要经过13个路由,好,现在我修改编辑数据包,让它的跳数小于13,看我们还能不能得到解析,结果还是能得到解析,不多说了。

以上实例所用dns服务器为两个不同IP,分别用于演示dns的劫持与污染。dns的劫持与污染可用于犯罪,也可用于屏蔽网站。现在好多家用adsl ,有时分明能上QQ,能下载,但就是网页”您所访问的网址无法到达,您可尝试重新访问”???让人莫名其妙~~我看啊,不能和这些东西脱得了关系啊!

最近听我一好友说某些地区电信禁止多电脑连网,它所认为的不正当上网.原理好像就是用TTL来辨别的,因为经过咱们路由,TTL将减一.

 

  • 本文由 发表于 2015-12-2616:49:41
  • 转载请务必保留本文链接:http://nrcs.xyz/networks/140.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: