看到一篇颇有意思的文章,讲述的是若是经过控制一个域名的Nameservers服务来实现必定几率的劫持域名的DNS解析权,下面简述下笔记。promise
mandatory@script-srchttpsyvgscript ~> dig NS iom.int ; <<>> DiG 9.8.3-P1 <<>> NS iom.int ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9316 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;iom.int. IN NS ;; ANSWER SECTION: iom.int. 86399 IN NS ns1.gva.ch.colt.net. iom.int. 86399 IN NS ns1.zrh1.ch.colt.net. ;; Query time: 173 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Thu Dec 8 14:12:47 2016 ;; MSG SIZE rcvd: 81
如上看到的是正常来自8.8.8.8的解析记录,可是咱们使用dig +trace跟踪下域名的解析过程就会发现,其实一个域名的解析是经过了不少不一样的Nameservers服务器的,以下缓存
mandatory@script-srchttpsyvgscript ~> dig iom.int +trace ; <<>> DiG 9.8.3-P1 <<>> iom.int +trace ;; global options: +cmd . 209756 IN NS g.root-servers.net. . 209756 IN NS m.root-servers.net. . 209756 IN NS i.root-servers.net. . 209756 IN NS l.root-servers.net. . 209756 IN NS f.root-servers.net. . 209756 IN NS b.root-servers.net. . 209756 IN NS c.root-servers.net. . 209756 IN NS h.root-servers.net. . 209756 IN NS d.root-servers.net. . 209756 IN NS k.root-servers.net. . 209756 IN NS j.root-servers.net. . 209756 IN NS e.root-servers.net. . 209756 IN NS a.root-servers.net. ;; Received 228 bytes from 172.16.0.1#53(172.16.0.1) in 30 ms int. 172800 IN NS ns.icann.org. int. 172800 IN NS ns1.cs.ucl.ac.uk. int. 172800 IN NS ns.uu.net. int. 172800 IN NS ns0.ja.net. int. 172800 IN NS sec2.authdns.ripe.net. ;; Received 365 bytes from 192.5.5.241#53(192.5.5.241) in 88 ms iom.int. 86400 IN NS ns1.iom.org.ph. iom.int. 86400 IN NS ns2.iom.org.ph. iom.int. 86400 IN NS ns1.gva.ch.colt.net. iom.int. 86400 IN NS ns1.zrh1.ch.colt.net. ;; Received 127 bytes from 128.86.1.20#53(128.86.1.20) in 353 ms iom.int. 86400 IN A 54.154.14.101 iom.int. 86400 IN NS ns1.zrh1.ch.colt.net. iom.int. 86400 IN NS ns1.gva.ch.colt.net. ;; Received 97 bytes from Cnlouds#53(212.74.78.22) in 172 ms
如今就存在这么一种状况,这些个不一样的Nameservers服务中有一个域名已经失效了、已经被注销了,目标域名解析过程当中,系统并不会告诉你解析过程当中有一个Nameservers服务已经失效,而是一个Nameservers服务查询不到时就会继续转给下一个Nameservers去查询。bash
由此致使的一个问题是,当失效的那个Nameservers服务域名被恶意注册的话,就能够实现劫持目标域名的DNS解析权限。目标域名被咱们控制的Nameservers服务解析的几率50%左右,并且DNS缓存也存在必定的时间限制,能够经过增长DNS缓存TTL生存时间的生效期解决,而后就能够作一些流量劫持,DDOS等危害操做。服务器
Hijacking Broken Nameservers to Compromise Your Targetcookie