DNS污染——domain name的解析被劫持了返回无效的ip
看下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 结尾的网站没有受到影响?
我们先来看正常的域名解析过程:

- 第一步,DNS会返回“根域名服务器”地址和IP, 上图中是root-servers.net结尾的地址;
- 第二步,根域名服务器192.33.4.12返回通用顶级域名(gTLD)的服务器地址和IP;
- 第三步,gTLD服务器返回NS(name server)地址和IP,上图中是ns1.dreamhost.com;
- 第四步,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的更多相关文章
- 【转】DNS劫持和DNS污染的区别
什么是DNS服务器? 简单来说,DNS服务器就是域名管理系统. DNS(Domain Name System)是域名解析服务器的意思. DNS服务器是干什么的? DNS服务器在互联网的作用是:把域名转 ...
- DNS劫持和DNS污染的区别
我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染. 什么是DNS劫持 DNS劫持就是通过劫 ...
- 什么是DNS劫持和DNS污染?
什么是DNS劫持和DNS污染? http://blogread.cn/it/article/7758?f=weekly 说明 我们知道,某些网络运营商为了某些目的,对 DNS 进行了某些操作,导致使用 ...
- DNS 劫持 和 DNS 污染
1,用户需要访问www.liusuping.com这个网站,向DNS服务器提出解析请求. 2,DNS服务器通过检查发现www.liusuping.com域名的IP地址是127.0.0.1,将结果返回给 ...
- DNS 劫持、HTTP 劫持与 DNS 污染
本文为本人的学习笔记,不保证正确. DNS 劫持 指DNS服务器被控制,查询DNS时,服务器直接返回给你它想让你看的信息.这种问题常为 ISP 所为. 由于一般的的电脑的 DNS 服务器 的配置都为自 ...
- DNS 工作原理是什么,域名劫持、域名欺骗、域名污染又是什么
DNS 工作原理是什么,域名劫持.域名欺骗.域名污染又是什么 2014年11月27日 10:05:40 阅读数:6726 标签: dns网络互联网顶级域名递归 更多 个人分类: 网络学习 一.DN ...
- 通过开源程序同时解决DNS劫持和DNS污染的问题
我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染.关于DNS劫持和DNS污染的区别,请查找 ...
- DNS劫持和DNS污染
DNS劫持和DNS污染1.DNS劫持通过劫持DNS服务器,修改解析记录,导致对域名的访问转入虚假IP,结果是网站访问失败,窃取资料. 2.DNS污染使用虚假的DNS服务器,伪装成目标域名的解析服务器, ...
- DNS劫持 DNS污染
编号:1021时间:2016年6月24日17:23:50功能:DNS劫持 DNS污染URL:http://www.itechzero.com/dns-hijacking-dns-pollution-i ...
随机推荐
- Multiple encodings set for module chunk explatform "GBK" will be used by compiler
项目用idea启动的时候,突然报了个这个 Multiple encodings set for module explatform "GBK" will be used by co ...
- JVM类加载机制(转)
原文出自:http://www.cnblogs.com/ityouknow/p/5603287.html 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运 ...
- DevStore分享:月薪3万的程序员都避开了哪些坑
程序员薪水有高有低,有的人一个月可能拿30K.50K,有的人可能只有2K.3K.同样有五年工作经验的程序员,可能一个人每月拿20K,一个拿5K.是什么因素导致了这种差异?我特意总结了容易导致薪水低的九 ...
- ZOJ - 2587 Unique Attack (判断最小割是否唯一)
题意:判断最小割是否唯一. 分析:跑出最大流后,在残余网上从源点和汇点分别dfs一次,对访问的点都打上标记. 若还有点没有被访问到,说明最小割不唯一. https://www.cnblogs.com/ ...
- JAVA中hashmap的分析
从http://blog.csdn.net/luanlouis/article/details/41576373?utm_source=tuicool&utm_medium=referral学 ...
- 关于ajax中responseText不能返回脚本的问题。
今天做后台时想用ajax返回带有脚本的HTML DOM ,发现脚本被当成字符串了,查了一下responseText()方法返回的是字符串,查了一下百度,用了正则匹配,匹配到脚本然后执行,不想当一个伸手 ...
- 对象转化为 xml字符串
public static string ToXml<T>(this T o) where T : new() { string retVal; using (var ms = new M ...
- iis原理介绍
它是一个程序,负责对网站的内容进行管理,以及对客户的请求(就是Http请求)做出反应.当用户对一个页面提出请求时,IIS做如下反应(忽略权限):1.把对方请求的虚拟路径转换成物理路径2.根据物理路径搜 ...
- lvds split两channel输出到一个屏显示
转:https://blog.csdn.net/changqing1990/article/details/81128552 其实之前写过LCD/LVDS的一些时序的基本概念<与LCD移植相关的 ...
- C++中string的成员函数
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...