经过域名的Nameservers劫持域名

看到一篇颇有意思的文章,讲述的是若是经过控制一个域名的Nameservers服务来实现必定几率的劫持域名的DNS解析权,下面简述下笔记。promise

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 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等危害操做。服务器

可能出现的场景

  1. 不少网站中引入了第三方资源,而当第三方资源域名失效且未被注册时,便可致使网站引入恶意的第三方代码资源,如XSS代码窃取用户cookie/博彩/DDOS等持久化控制。 案例:hackone - twitter
  2. 直接使用dig查询一个网站的域名解析过程,查看解析过程当中的Nameservers服务域名是否失效且未被注册(或已被控制),亦可打到目的。

原文

Hijacking Broken Nameservers to Compromise Your Targetcookie

https://thehackerblog.com/respect-my-authority-hijacking-broken-nameservers-to-compromise-your-target/网站

相关文章
相关标签/搜索