1. 程式人生 > 實用技巧 >HCIE網路安全第四天

HCIE網路安全第四天

DNS毒化攻擊

DNS系統概述
域名系統DNS(domain name system)是因特網使用的命名系統,用來把便於人們記憶的含有特定含義的主機名轉換為便於機器處理的IP地址,值得注意的是,DNS系統採用C/S架構,其協議執行在UDP之上,使用53號埠。DNS分為三個部分,層次域名空間,域名伺服器和解析器。

DNS域名系統結構
頂級域名(Top name domain TLD):有以下大三類
1.國家級頂級域名nTLD,國家和某些地區的域名,如“.cn”表示中國,“.us”表示美國,“.uk”表示英國,“.hk”表示中國香港特區。
2.通用頂級域名gTLD.常見的有“.com”(公司企業)“.net”(網路服務機構)“.org”(非營利性的組織)“.gov”(美國的政府部門)等。

3.基礎結構域名。這種頂級域名只有一個,即arga,用於反向域名解析,因此又稱為反向域名。
國家頂級域名註冊的二級域名均由國家自行確定。
下圖是域名空間的結構:
在這裡插入圖片描述
在域名系統中,每個域分別由不同的組織進行管理,每個組織都可以將它的域再分成一定數目的子域,並將這些子域委託給其他組織去管理。

域名伺服器

  1. 根域名伺服器
    根域名伺服器是最高層次的域名伺服器。
    所有的根域名伺服器都知道所有的頂級域名伺服器的IP地址。
    根域名伺服器也是最重要的域名伺服器,不管是哪一個本地域名伺服器,若要對因特網上任何一個域名進行解析,只要自己無法解析,就首先要求助於根域名伺服器。
    因特網上有著13個根域名伺服器,儘管我們將這13個根域名伺服器中的每個都是為單個的伺服器,但每臺“伺服器”實際上是冗餘伺服器的叢集,以提供安全性和可靠性。
  2. 頂級域名伺服器
    這些域名伺服器負責管理在該頂級域名伺服器註冊的二級域名。當收到DNS查詢請求時,就給出相應的回答(可能是最後的結果,也可能是下一步應當查詢的域名伺服器的IP地址)。
  3. 授權域名伺服器
    每一個主機都必須在授權域名伺服器處登記,為了更加可靠地工作,一個主機最好至少有兩個授權域名伺服器,實際上,許多域名伺服器都同時充當本地域名伺服器和授權域名伺服器。授權域名伺服器總是能夠將其管轄的主機名的IP地址。
  4. 本地域名伺服器
    本地域名伺服器對域名系統非常重要,每一個因特網服務提供者ISP,或一個大學,甚至一個大學裡的系,都可以擁有一個本地域名伺服器,當一個主機發出DNS查詢請求時,這個查詢請求報文就傳送給該主機的本地域名伺服器。

域名解析過程
域名解析也就是把域名對映成IP地址或者把IP地址對映成為域名的過程。前者稱為正向解析,後者稱為反向解析。當客戶端需要域名解析時,通過本機的DNS客戶端構造一個DNS請求報文,以UDP資料報方式發往本地域名伺服器。
域名解析有兩種方式:遞迴查詢和迭代查詢。
在這裡插入圖片描述

  • 主機向本地域名伺服器的查詢採用的是遞迴查詢
    如果本地主機所詢問的本地域名伺服器不知道被查詢的域名IP地址,那麼本地域名伺服器就以DNS客戶的身份,向根域名伺服器繼續發出查詢請求報文(替該主機繼續查詢),而不是讓該主機自己進行下一步查詢。
  • 本地域名伺服器向根域名伺服器的查詢採用迭代查詢
    當根域名伺服器收到本地域名伺服器發出的迭代查詢請求報文時,要麼給出所要查詢的IP地址,要麼告訴本地域名伺服器“下一步應當向哪一個頂級域名伺服器進行查詢”然後讓本地域名伺服器向這個頂級域名伺服器進行後續的查詢。同樣,頂級域名伺服器收到查詢報文後,要麼給出所要查詢的IP地址,要麼告訴本地域名伺服器下一步應當向哪一個許可權域名伺服器查詢。最後返還結果。

DNS毒化原理

  • 其核心是攻擊者通過篡改DNS記錄裡一條或多條A記錄,使使用者在訪問某站點時,實際訪問的是攻擊者精心偽造的克隆站點,從而攻擊者通過報文嗅探等方式獲取使用者私密資料的行為。
  • 如果攻擊者獲取了使用者用於DNS解析的真實DNS伺服器的控制權,就可以通過在DNS伺服器裡新增一條A記錄的行為實現DNS毒化。
  • 如果沒有獲取DNS控制權,攻擊者可以通過偽造DNS伺服器、ARP欺騙等手段,使使用者在進行DNS解析時,得到被篡改的A記錄。今天,我們就通過兩個工具的使用和學習來深刻理解DNS毒化。

實施DNS毒化攻擊的工具:
netwox 105號工具
netwox 105 -h hostname -H ip -a hostname -A ip [-d device]
-h是要毒化的域名
-H是仿冒該毒化域名server的IP
-a是dns伺服器中的對映域名
-A是dns伺服器中的對映 IP
-d是傳送該報文的介面

防禦技術:

  • 及時檢查自己的DNS伺服器是否存在DNS快取中毒漏洞,如果發現了自己的DNS伺服器存在該漏洞就可以在被攻擊前採取措施修補,避免攻擊事件的發生。
  • 隨機選擇一個埠作為DNS用途。
  • 加密所有對外的資料流,對伺服器來說就是儘量使用SSH之類的有加密支援的協議,對一般使用者應該用PGP之類的軟體加密所有發到網路上的資料。
  • 及時重新整理DNS,DNS快取會被重建,再次用域名訪問IP伺服器,故障消失。
  • 採用域名系統安全協議(DNSSEC)機制,依靠公鑰技術對於包含在DNS中的資訊建立密碼簽名。