卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

DNS攻擊詳解

DNS ID Hackingwww.rising.com.cn 2002-12-11 14:09:00 信息源:www.xfocus.org 作者:quack(quack@hack.co.za)參

DNS ID Hacking

www.rising.com.cn 2002-12-11 14:09:00 信息源:www.xfocus.org 作者:quack(quack@hack.co.za)

參考資料:DNS ID Hacking by ADM crew

一、關(guān)于DNS ID Hacking的一些描述

你可能會對DNS ID Hackingspoofing的含義有些迷惑,它與一般直接攻擊一樣,只

不過利用的是DNS 協(xié)議上的漏洞,并且可能有較大的普遍性及傷害作用——好象沒什 么DNS 服務(wù)器能夠逃過它——甚至WINNT 。

1、DNS 協(xié)議機(jī)制簡述

首先我們來看看DNS 是如何工作的,我將在這里說明這一協(xié)議中相對重要的一些部份。為了更好的敘述,我們先用一個實(shí)例來看一看一個DNS 請求的信息包是如何在網(wǎng)絡(luò)里傳送的吧。

1.1 :客戶機(jī)(bla.bibi.com)發(fā)送一個請求要求解析域名"www.heike.com" ,bla.bibi.com

的DNS 是ns.bibi.com 這臺機(jī)器,現(xiàn)在我們看看下圖吧:

/---------------------------------

| 111.1.2.123 = bla.bibi.com |

| 111.1.2.222 = ns.bibi.com |

| 格式: |

| IP_ADDR:PORT->IP_ADDR:PORT |

| 示例: |

| 111.1.2.123:2999->111.1.2.222:53|

---------------------------------/

這圖是我們要分析的情況的示意,應(yīng)該很清楚了,好,那就看看gethostbyname 是

,

如何

工作的:

....

gethosbyname("www.heike.com");

....

[bla.bibi.com] [ns.bibi.com]

111.1.2.123:1999 --->[?www.heike.com]------> 111.1.2.222:53

這里我們可以看到這個名字請求從bla.bibi.com 的1999端口(隨機(jī)選擇) 發(fā)送到了dns

機(jī)器的53端口——DNS 的綁定端口。

dns.bibi.com 收到這個解析的請求后,就開始了它的工作了……

[ns.bibi.com] [ns.internic.net]

111.1.2.222:53 -------->[dns?www.heike.com]----> 198.41.0.4:53

它先問ns.internic.net 哪臺機(jī)器是www.heike.com 的主名稱服務(wù)器,如果沒查到的話

它就把請求發(fā)往.com 域的權(quán)威服務(wù)器。在這里要先問ns.internic.net 的原因是,可 能這個域名在它的緩存里存在著——這可以節(jié)約時間。

[ns.internic.net] [ns.bibi.com] 198.41.0.4:53 ------>[ns for.com is 144.44.44.4]------> 111.1.2.222:53 這里ns.internic.net 就回答了ns.bibi.com ,.com 的權(quán)威DNS 的IP 在

144.44.44.4,我

們叫它ns.for.com 吧,然后ns.bibi.com 會問ns.for.com 關(guān)于www.heike.com 的地址, 仍然沒有找到——于是又請求heike.com 的DNS 權(quán)威服務(wù)器的地址。

[ns.bibi.com] [ns.for.com]

,

111.1.2.222:53 ------>[?www.heike.com]-----> 144.44.44.4:53

ns.for.com 的應(yīng)答。

[ns.for.com] [ns.bibi.com] 144.44.44.4:53 ------>[ns for heike.com is 31.33.7.4]---> 144.44.44.4:53 現(xiàn)在我們知道了管heike.com 域的權(quán)威服務(wù)器的IP 地址了,姑且稱之為

ns.heike.com

吧,我們可以問它www.hieke.com 的IP 地址了;)

[ns.bibi.com] [ns.heike.com]

111.1.2.222:53 ----->[?www.heike.com]----> 31.33.7.4:53

現(xiàn)在我們得到了www.heike.com 的IP 嘍!

[ns.heike.com] [ns.bibi.com] 31.33.7.4:53 ------->[www.heike.com == 31.33.7.44] ----> 111.1.2.222:53 ns.bibi.com 把它轉(zhuǎn)發(fā)給剛才發(fā)送請求的機(jī)器bla.bibi.com

[ns.bibi.com] [bla.bibi.com] 111.1.2.222:53 ------->[www.heike.com == 31.33.7.44]----> 111.1.2.123:1999 呵呵,現(xiàn)在bla.bibi.com 就曉得www.heike.com 的IP 地址了 :)

好了,現(xiàn)在我們假想另一種情況吧,我們希望通過機(jī)器的IP 來得到它的域名,為了做

到這點(diǎn),我們做的是所謂的" 指針查詢" 。由于DNS 樹中名字是從底向上寫的,所以我們 要做如下的一個轉(zhuǎn)換:

示例:

100.20.40.3將被表示為3.40.20.100.in-addr.arpa

,

這種方式僅用于DNS 的IP 解析請求。

現(xiàn)在來看看我們通過31.33.7.44(www.heike.com)的IP 來查詢它的域名的過程吧,或者

說是通過44.7.33.31.in-addr.arpa 來查詢它的域名的過程;)

....

gethostbyaddr("31.33.7.44");

....

[bla.bibi.com] [ns.bibi.com] 111.1.2.123:2600 ----->[?44.7.33.31.in-addr.arpa]-----> 111.1.2.222:53 我們發(fā)送請求到ns.bibi.com

[ns.bibi.com] [ns.internic.net] 111.1.2.222:53 ----->[?44.7.33.31.in-addr.arpa]------> 198.41.0.4:53 ns.internic.net 將會把認(rèn)證該IP 的地址'31.in-addr.arpa' 返回給請求者

[ns.internic.net] [ns.bibi.com]

198.41.0.4:53 --> [DNS for 31.in-addr.arpa is 144.44.44.4] -> 111.1.2.222:53 現(xiàn)在ns.bibi.com 向144.44.44.4問同樣的問題

[ns.bibi.com] [ns.for.com] 111.1.2.222:53 ----->[?44.7.33.31.in-addr.arpa]------> 144.44.44.4:53 如此循環(huán),其實(shí)這種方式與gethostbyname 沒有什么兩樣……

我希望你能理解上述的DNS 對話,現(xiàn)在我們開始進(jìn)一步了解DNS 報文的格式吧。

1.2 : DNS報文

,

這里是DNS 報文的大致格式:

--------------------------- ---------------------------

| 標(biāo)識 (最重要的 :) | 參數(shù) |

--------------------------- ---------------------------

| 問題數(shù) | 回答數(shù) |

--------------------------- ---------------------------

| 管理機(jī)構(gòu)數(shù) | 附加信息數(shù) |

--------------------------- ---------------------------

| |

問題

| |

-------------------------------------------------------

| |

回答

| |

-------------------------------------------------------

| |

附加信息(無關(guān)緊要)

| |

-------------------------------------------------------

1.3 :DNS 報文結(jié)構(gòu)

標(biāo)識(id)

這是用來鑒證每個DNS 報文的印記,由客戶端設(shè)置,由服務(wù)器返回,它可以讓客戶匹

,

配請求與響應(yīng)。后面我們將更詳細(xì)地提到……

參數(shù)(flags)

參數(shù)域被分成好幾個部份:

4 位 3 位, 總是0

| |

| |

[QR | opcode | AA| TC| RD| RA | zero | rcode ]

|

| |__|__|__| |______ 4 位

| |_ 1 位

|

1 位

QR = 如果QR 位設(shè)為0表示報為是查詢,如果1則是響應(yīng)

opcode = 通常是0,指標(biāo)準(zhǔn)查詢,1是反向查詢,2是服務(wù)器狀態(tài)查詢。 AA = 如果此位為1,表示服務(wù)器對問題部份的回答是權(quán)威性的。

TC = 截斷,如果UDP 包超過512字節(jié)將被截流

RD = 表示希望遞歸,如果它設(shè)為1的話,表示遞歸查詢。

RA = 如果設(shè)為1,表示遞歸可用。

Zero = 如它的名稱一樣,總是0

rcode = 就象errno 一樣,0表示沒有錯誤,3表示名字錯誤。

DNS 查詢報文:

下面是DNS 報文查詢的格式:

----------------------------------------------------------------------- | 查詢名 | -----------------------------------------------------------------------

,

| 查詢類型 | 查詢類 | -------------------------------- -------------------------------------- 一個報文查詢的結(jié)構(gòu)是下面這樣的

示例:

www.heike.com 是[3|w|w|w|5|h|e|i|k|e|3|c|o|m|0]

對IP 地址來說,也是同樣的;)

44.33.88.123.in-addr.arpa 是:

[2|4|4|2|3|3|2|8|8|3|1|2|3|7|i|n|-|a|d|d|r|4|a|r|p|a|0]

還有一種壓縮格式,但我們不需要用到,就略過了。

查詢類型:

這里是一些我們最經(jīng)常用到的查詢類型——這些類型大約有20種不同的類型,我可懶得全部列出來了;)

名稱 值

A | 1 | IP地址 (將域名解析為IP)

PTR | 12 | 指針 (將IP 解析為域名)

DNS 響應(yīng)報文:

響應(yīng)報文有個共同的格式,我們稱之為資源記錄——RR

下面是響應(yīng)報文的格式(RR)

------------------------------------------------------------------------ | 域名 | ------------------------------------------------------------------------

,

| 類型 | 類 | ---------------------------------- ------------------------------------- | TTL (生存時間) | ------------------------------------------------------------------------ | 資源數(shù)據(jù)長度 | | |---------------------------- | | 資源數(shù)據(jù) | ------------------------------------------------------------------------- 域名:

域名是與下面的資源數(shù)據(jù)對應(yīng)的名字,它的格式同前面講到的查詢名一樣,比如還是

www.heike.com 吧,它的域名是用下面方式表現(xiàn)的:[3|w|w|w|5|h|e|i|k|e|3|c|o|m|0] 類型:

類型標(biāo)識了RR 類型代碼號,它同前面講到的查詢類值一樣。

類:

通常為1,表示因特網(wǎng)數(shù)據(jù)。

生存時間:

表示客戶方將RR 放在高速緩存里的時間,RRs 的TTL 通常為2天。

資源數(shù)據(jù)長度:

標(biāo)識資源數(shù)據(jù)的大小。

下面我們將用一個簡單的例子來幫助大家理解:

這個例子展示了當(dāng)ns.bibi.com 向ns.heike.com 詢問www.heike.com 地址時,這

,

些數(shù)據(jù)報文的模樣。

ns.bibi.com:53 ---> [?www.heike.com] ----> ns.heike.com:53 (Phear Heike ;) --------------------------------- -------------------------------------- | 標(biāo)識(ID) = 1999 | QR = 0 opcode = 0 RD = 1 | --------------------------------- -------------------------------------- | 問題數(shù) = htons(1) | 回答數(shù) = 0 | --------------------------------- -------------------------------------- | 管理機(jī)構(gòu)數(shù) = 0 | 附加信息數(shù) = 0 | --------------------------------- -------------------------------------- <問題部份>

------------------------------------------------------------------------ | 查詢名 = [3|w|w|w|5|h|e|i|k|e|3|c|o|m|0] | ------------------------------------------------------------------------ | 查詢類型 = htons(1) | 查詢類=htons(1) | --------------------------------- -------------------------------------- 上面是查詢報文

現(xiàn)在我們來看看ns.heike.com 的回答

ns.heike.com:53 -->[IP of www.heike.com is 31.33.7.44] --> ns.bibi.com:53 --------------------------------- ---------------------------------------

| 標(biāo)識(ID) = 1999 | QR=1 opcode=0 RD=1 AA =1 RA=1 | --------------------------------- ---------------------------------------

| 問題數(shù) = htons(1) | 回答數(shù) = htons(1) | --------------------------------- ---------------------------------------

,

| 管理機(jī)構(gòu)數(shù) = 0 | 附加信息數(shù) = 0 | --------------------------------- ---------------------------------------

-------------------------------------------------------------------------

| 查詢名 = [3|w|w|w|5|h|e|i|k|e|3|c|o|m|0] | -------------------------------------------------------------------------

| 查詢類型 = htons(1) | 查詢類 = htons(1) | -------------------------------------------------------------------------

-------------------------------------------------------------------------

| 查詢名 = [3|w|w|w|5|h|e|i|k|e|3|c|o|m|0] | -------------------------------------------------------------------------

| 類型 = htons(1) | 類 = htons(1) | -------------------------------------------------------------------------

| time to live = 999999 | -------------------------------------------------------------------------

| 資源數(shù)據(jù)長度 = htons(4) | 資源數(shù)據(jù)=inet_addr("31.33.7.44") | -------------------------------------------------------------------------

OK,就這么多了;)

分析:

在應(yīng)答中QR = 1 是因?yàn)樗菓?yīng)答;)

標(biāo)簽: