看到一篇很有意思的文章,讲述的是如果通过控制一个域名的Nameservers服务来实现一定概率的劫持域名的DNS解析权,下面简述下笔记。dig查看域名解析记录mandatory@script-srch
看到一篇很有意思的文章,讲述的是如果通过控制一个域名的Nameservers服务来实现一定概率的劫持域名的DNS解析权,下面简述下笔记。
dig查看域名解析记录
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 msint. 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 msiom.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 msiom.int. 86400 IN A 54.154.14.101iom.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去查询。
由此导致的一个问题是,当失效的那个Nameservers服务域名被恶意注册的话,就可以实现劫持目标域名的DNS解析权限。目标域名被我们控制的Nameservers服务解析的概率50%左右,而且DNS缓存也存在一定的时间限制,可以通过增加DNS缓存TTL生存时间的生效期解决,然后就可以做一些流量劫持,DDOS等危害操作。
可能出现的场景
- 很多网站中引入了第三方资源,而当第三方资源域名失效且未被注册时,即可导致网站引入恶意的第三方代码资源,如XSS代码窃取用户cookie/博彩/DDOS等持久化控制。案例:hackone - twitter
- 直接使用dig查询一个网站的域名解析过程,查看解析过程中的Nameservers服务域名是否失效且未被注册(或已被控制),亦可打到目的。
原文
Hijacking Broken Nameservers to Compromise Your Target
https://thehackerblog.com/respect-my-authority-hijacking-broken-nameservers-to-compromise-your-target/