通過域名註冊控制目標所有io後綴的域名
在之前我寫文章介紹了通過不同級別的DNS欺騙控制後綴為na,co.ao以及it.ao的域名,其中我們測試了頂級域名(TLD)的威脅模型,並且測試了攻擊者實現這一攻擊的方法。最簡單的方法之一就是註冊一個TLD權威名稱伺服器。攻擊原理是TLD可以具有管理任意域名的名稱伺服器,可能因為某些原因,比如配置出現錯誤,或者域名過期,導致有人可以註冊名稱伺服器的域名,並且達到對整個TLD區域的控制。
利用「域名後綴」的漏洞劫持國家頂級域名(一)
利用「域名後綴」的漏洞劫持國家頂級域名(二)
IO異常
周五晚上,我在使用自己寫的腳本收集各種頂級域名的DNS代理情況時,發現後綴名為io的頂級域名有些不同:
這個腳本中有一個功能是你可以傳遞一個Gandi API密鑰,然後它會自動檢測在代理鏈中的名稱伺服器是否有可以被註冊的域名。在上圖中可以看到Gandi』s API返回了多個域名,不過這並不代表這些域名是可以進行購買的。因為之前遇到過這種情況,域名服務商顯示此域名可用,不過並不可以進行購買,他會提示此域名處於保留狀態。於是在它返回域名列表之後,以防萬一,我對域名進行了訪問,並且在http://NIC.IO中檢測返回結果是否正確。在快速檢測之後我驚訝的發現http://ns-a1.io是可以作為名稱伺服器進行註冊的,註冊費用是90美元,於是我對它進行購買,看看是否會成功,過了一會,我受到了一封郵件,顯示域名購買服務正在進行:
不知道為什麼我收到了域名為http://101domain.com的確認郵件,不過很顯然io域名的註冊甚至整個註冊機制都是這個公司進行管理的。由於我購買的時候已經凌晨,下單之後就直接睡覺了,直到下一個周三下午我正準備去上班,一封郵件讓我想起來我還在註冊這個域名:
我發現已經註冊成功,立刻檢測了一下我是不是已經控制了io後綴的名稱伺服器中的一個,執行了dig命令,並且已經為http://ns-a1.io列出了我測試的DNS名稱伺服器:
bash-3.2$ dig NS ns-a1.ionn; <<>> DiG 9.8.3-P1 <<>> NS ns-a1.ion;; global options: +cmdn;; Got answer:n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8052n;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0nn;; QUESTION SECTION:n;ns-a1.io. IN NSnn;; ANSWER SECTION:nns-a1.io. 86399 IN NS ns2.networkobservatory.com.nns-a1.io. 86399 IN NS ns1.networkobservatory.com.nn;; Query time: 4 msecn;; SERVER: 2604:5500:16:32f9:6238:e0ff:feb2:e7f8#53(2604:5500:16:32f9:6238:e0ff:feb2:e7f8)n;; WHEN: Wed Jul 5 08:46:44 2017n;; MSG SIZE rcvd: 84nnbash-3.2$n
我查詢了一個位於底層的DNS伺服器,同樣這個域名被列為io頂級域名的權威名稱伺服器,這就足夠可以確定我們的猜想是正確的:
bash-3.2$ dig NS io. @k.root-servers.net.nn; <<>> DiG 9.8.3-P1 <<>> NS io. @k.root-servers.net.n;; global options: +cmdn;; Got answer:n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19611n;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 7, ADDITIONAL: 12n;; WARNING: recursion requested but not availablenn;; QUESTION SECTION:n;io. IN NSnn;; AUTHORITY SECTION:nio. 172800 IN NS ns-a1.io.nio. 172800 IN NS ns-a2.io.nio. 172800 IN NS ns-a3.io.nio. 172800 IN NS ns-a4.io.nio. 172800 IN NS a0.nic.io.nio. 172800 IN NS b0.nic.io.nio. 172800 IN NS c0.nic.io.nn;; ADDITIONAL SECTION:nns-a1.io. 172800 IN AAAA 2001:678:4::1nns-a2.io. 172800 IN AAAA 2001:678:5::1na0.nic.io. 172800 IN AAAA 2a01:8840:9e::17nb0.nic.io. 172800 IN AAAA 2a01:8840:9f::17nc0.nic.io. 172800 IN AAAA 2a01:8840:a0::17nns-a1.io. 172800 IN A 194.0.1.1nns-a2.io. 172800 IN A 194.0.2.1nns-a3.io. 172800 IN A 74.116.178.1nns-a4.io. 172800 IN A 74.116.179.1na0.nic.io. 172800 IN A 65.22.160.17nb0.nic.io. 172800 IN A 65.22.161.17nc0.nic.io. 172800 IN A 65.22.162.17nn;; Query time: 70 msecn;; SERVER: 2001:7fd::1#53(2001:7fd::1)n;; WHEN: Wed Jul 5 08:46:14 2017n;; MSG SIZE rcvd: 407n
太棒了,現在我通過ssh連接上去在這個域名下的測試dns伺服器,直接關掉了正在運行的BIND服務。如果我現在開始接受DNS流量的話,我當然不想讓合法訪問io域名的人察覺已經被攻擊。關閉bind服務不再接收53埠的查詢,並且使DNS查詢會自動跳轉到其他名稱伺服器上,所以並不會很大程度上干擾流量。為了看看我是否會接收到流量,我將所有DNS流量全部寫入到一個文件當中,以便於查看我獲得到多少條查詢。我利用互聯網上的數百個隨機ip進行查詢,結果看起來這個域名確實為整個ionTLD提供流量,可能這只是一開始,因為很多DNS客戶端都可能存在緩存,如果緩存更新之後,可能攻擊就不會起作用.
報告TLD中的安全問題
慢慢的伺服器不再接受任何dns查詢,我認為應該儘可能快的修復好這一缺陷。我主要的擔心是目前還存在有很多名稱伺服器是可以被註冊的,並且這種攻擊任何人只要有錢和一定的基礎就可以實現。我查找了io後綴域名的TLD的聯繫人:
然後我寫了一個問題的總結,並通過電子郵件發送給了兩個聯繫人,並傳達了修復這個問題的緊迫性。我表示我會對其他TLD域名中可以註冊的名稱伺服器進行關注,並表明如果我在幾個小時內沒有收到回復,我將繼續註冊並保護TLD。發送電子郵件後,我立即收到一條回復郵件,adminstrator@nic.io郵件地址竟然不存在:
我相信這個域名的服務商遲早會看到這篇文章的,我接下來將所有的能夠購買的域名全部買了下來,防止其他人劫持TLD。就像第一個域名一樣,我設置了我的DNS伺服器,不會影響入站通信。
這樣至少不會被其他攻擊者利用,我就可以安心的使用我的服務。
接下來幾天里,我撥打了NCIO提供的電話號碼,要求他們提供負責公司安全人員的電子郵件地址,以便我聯繫他們公司的安全團隊。服務人員將abuse@101domain.com告訴我說這是問題的負責人,雖然我覺得不太可能能夠解決問題,但是我還是將問題總結髮送給了這個地址。並且希望通過這個郵件告知安全人員。在達成一定的共識之後,我就開始等待回復。
通過撤銷購買域名進行修復
第二天中午,我收到了101Domains的通知,指出我的域名被停用,我的提出問題郵件已被回答,我的所有域名都被註冊機構撤銷:
震驚!abuse它竟然是問題反饋郵箱!在我登錄到101Domain之後,我發現了101domain法律部門發來的消息:
很好,在我通知之後,很快時間就得到了響應,並且在我嘗試重新註冊這些域名時,沒有成功,於是我確定已經把漏洞修補了。
漏洞影響
因為我們已經能夠接管7個權威名稱伺服器中的4個,所以完全有能力對所有註冊是io域名進行DNS投毒攻擊。不僅如此,我們已經掌握了多數名稱伺服器,所以客戶端可能選擇到被劫持的名稱伺服器,甚至在使用長TTL響應之前,進一步提高我們攻擊成功的可能性。
一種防止被攻擊的方法是io TLD啟用DNSSEC。啟用之後,這種攻擊不會對自己的服務奏效。話雖如此,不過很多場合都不知吃DNSSEC,除非專門設置一個DNSSEC解析器。
TLD安全方面防護
我已經寫了一些關於如何從頂級域名(TLD)角度來解決這些問題的一些問題。在未來,我希望發布一個更廣泛的指南,了解TLD和域名擴展運營商如何更好地監控並防止發生這樣的問題。
文章翻譯自The .io Error - Taking Control of All .io Domains With a Targeted Registration,如若轉載,請註明原文地址: 通過域名註冊控制目標所有io後綴的域名 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀: