看下dns污染:

bash-3.2$ dig twitter.com +trace

; <<>> DiG 9.10.6 <<>> twitter.com +trace
;; global options: +cmd
. 484068 IN NS d.root-servers.net.
. 484068 IN NS j.root-servers.net.
. 484068 IN NS l.root-servers.net.
. 484068 IN NS g.root-servers.net.
. 484068 IN NS h.root-servers.net.
. 484068 IN NS b.root-servers.net.
. 484068 IN NS m.root-servers.net.
. 484068 IN NS e.root-servers.net.
. 484068 IN NS a.root-servers.net.
. 484068 IN NS f.root-servers.net.
. 484068 IN NS c.root-servers.net.
. 484068 IN NS i.root-servers.net.
. 484068 IN NS k.root-servers.net.
. 484069 IN RRSIG NS 8 0 518400 20180805170000 20180723160000 41656 . yl9YhwsdxJhUHr7/8S6Mv0mu4LqVFiN/aR+3zp7KIfyAthz21d2qUtdC hqOK16OhSAItXf3uZ5ent5NtswMSAvyxcS46/tMQm3kEsuoRiDNrbMAK k8XKcZC2HQ7tNPoPuUbjGrKeMuxqvDUecJ4/j0x30SRF9M9+1cL9BADb X22m65beu/bwfZuR70wsOyW56mIE/QVb6Q1X7nr3fwkl9MPD9p1wz6y5 HBcND8XhKepMY0v5hfV7CEmbM4b67p0U1+fGWybkDqudi2D9qLXW8SYT W+Wr3Df8pl/uriYpFCpd49ryVzEfdqte8IdyyNxQezgIX4ys8PvfKIWs xTcCsQ==
;; Received 1097 bytes from 2408:84e1:a0:5ce1::c9#53(2408:84e1:a0:5ce1::c9) in 613 ms twitter.com. 234 IN A 66.220.149.32
;; Received 56 bytes from 2001:500:2::c#53(c.root-servers.net) in 805 ms bash-3.2$ dig twitter.com +trace ; <<>> DiG 9.10.6 <<>> twitter.com +trace
;; global options: +cmd
. 484066 IN NS j.root-servers.net.
. 484066 IN NS i.root-servers.net.
. 484066 IN NS g.root-servers.net.
. 484066 IN NS e.root-servers.net.
. 484066 IN NS f.root-servers.net.
. 484066 IN NS h.root-servers.net.
. 484066 IN NS c.root-servers.net.
. 484066 IN NS a.root-servers.net.
. 484066 IN NS m.root-servers.net.
. 484066 IN NS d.root-servers.net.
. 484066 IN NS l.root-servers.net.
. 484066 IN NS k.root-servers.net.
. 484066 IN NS b.root-servers.net.
. 484067 IN RRSIG NS 8 0 518400 20180805170000 20180723160000 41656 . yl9YhwsdxJhUHr7/8S6Mv0mu4LqVFiN/aR+3zp7KIfyAthz21d2qUtdC hqOK16OhSAItXf3uZ5ent5NtswMSAvyxcS46/tMQm3kEsuoRiDNrbMAK k8XKcZC2HQ7tNPoPuUbjGrKeMuxqvDUecJ4/j0x30SRF9M9+1cL9BADb X22m65beu/bwfZuR70wsOyW56mIE/QVb6Q1X7nr3fwkl9MPD9p1wz6y5 HBcND8XhKepMY0v5hfV7CEmbM4b67p0U1+fGWybkDqudi2D9qLXW8SYT W+Wr3Df8pl/uriYpFCpd49ryVzEfdqte8IdyyNxQezgIX4ys8PvfKIWs xTcCsQ==
;; Received 1097 bytes from 2408:84e1:a0:5ce1::c9#53(2408:84e1:a0:5ce1::c9) in 54 ms twitter.com. 181 IN A 69.171.235.16
;; Received 56 bytes from 192.36.148.17#53(i.root-servers.net) in 51 ms

有没有发现每次返回的ip都是比较随机的。就算你指定dns服务器也会出现这个问题:

bash-3.2$ dig twitter.com +trace @8.8.8.8

; <<>> DiG 9.10.6 <<>> twitter.com +trace @8.8.8.8
;; global options: +cmd
. 52616 IN NS k.root-servers.net.
. 52616 IN NS m.root-servers.net.
. 52616 IN NS c.root-servers.net.
. 52616 IN NS l.root-servers.net.
. 52616 IN NS e.root-servers.net.
. 52616 IN NS b.root-servers.net.
. 52616 IN NS j.root-servers.net.
. 52616 IN NS f.root-servers.net.
. 52616 IN NS i.root-servers.net.
. 52616 IN NS g.root-servers.net.
. 52616 IN NS d.root-servers.net.
. 52616 IN NS a.root-servers.net.
. 52616 IN NS h.root-servers.net.
. 52616 IN RRSIG NS 8 0 518400 20180803050000 20180721040000 41656 . cwJz/99k74CqzPMcyjdYkufFaulgc6jXObkNsE1xBM1O+TcAYXnMw8e5 qr5GR5WrFdzd845+n8rP6LhuidOwvrooKbZn6R39ig+VXEZJa/UsMnIY OkTVoXXQZKXyQRjxJMbvNm01H0F6z6mOFnwcv1DjFWOjIG+/IYNvPu+o giA/B5hS2h3AaRvsBm4PdroHmG7dbgNfWq4Blh9WeonpVGL+j83mwerc Lz8O8j8oZQf8fWQuXr3JArW12likpx0Wf43cbWq+7E6boJ8+UA7lvpJv 2aPR/hi5+XPUppknRXPKGD6sn6eR1HuCDXQptWS2QnqcepwtNYraJZHs DWqztA==
;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 79 ms twitter.com. 98 IN A 75.126.135.131
;; Received 56 bytes from 192.36.148.17#53(i.root-servers.net) in 44 ms bash-3.2$ dig twitter.com +trace @8.8.8.8 ; <<>> DiG 9.10.6 <<>> twitter.com +trace @8.8.8.8
;; global options: +cmd
. 193723 IN NS a.root-servers.net.
. 193723 IN NS b.root-servers.net.
. 193723 IN NS c.root-servers.net.
. 193723 IN NS d.root-servers.net.
. 193723 IN NS e.root-servers.net.
. 193723 IN NS f.root-servers.net.
. 193723 IN NS g.root-servers.net.
. 193723 IN NS h.root-servers.net.
. 193723 IN NS i.root-servers.net.
. 193723 IN NS j.root-servers.net.
. 193723 IN NS k.root-servers.net.
. 193723 IN NS l.root-servers.net.
. 193723 IN NS m.root-servers.net.
. 193723 IN RRSIG NS 8 0 518400 20180803170000 20180721160000 41656 . BBPz7lF9LPdrl3G0HZbOlt6SVIns4c2jfzqM9lFCdr++4DztnNWN+vpk hkCgTsZWnO3ZNRTww4ItXNEfAcID8BIKGVTQr1U57PNqfeY4PLGJWfGT XTtkq3BK2NMzekqYIfKMhIyyoHry+qSpfKiCQxPWevXw9D+lA1n8otRl WsN9yTH9jHzyOippGplZNMAPZ2qxDP2CvXuDaH665hybELwLbcpbCCTn drOu7vXBBRx0r2xXDFv90079+4WdgEMQFTqiAc9JQhBODydH4NAW4Re+ swSbUhmdQ0oO+ocSEIK+fWxipnzzE11KWeeuZOkUy5V0iHR8JwPcWYmy t1SLTg==
;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 96 ms twitter.com. 149 IN A 8.7.198.45
;; Received 56 bytes from 2001:500:2::c#53(c.root-servers.net) in 38 ms

DNS污染事件跟踪:为什么.cn和.org域名逃过一劫

2014年

关于中国境内用户访问.com 和.net 域名被解析到65.49.2.178 一事我又有新发现,我发现了为什么.cn 和.org 的域名没有受到影响指向65.49.2.178的原因,证明此事事故与根域名服务器无关。

在上一篇文章中,我查到了65.49.2.178这个IP的背景,验证了根域名服务器在中国有镜像,驳斥了各大媒体和维基百科上说“根域名服务器只有13台,亚洲唯一的一台在日本”的说法,猜测这事件是一次来自国内机房的DNS污染事故。

我注意到 国家互联网应急中心的通告提到仅有“.com”、“.net”等结尾的网站受到影响,而.cn结尾的网站没有受到影响,.org 结尾的网站没有被提到,也应该是没有受到影响:

关于1月21日我国境内互联网访问异常情况的通报 来源:CNCERT 时间:2014-01-22 2014年1月21日15:20,中国境内大量互联网用户无法正常访问域名以“.com”、“.net”等结尾的网站。事件发生后,国家互联网应急中心第一时间启动应急响应机制,协调组织部分技术支撑单位进行调查和应急处置,16:50左右,用户访问基本恢复正常。 经对已掌握的数据进行分析,初步判断此次事件是由于网络攻击导致我国境内互联网用户通过国际顶级域名服务解析时出现异常,攻击来源正在进一步调查中。

为什么.cn 和 .org 结尾的网站没有受到影响?

我们先来看正常的域名解析过程:

  1. 第一步,DNS会返回“根域名服务器”地址和IP, 上图中是root-servers.net结尾的地址;
  2. 第二步,根域名服务器192.33.4.12返回通用顶级域名(gTLD)的服务器地址和IP;
  3. 第三步,gTLD服务器返回NS(name server)地址和IP,上图中是ns1.dreamhost.com;
  4. 第四步,NS返回域名对应的真正的IP地址, 上图中是69.163.141.215。

下面是dig +trace zuola.com 和 dig +trace dbanotes.net 的结果,显示以“.com”、“.net”等结尾的域名在第二步返回的都是 gtld-server.net结尾的服务器地址; 而以“.org”的域名用的是另一种域名的服务器。

下面是dig +trace 1kg.org 这个域名的结果,同样需要向DNS发起第一步查询,返回的结果是相同的根域名服务器地址,第二步返回的却不是以 gtld-server.net结尾的服务器地址,是org.afilias-nst.org 和 org.afilias-nst.info 结尾的地址

下面是dig +trace hightechlowlife.cn 这个域名的结果,.cn 和 .org 的域名同样需要向DNS发起第一步查询,得到了正确的根域名服务器地址; 第二步返回的却不是 以gtld-server.net结尾的服务器地址,也不是以org.afilias-nst.org 和 org.afilias-nst.info 结尾的地址,是以dns.cn结尾的地址:

好了,.cn 和 .org 的域名同样需要向DNS发起第一步查询,也都得到与.com 跟.net 域名相同的“根域名服务器”查询结果了,仅有第二步返回的结果不同。这证明此次事件与“根域名服务器”完全没有关系。这样一区分,也许能解释为什么.cn 和.org 的域名没有受到影响了。

下图来自DNSPod的BLOG,证实2014年1月21日访问.com 域名会得到65.49.2.178这个IP:

没有返回返回通用顶级域名(gTLD)的服务器地址和IP,也没有返回name server 地址。

没有返回返回通用顶级域名(gTLD)的服务器地址和IP,也没有返回name server 地址。

我再贴一张2014年1月22日在中国境内用dig追踪twitter.com 域名解析过程的图片:

图片由陈少举提供

Twitter.com的域名被劫持到203.98.7.65这个IP了,从 http://whois.webhosting.info/203.98.7.65 来看,这个IP不是twitter的IP,表现和2014年1月21日的劫持域名到65.49.2.178完全一样:没有返回返回通用顶级域名(gTLD)的服务器地址和IP,也没有返回name server 地址。

完整无误的解析应该是如下图一样分四次返回数据:

图片由陈少举提供

结论:

我国境内互联网用户通过国际顶级域名服务解析时出现异常,“.com”、“.net”域名被解析到 65.49.2.178是一次DNS污染行为,和GFW污染Twitter.com 、Facebook.com Youtube.com 、 Zuola.com 等域名的表现是一致的,与根域名服务器完全无关。.cn 和 .org 结尾的网站没有受到影响则证明,可能是此次GFW不小心把gtld-servers.net 加入污染域名的列表了,下次遇到同样的部分域名受影响的话用用dig +trace gtld-servers.net来排查吧。

DNS污染——domain name的解析被劫持了返回无效的ip的更多相关文章

  1. 【转】DNS劫持和DNS污染的区别

    什么是DNS服务器? 简单来说,DNS服务器就是域名管理系统. DNS(Domain Name System)是域名解析服务器的意思. DNS服务器是干什么的? DNS服务器在互联网的作用是:把域名转 ...

  2. DNS劫持和DNS污染的区别

    我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染. 什么是DNS劫持 DNS劫持就是通过劫 ...

  3. 什么是DNS劫持和DNS污染?

    什么是DNS劫持和DNS污染? http://blogread.cn/it/article/7758?f=weekly 说明 我们知道,某些网络运营商为了某些目的,对 DNS 进行了某些操作,导致使用 ...

  4. DNS 劫持 和 DNS 污染

    1,用户需要访问www.liusuping.com这个网站,向DNS服务器提出解析请求. 2,DNS服务器通过检查发现www.liusuping.com域名的IP地址是127.0.0.1,将结果返回给 ...

  5. DNS 劫持、HTTP 劫持与 DNS 污染

    本文为本人的学习笔记,不保证正确. DNS 劫持 指DNS服务器被控制,查询DNS时,服务器直接返回给你它想让你看的信息.这种问题常为 ISP 所为. 由于一般的的电脑的 DNS 服务器 的配置都为自 ...

  6. DNS 工作原理是什么,域名劫持、域名欺骗、域名污染又是什么

    DNS 工作原理是什么,域名劫持.域名欺骗.域名污染又是什么 2014年11月27日 10:05:40 阅读数:6726 标签: dns网络互联网顶级域名递归 更多 个人分类: 网络学习   一.DN ...

  7. 通过开源程序同时解决DNS劫持和DNS污染的问题

    我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染.关于DNS劫持和DNS污染的区别,请查找 ...

  8. DNS劫持和DNS污染

    DNS劫持和DNS污染1.DNS劫持通过劫持DNS服务器,修改解析记录,导致对域名的访问转入虚假IP,结果是网站访问失败,窃取资料. 2.DNS污染使用虚假的DNS服务器,伪装成目标域名的解析服务器, ...

  9. DNS劫持 DNS污染

    编号:1021时间:2016年6月24日17:23:50功能:DNS劫持 DNS污染URL:http://www.itechzero.com/dns-hijacking-dns-pollution-i ...

随机推荐

  1. android 如何获取当前的Activity类名

    比如友盟统计页面停留时间,咱们需要知道当前页面停留了多久. 一般我们都有一个父类Activity,用下面的方法可以获得完整的包名.类名结构 this.getLocalClassName() 输出如下: ...

  2. JVM 内存知识总结

    本文主要参考内容: http://hllvm.group.iteye.com/group/wiki/3053-JVM http://my.oschina.net/xishuixixia/blog/13 ...

  3. IPMI的几个问题

    IPMI针对大量监控.控制和自动回复服务器的作业,提供了智能型的管理方式.此标准适用于不同的服务器拓朴学,以及Windows.Linux. Solaris.Mac或是混合型的操作系统.此外,由于IPM ...

  4. Swap交换分区--continue

    Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存).即使你的程序运行结束后,Cache Memory也不会自动释放.这就会导致你在Lin ...

  5. Swoole学习(三)Swoole之UDP服务器的创建

    环境:Centos6.4,PHP环境:PHP7 <?php //创建UCP服务器(UDP服务器相对于TCP服务器通信更可靠些) /** * $host 是swoole需要监听的ip,如果要监听本 ...

  6. WebAPI请求——js调用

    继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用jQuery 来发起异步请求实现 ...

  7. 20145302张薇《Java程序设计》实验五报告

    20145302张薇 实验五:Java网络编程及安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 基于Java Socket实现安全传输 基于TCP实现 ...

  8. 推荐个非常简单好用的AOP -- MrAdvice

    https://github.com/ArxOne/MrAdvice 太简单了,写好自己的处理类, 作为Attribute加到要拦截的方法或者类上就可以了. Here is the minimal s ...

  9. Linux系统巡检项目

    系统检测 1.检查系统类型 2.检查发行版本 3.检查内核版本 4.检查主机名称 5.检查是否启用SElinux 6.检测默认的语言/编码 7.检测uptime 8.检测最后启动时间等 CPU检查 1 ...

  10. mybatis中使用mysql的模糊查询字符串拼接(like)

    方法一: <!-- 根据hid,hanme,grade,模糊查询医院信息--> 方法一: List<Hospital> getHospitalLike(@Param(" ...