假如我們要訪問 www.baidu.com ,首先要向本地DNS服務器發(fā)出DNS請求,查詢 www.baidu.com 的IP地址,如果本地DNS服務器沒有在自己的DNS緩存表中發(fā)現(xiàn)該網(wǎng)址的記錄,就會向根服務器發(fā)起查詢,根服務器收到請求后,將com域服務器的地址返回給本地DNS服務器,本地DNS服務器則繼續(xù)向com域發(fā)出查詢請求,域服務器將 baidu.com 授權域名服務器的地址返回給本地DNS服務器,本地DNS服務器繼續(xù)向 baidu.com 發(fā)起查詢,得到 www.baidu.com 的IP地址。

本地DNS服務器得到 www.baidu.com 對應的IP地址后以dns應答包的方式傳遞給用戶,并且在本地建立DNS緩存表。

Windows下查看和刷清空DNS緩存表的命令: ipconfig /displaydns ipconfig /flushdns

1.2 DNS欺騙原理

盡管DNS在互聯(lián)網(wǎng)中扮演著如此重要的角色,但是在設計DNS協(xié)議時,設計者沒有考慮到一些安全問題,導致了DNS的安全隱患與缺陷。

DNS欺騙就是利用了DNS協(xié)議設計時的一個非常嚴重的安全缺陷。

首先欺騙者向目標機器發(fā)送構造好的ARP應答數(shù)據(jù)包(關于ARP欺騙請看文章《中間人攻擊——ARP欺騙的原理、實戰(zhàn)及防御 》),ARP欺騙成功后,嗅探到對方發(fā)出的DNS請求數(shù)據(jù)包,分析數(shù)據(jù)包取得ID和端口號后,向目標發(fā)送自己構造好的一個DNS返回包,對方收到DNS應答包后,發(fā)現(xiàn)ID和端口號全部正確,即把返回數(shù)據(jù)包中的域名和對應的IP地址保存進DNS緩存表中,而后來的當真實的DNS應答包返回時則被丟棄。

假設嗅探到目標靶機發(fā)出的DNS請求包有以下內(nèi)容:

Sourceaddress :192.168.1.57

Destinationaddress :ns.baidu.com

Sourceport :1234

Destinationport :53(DNS port)

Data:www.baidu.com

我們偽造的DNS應答包如下:

Sourceaddress :ns.baidu.com

Destinationaddress :192.168.1.57

Sourceport :53(DNS port)

Destinationport :1234

Data:www.baidu.com 192.168.1.59

目標靶機收到應答包后把域名以及對應IP保存在了DNS緩存表中,這樣www.baidu.com的地址就被指向到了192.168.1.59上。

2.1 實戰(zhàn)DNS欺騙

同ARP欺騙一樣,DNS欺騙也可以被稱為DNS毒化,屬于中間人攻擊,我還是用虛擬機來模擬DNS欺騙攻擊

用到的工具是Ettercap

首先來看目標靶機,

中間人攻擊——DNS欺騙的原理、實戰(zhàn)及防御

很明顯現(xiàn)在www.baidu.com指向到的IP地址是正確的,

接著我們用ettercap來進行DNS欺騙,首先找到etter.dns這個配置文件并且編輯

添加一條A記錄,將 www.baidu.com 指向到本機IP

中間人攻擊——DNS欺騙的原理、實戰(zhàn)及防御

保存并且退出,使用ettercap開始欺騙:

中間人攻擊——DNS欺騙的原理、實戰(zhàn)及防御

接著我們在到受到攻擊的主機上看一下:

中間人攻擊——DNS欺騙的原理、實戰(zhàn)及防御

可以看到,目標主機對域名www.baidu.com的訪問已經(jīng)被指向到192.168.1.59

在瀏覽器中訪問該域名便訪問到事先搭建好的一臺WEB服務器

中間人攻擊——DNS欺騙的原理、實戰(zhàn)及防御

以上就是一次成功的DNS欺騙

DNS欺騙的危害是巨大的,我不說大家也都懂得,常見被利用來釣魚、掛馬之類的

2.2 DNS欺騙的防范

DNS欺騙是很難進行有效防御的,因為大多情況下都是被攻擊之后才會發(fā)現(xiàn),對于避免DNS欺騙所造成危害,本菜鳥提出以下建議

1.因為DNS欺騙前提也需要ARP欺騙成功。所以首先做好對ARP欺騙攻擊的防范。

2.不要依賴于DNS,盡管這樣會很不方便,可以使用hosts文件來實現(xiàn)相同的功能,Hosts文件位置:

windows xp/2003/vista/2008/7 系統(tǒng)的HOSTS文件位置 c:windowssystem32driversetc 用記事本打開即可進行修改。

3.使用安全檢測軟件定期檢查系統(tǒng)是否遭受攻擊

4.使用DNSSEC。

分享到

zhangcun

相關推薦