一、欺騙原理
我們以IT專家網爲例,看看正常的DNS請求和被劫持的DNS請求的不同
1、正常的DNS請求流程爲:
(1).在瀏覽器輸入http://security.ctocio.com.cn;
(2).計算機將會向DNS服務器發出請求;
(3).DNS服務器進行處理分析得到ttp://security.ctocio.com.cn的相應地址爲58.xxx.209.xxx;
(4).DNS將把次IP地址58.xxx.209.xxx返回到發出請求的計算機;
(3).你正常登錄到http://security.ctocio.com.cn的網站。
2、被DNS欺騙以後的DNS請求爲:
(1).在瀏覽器輸入http://security.ctocio.com.cn;
(2).計算機將會向DNS服務器發出請求(這裏注意:實際上你發起的請求被髮送到了***者那裏);
(3).***者對請求處理進行僞造DNS回覆報告,返回給計算機的是***者指定的IP地址;
(3).你登錄到的網站實際上不是http://security.ctocio.com.cn,而是掉進了***者設計好的“陷阱網站”。
二、解析DNS報文
DNS報文是我們瞭解DNS***所必須瞭解的知識。
1.格式:(圖1)
圖1
2.DNS報文結構分爲
圖2
QR 如果QR位設置爲0表示報文是查詢,如果爲1表示響應
opcode 通常是0,指標準查詢,1是反向查詢,2是服務器狀態查詢
TC 截斷,如果UDP包超過512字節將被截流
RD 表示希望遞歸,如果它設爲1的話,表示遞歸查詢
RA 如果設爲1,表示遞歸可用
Zero 如它的名稱一樣,總是0
rcode 0表示有錯誤,3表示名字錯誤
3.DNS查詢報文,圖3爲DNS報文查詢的格式。
圖3
4.DNS響應報文,如圖4。
圖4
響應報文有個共同的格式,我們稱之爲資源記錄---RR響應報文的格式(RR)如下:
域名:域名是與下面的資源數據對應的名字,它的格式同前面講到的查詢一樣。
類型:類型標識了RR類型代碼號,它同前面查詢類值一樣。
類:通常爲1,表示因特網數據。
生存時間:表示客戶方將RR放在高速緩存裏的時間,RRs的TTL通常爲2天。
資源數據長度:標識資源數據的大小。
概念:說到這裏,對於網絡基礎知識有一定了解的朋友都知道,當客戶向一臺服務器發送請求服務時,服務器會根據客戶的 IP地址反向解析出該IP對應的域名。這種反向城名解析就是一個查DNS(域名解析服務器 ) 的過程。
我們換一下思路,如果服務器在進行DNS查詢時能夠人爲地給它我們自己的應答信息,那麼結果會怎樣呢?
答案顯然不用我說了,這就是所謂的DNS欺編 (dnsspoofing )。說實話,“DNS欺騙”威力巨大,如果被***者巧妙利用,在BBS上隱藏IP是輕而易舉,人侵局域網更是痛快淋漓。
三、欺騙測試
爲了讓大家多DNS欺騙有切實的認識,我用虛擬機搭建了一個測試環境:
操作系統:Windows 2003
Web服務器:IIS 6.0
服務器IP地址:192.168.0.5
物理主機的IP地址:192.168.0.6
工具:
dnshack.exe:DNS欺騙的工具
使用方法:
dnshack.exe 你在局城網的IP 你要欺騙的IP
記事本
第一步:打開記事本創建一個簡單的html文件,主要是用來看欺騙的效果。把如下的html代碼保存爲index.html文件:
<HTML>
<HEAD>
<TITLE>★★DNS欺騙測試頁面★★</TITLE>
<H1>這是一個DNS的欺騙頁面</H1>
<H1>如果你看到這個頁面說明欺騙成功了!</H1>
<H4>甘肅 老五</H4>
</BODY></HTML>
提示:***者通常把這個頁面做成一個掛馬頁面,那危害非常大!
第二步:把index.html文件拷貝到部署好的web服務器的網站更目錄下,並且在IIS管理器中添加網站的默認主頁爲index.heml,啓動爲web服務器。
第三步:在虛擬機的命令提示符下輸入如下命令並回車:
dnshack 192.168.0.5 192.168.0.6 (圖5)
圖5
說明:上面命令的意思是:欺騙IP爲192.168.0.6的主機,其在瀏覽器中輸入的URL地址打開的都是IP爲192.168.0.5的虛擬服務器的index.html頁面。
圖6
總結:整個測試過程結束,我們瞭解了DNS欺騙的原理及其過程,那該如何杜絕DNS欺騙呢?
四、解決辦法
2.對高標準的服務器來說,應該做到以下幾點:
(1)安裝新版軟件
(2)關閉服務器的遞歸功能
(3)限制城名服務器做出反應的地址
(4)限制城名服務器做出遞歸相應的請求地址
(5)限制發去請求的地址
(5)手動修改本地hosts文件來解
(7)用專用工具,比如AntiARP-DNS