給DNS快取伺服器投毒

2021-06-03 10:19:57 字數 3143 閱讀 7842

只要黑客想這麼做,那我可以保證,您訪問的google,絕不是google,**也不是**,而是乙個偽裝的**,2023年,給isp的dns快取伺服器投毒是安全界最熱門的話題,並且,這個問題仍然無法解決……

1、您發現在自家電腦的瀏覽器裡輸入www.google.com,訪問的卻是矛盾網。

2、隨意的給google加個子網域名稱,比如aorb.google.com。

他們都基於乙個技術 -- 給isp(如,電信/網通)的dns快取伺服器投毒,也稱作udp會話劫持。

首先,您必須明白dns的工作原理(詳細的dns原理)

先看藍色的線條,這是正常的dns解析流程

1)終端電腦(您的個人電腦)在用瀏覽器訪問網頁時,首先要在瀏覽器的位址列中填入乙個**(如,www.google.com),可我們的個人電腦必須知道這個**對應的ip位址,才可以正常瀏覽網頁(如,www.google.com對應的ip位址是1.1.1.1)。於是,你的電腦就傳送乙個解析請求給暫存dns伺服器,這個請求其實就是一句話「您能告訴我www.google.com對應的ip位址嗎?」

2)如果暫存dns伺服器上沒有www.google.com對應的ip位址,則暫存dns伺服器就會通過迭代的方法最後詢問主要dns伺服器。主要dns伺服器上儲存有www.google.com對應的ip位址。

3)主要dns伺服器響應暫存dns伺服器的請求,其實就是一句話「www.google.com對應的ip位址是1.1.1.1」。

4)暫存dns伺服器收到主要dns伺服器的應答後,把應答訊息**給一開始詢問自己的那台個人電腦。

5)您的瀏覽器使用這個正確的ip訪問google主頁。

這就意味著,黑客只要偽造響應報文給暫存dns伺服器,暫存dns伺服器上就記錄了錯誤的網域名稱到ip位址的對應關係,然後暫存dns伺服器把這個錯誤的對應關係發給先前查詢的使用者計算機的瀏覽器,這樣,您儘管在瀏覽器裡輸入的是www.google.com,可訪問的確不是真正的ip位址,這個位址是黑客任意指定的。

紅色線條是黑客在您dns解析時的投毒過程

1)使用者請求暫存dns伺服器返回www.google.com的ip位址。

2)如果暫存dns伺服器上沒有www.google.com對應的ip位址,暫存dns伺服器就會通過迭代的方法最後詢問主要dns伺服器。

3)在主要dns伺服器還未返回給暫存dns伺服器時,黑客趁此時間空隙,把錯誤的對網域名稱到ip的應關係告訴暫存dns伺服器,這就是給dns快取伺服器的一次投毒。

4)暫存dns伺服器回應給使用者錯誤的網域名稱到ip對應關係。

5)使用者訪問黑客任意指定的ip位址,比如指向矛盾網(矛盾網因此獲得了非常高的流量,如果矛盾網想冒充網上銀行也是可以的)。

因為暫存dns伺服器會在一段時間內傳送多個dns查詢報文,所以為了使查詢報文與響應報文匹配,在dns的報頭中使用了id欄位,響應的報頭id必須與先前發出去的查詢報頭id一致才會被暫存dns伺服器收錄,否則丟棄。所以,黑客若想投毒成功,必須猜中查詢報文的id號。dns報頭的id號是16位2進製,也就是有2的16次方=65536個id號,這就是說黑客一次投毒的命中率是1/65536,不過只要攻擊程式稍微優化一下,這個命中率可以縮小到1/655,幾秒鐘就可以搞定。

測試目的

僅為了引起isp(比如,電信、網通)對dns伺服器的安全重視,禁止非法使用。

攻擊工具測試步驟

在命令列下輸入(我用的是linux系統):

[admin@linux]./kaminsky-attack q.q.q.q 202.96.209.5 a.a.a.a 1234 www google.com. 8.8.8.8 8192 16

命令說明

q.q.q.q是傳送dns請求的客戶機ip位址,可以隨意設定

202.96.209.5是上海的dns快取伺服器(黑客投毒的目標)

a.a.a.a是google.com的權威dns伺服器,可以隨便設定

www是主機名

google.com是網域名稱(與www聯合起來就是乙個完整的fqdn名)

8.8.8.8是毒藥,讓dns快取伺服器儲存錯誤的a記錄(網域名稱到ip的對應關係)

8192是猜測次數(次數越大命中率越大)

攻擊原理

這個程式有雙重身份,乙個是普通客戶端,另乙個是黑客,程式先給dns快取伺服器傳送乙個dns解析請求,然後快速給dns快取伺服器傳送8192個偽造的響應包,使其中毒。

重要提示

在測試之前,您應該明白,對於google.com這樣知名的**,幾乎時時有使用者在請求解析,就是說dns快取伺服器上總是有google.com的a記錄,而這時黑客的投毒是無效的。但這並不防礙黑客偽造2級網域名稱,比如:

[admin@linux]./kaminsky-attack q.q.q.q 202.96.209.5 a.a.a.a 1234 aorb google.com. 8.8.8.8 8192 16

因為可以肯定dns快取伺服器上不會有aorb.google.com的a記錄,所以投毒100%成功,與此同時,www.googl.com也中毒了,這是為什麼?如果您了解dns響應報文,就會明白,響應報文中不但會有aorb.google.com的a記錄,還可以捎帶名曰附加記錄的資訊,這裡的附加記錄是www.google.com對應的ip位址。這樣,dns快取伺服器同樣更新了www.google.com對應的錯誤ip位址。

另外,您也可以在本地查詢dns快取伺服器上是否存有目標網域名稱的記錄。在命令列下輸入:

[admin@linux]nslookup

>set norecurse(norecurse是告訴客戶端不使用遞迴查詢,因此,如果dns快取伺服器上沒有目標網域名稱記錄,則會返回相關提示。如果顯示的是非授權區域提供的資訊,則表示dns快取伺服器已經有了目標域的資源記錄)

>google.com

目前還沒有更好辦法阻止黑客的這種行為,只有使dns快取伺服器發出的查詢請求使用動態的udp埠,udp的埠號也是16位2進製,這樣,與dns的id號相結合,號碼的命中率就是1/4294967296(2的32次方)。

這是一段dns投毒動畫

tcp會話劫持

給nginx指定dns伺服器

resolver resolver 192.168.1.251 內部dns伺服器 server 發現個問題,resolver不能指定多個dns伺服器,resolver 192.168.1.251 192.168.1.250 resolver 192.168.1.251,192.168.1.250 r...

DNS(快取伺服器 網域名稱解析伺服器)

先來看看dns伺服器型別 伺服器型別 快取伺服器 主伺服器 正向 反向 從伺服器 不維護區域檔案 伺服器 了解正向解析 反向解析 一 做 惟快取dns伺服器 器 準備工作 一台dns伺服器 192.168.231.31 一台客戶機 192.168.231.32 對伺服器操作 192.168.231....

dns伺服器配置 專案三 DNS伺服器配置

一 專案任務描述 有一所院校,組建了校園內部的區域網並架社內部的web伺服器和ftp伺服器,現需要安裝並配置一台dns伺服器為校園網內部的使用者提供dns服務,使使用者能夠使用網域名稱訪問內部的web 和ftp伺服器以及網際網路上的各個 二 專案任務劃分 子任務1 dns的安裝 子任務2 dns正向...