楊芙容+張雅茜+史洋
摘 要 DNS是把主機域名解析IP地址的系統,DNS欺騙則是攻擊者冒充域名服務器的一種欺騙行為,常見被用做編寫釣魚網站或網頁掛馬等,對用戶上網安全構成嚴重影響。本文首先對DNS基本概念及域名查詢過程進行了簡單陳訴,然后深入闡述了DNS欺騙原理,并利用滲透測試平臺Kali Linux上集成的欺騙工具ettercap完成了DNS欺騙攻擊,最后對DNS的防范措施提出了幾點建議。
關鍵詞 DNS 欺騙 kali Linux Ettercap
中圖分類號:TP399 文獻標識碼:A
1 DNS域名系統
DNS即Domain Name System 的縮寫,是把主機域名解析IP地址的系統。解決了IP地址難記的問題,用相對好記的域名就可以對服務器進行訪問,即使服務器更換了IP地址,我們依舊可以通過域名訪問該服務器,這樣能夠使我們更方便的訪問互聯網。該系統是由解析器和域名服務器組成的。DNS主要基于UDP協議,較少情況下使用TCP協議,端口號均為53。域名系統由三部分組成:DNS名稱空間,域名服務器,DNS客戶機。
DNS屬于分層式命名系統,即采用的命名方式是層次樹狀結構。域名服務器運行模式為客戶機、服務器模式,按域名空間層次可以分為根域名服務器、頂層域名服務器、權限域名服務器、本地域名服務器。域名解析就是將域名解協為IP地址。域名解析的方法有遞歸查詢和迭代查詢。
2 DNS域名查詢過程
DNS是設置在互聯網上很多主機中的一個分布式數據庫,他用來進行域名和IP地址的轉換查詢,并提供電子郵件的路由信息。DNS域名查詢請求與回應的過程可簡單描述成以下五個步驟:(1)網絡用戶的瀏覽器提出將域名轉換為IP地址的請求;(2)地址解析程序resolve生成查詢報文;(3)地址解程序將查詢請求語句封裝在UDP包中發送出去;(4)DNS服務器查找到IP地址并生成相應報文;(5)DNS服務器將查詢結果封裝到UDP報文中發回給查詢者。
3 DNS欺騙原理
DNS欺騙就是利用了DNS協議設計時的一個非常嚴重的安全缺陷。首先欺騙者向目標機器發送構造好的ARP應答數據包,ARP欺騙成功后,嗅探到對方發出的DNS請求數據包,分析數據包取得ID和端口號后,向目標發送自己構造好的一個DNS返回包,對方收到DNS應答包后,發現ID和端口號全部正確,即把返回數據包中的域名和對應的IP地址保存進DNS緩存表中,而后來的當真實的DNS應答包返回時則被丟棄。
以用戶訪問新浪網為例,DNS服務器的域名映射表中有一條信息是:新浪網站的IP地址是119.75.217.109,如果此映射信息中的IP地址被篡改為192.168.83.128。當用戶訪問新浪www.sina.com.cn網站時,從DNS上解析回來的目的IP地址就變成了192.168.83.128,用戶主機按照步驟向192.168.83.128發送請求,收到的確實惡意攻擊或進入不希望訪問的網址。
DNS欺騙的危害是巨大的,常見被利用來釣魚、掛馬等,這在用戶訪問自己的銀行賬戶,在線購書網站甚至是網頁電子郵件時顯得尤為重要。通常情況下,除非發生欺騙攻擊,否則你不可能知道你的DNS已經被欺騙,只是你打開的網頁與你想要看到的網頁有所不同。在很多針對性的攻擊中,用戶都無法知道自己已經將網上銀行帳號信息輸入到錯誤的網址,直到接到銀行的電話告知其帳號,已購買某某高價商品時用戶才會知道。
4 DNS欺騙測試
DNS欺騙也可以被稱為DNS毒化,屬于中間人攻擊,實驗過程中采用虛擬機來模擬DNS欺騙攻擊。測試環境為兩臺虛擬機,一臺為攻擊機裝有Kali Linux系統,IP地址為192.168.83.128,另一臺為靶機裝Windows系統 ,IP地址為192.168.83.130。
Kali Linux是基于Debian的Linux發行版, 設計用于數字取證操作系統,面向專業的滲透測試和安全審計,由Offensive Security Ltd維護和資助。Kali Linux預裝了許多滲透測試軟件,包括nmap 、Wireshark 、John the Ripper ,以及Aircrack-ng.用戶可通過硬盤、live CD或live USB運行Kali Linux。
實驗用到的主要工具是Kali Linux 預裝的Ettercap工具,具體欺騙工程如下:首先來看目標靶機IP地址為192.168.83.130,網關192.168.83.2,Ping www.sina.com.cn解析的IP地址為119.75.217.109,這時訪問新浪所指向到的IP地址是正確的。接著在kali Linux上用ettercap來進行DNS欺騙,首先查看kali linux的ip地址192.168.83.128,進入usr/ettercap路徑下找到etter.dns配置文件。vi編輯配置文件etter.dns添加一條A記錄,將 www.sina.com.cn 指向到本機IP 192.168.83.128。保存并且退出,編輯文件/var/www/html/index.html ,添加
在到靶機上使用ipconfig/flushdns刷新路由信息,ping 新浪域名可以看出,欺騙攻擊之前訪問新浪,返回的地址為119.75.217.109,這時所指向到的IP地址是正確的。DNS欺騙攻擊之后,可以看到訪問已經被指向192.168.83.128,是Kali Linux的IP地址,在瀏覽器中訪問該域名便訪問到事先搭建好的一臺WEB服務器,顯示just kidding! 以上便完成了一次DNS欺騙攻擊。
5 DNS欺騙的防范
DNS欺騙是很難進行有效防御的,因為大多情況下都是被攻擊之后才會發現,而且這種攻擊大多數本質都是被動的。為了竟可能地減少種類型攻擊,提出以下幾點建議:
因為DNS欺騙前提也需要ARP欺騙成功。所以首先做好對ARP欺騙攻擊的防范;其次要保護內部設備:像這樣的攻擊大多數都是從網絡內部執行攻擊的,如果你的網絡設備很安全,那么那些感染的主機就很難向你的設備發動欺騙攻擊。不要依賴于DNS,在高度敏感和安全的系統,你通常不會在這些系統上瀏覽網頁,最好不要使用DNS。如果你有軟件依賴于主機名來運行,那么可以在設備主機文件里手動指定,可以使用hosts文件來實現相同的功能。
關閉DNS服務器的遞歸功能。DNS服務器利用緩存中的記錄信息回答查詢請求或是DNS服務器通過查詢其他服務獲得查詢信息并將它發送給客戶機,這兩種查詢成為遞歸查詢,這種查詢方式容易導致DNS欺騙。使用安全檢測軟件定期檢查系統是否遭受攻擊;使用DNSSEC,DNSSEC是替代DNS的更好選擇,它使用的是數字前面DNS記錄來確保查詢響應的有效性,DNSSEC還沒有廣泛運用,但是已被公認為是DNS的未來方向。
參考文獻
[1] 李建.DNS欺騙攻擊的檢測與防御[J].無線互聯科技,2016(04).
[2] 鄧詩釗.DNS域名安全實時檢測的研究[D].成都:電子科技大學,2015(09).
[3] 雷驚鵬,沙有闖.利用Kali Linux開展滲透測試[J].長春大學學報,2016(06).
[4] 徐光.基于Kali Linux的Web滲透測試研究[J].信息安全與技術,2016(03).endprint