DNS欺騙
發(fā)布日期:2021-12-18 18:31 | 文章來源:源碼中國
定義: DNS欺騙就是攻擊者冒充域名服務(wù)器的一種欺騙行為。
原理:如果可以冒充域名服務(wù)器,然后把查詢的IP地址設(shè)為攻擊者的IP地址,這樣的話,用戶上網(wǎng)就只能看到攻擊者的主頁,而不是用戶想要取得的網(wǎng)站的主頁了,這就是DNS欺騙的基本原理。DNS欺騙其實并不是真的“黑掉”了對方的網(wǎng)站,而是冒名頂替、招搖撞騙罷了。
現(xiàn)在的Internet上存在的DNS服務(wù)器有絕大多數(shù)都是用bind來架設(shè)的,使用的bind版本主要為bind 4.9.5 P1以前版本和bind 8.2.2-P5以前版本.這些bind有個共同的特點,就是BIND會緩存(Cache)所有已經(jīng)查詢過的結(jié)果,這個問題就引起了下面的幾個問題的存在.
1>.DNS欺騙
在DNS的緩存還沒有過期之前,如果在DNS的緩存中已經(jīng)存在的記錄,一旦有客戶查詢,DNS服務(wù)器將會直接返回緩存中的記錄.
下面我們來看一個例子:
一臺運行著unix的Internet主機,并且提供rlogin服務(wù),它的IP地址為123.45.67.89,它使用的DNS服務(wù)器(即/etc/resolv.conf中指向的DNS服務(wù)器)的IP地址為98.76.54.32,某個客戶端(IP地址為38.222.74.2)試圖連接到unix主機的rlogin端口,假設(shè)unix主機的/etc/hosts.equiv文件中使用的是dns名稱來允許目標主機的訪問,那么unix主機會向IP為98.76.54.32的DNS服務(wù)器發(fā)出一個PTR記錄的查詢:
123.45.67.89 -> 98.76.54.32 [Query]
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: 2.74.222.38.in-addr.arpa PTR
IP為98.76.54.32的DNS服務(wù)器中沒有這個反向查詢域的信息,經(jīng)過一番查詢,這個DNS服務(wù)器找到38.222.74.2和38.222.74.10為74.222.38.in-addr.arpa.的權(quán)威DNS服務(wù)器,所以它會向38.222.74.2發(fā)出PTR查詢:
98.76.54.32 -> 38.222.74.2 [Query]
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: 2.74.222.38.in-addr.arpa PTR
請注意,38.222.74.2是我們的客戶端IP,也就是說這臺機子是完全掌握在我們手中的.我們可以更改它的DNS記錄,讓它返回我們所需要的結(jié)果:
38.222.74.2 -> 98.76.54.32 [Answer]
NQY: 1 NAN: 2 NNS: 2 NAD: 2
QY: 2.74.222.38.in-addr.arpa PTR
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com
AN: trusted.host.com A 38.222.74.2
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
當98.76.54.32的DNS服務(wù)器收到這個應(yīng)答后,會把結(jié)果轉(zhuǎn)發(fā)給123.45.67.98,就是那臺有rlogin服務(wù)的unix主機(也是我們的目標 :) ),并且98.76.54.32這臺DNS服務(wù)器會把這次的查詢結(jié)果緩存起來.
這時unix主機就認為IP地址為38.222.74.2的主機名為trusted.host.com,然后unix主機查詢本地的/etc/hosts.equiv文件,看這臺主機是否被允許使用rlogin服務(wù),很顯然,我們的欺騙達到了.
在unix的環(huán)境中,有另外一種技術(shù)來防止這種欺騙的發(fā)生,就是查詢PTR記錄后,也查詢PTR返回的主機名的A記錄,然后比較兩個IP地址是否相同:
123.45.67.89 -> 98.76.54.32 [Query]
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: trusted.host.com A
很不幸,在98.76.54.32的DNS服務(wù)器不會去查詢這個記錄,而會直接返回在查詢2.74.222.38.in-addr.arpa時得到的并且存在緩存中的信息:
98.76.54.32 -> 123.45.67.89 [Query]
NQY: 1 NAN: 1 NNS: 2 NAD: 2
QY: trusted.host.com A
AN: trusted.host.com A 38.222.74.2
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
那么現(xiàn)在unix主機就認為38.222.74.2就是真正的trusted.host.com了,我們的目的達到了!
這種IP欺騙的條件是:你必須有一臺Internet上的授權(quán)的DNS服務(wù)器,并且你能控制這臺服務(wù)器,至少要能修改這臺服務(wù)器的DNS記錄,我們的欺騙才能進行.
2>.拒絕服務(wù)攻擊 Denial of service
還是上面的例子,如果我們更改位于38.222.74.2的記錄,然后對位于98.76.54.32的DNS服務(wù)器發(fā)出2.74.222.38.in-addr.arpa的查詢,并使得查詢結(jié)果如下:
因為74.222.38.in-addr.arpa完全由我們控制,所以我們能很方便的修改這些信息來實現(xiàn)我們的目的.
38.222.74.2 -> 98.76.54.32 [Answer]
NQY: 1 NAN: 2 NNS: 2 NAD: 2
QY: 2.74.222.38.in-addr.arpa PTR
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com
AN: www.company.com A 0.0.0.1
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
這樣一來,使用98.76.54.32這臺DNS服務(wù)器的用戶就不能訪問www.company.com了,因為這個IP根本就不存在!
3>.偷取服務(wù) Theft of services
還是上面的例子,只是更改的查詢結(jié)果如下:
38.222.74.2 -> 98.76.54.32 [Answer]
NQY: 1 NAN: 3 NNS: 2 NAD: 2
QY: 2.74.222.38.in-addr.arpa PTR
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com
AN: www.company.com CNAME www.competitor.com
AN: company.com MX 0 mail.competitor.com
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
這樣一來,一個本想訪問http://www.competitor.com的用戶會被帶到另外一個地方,甚至是敵對的公司的竹葉(想想把華為和北電聯(lián)起來是什么樣的感覺. :) ).并且發(fā)給company.com的郵件會被發(fā)送給mail.compertitor.com.(越來越覺得在網(wǎng)絡(luò)上的日子不踏實! xxbin這樣想).
4>.限制
對這些攻擊,也有一定的限制.
首先,攻擊者不能替換緩存中已經(jīng)存在的記錄.比如說,如果在98.76.54.32這個DNS服務(wù)器上已經(jīng)有一條www.company.com的CNAME記錄,那么攻擊者試圖替換為www.competitor.com將不會成功.然而,一些記錄可以累加,比如A記錄,如果在DNS的緩存中已經(jīng)存在一條www.company.com的A記錄為1.2.3.4,而攻擊者卻欺騙DNS服務(wù)器說www.company.com的A記錄為4.3.2.1,那么www.company.com將會有兩個A記錄,客戶端查詢時會隨機返回其中一個.(呵呵,這不是loading balance么?)
其次,DNS服務(wù)器有個緩存刷新時間問題,如果www.netbuddy.org的TTL為7200,那么DNS服務(wù)器僅僅會把www.netbuddy.org的信息緩存7200秒或者說兩個小時.如果攻擊者放入一條TLL為604800的A記錄,那么這條記錄將會在緩存中保存一周時間,過了默認的兩天后,這個DNS服務(wù)器就會到處"分發(fā)"攻擊者假造的記錄.
下面是常用的幾種可以累加和不能累加的記錄:
A can add
NS can add
MX can add
PTR cannot add
原理:如果可以冒充域名服務(wù)器,然后把查詢的IP地址設(shè)為攻擊者的IP地址,這樣的話,用戶上網(wǎng)就只能看到攻擊者的主頁,而不是用戶想要取得的網(wǎng)站的主頁了,這就是DNS欺騙的基本原理。DNS欺騙其實并不是真的“黑掉”了對方的網(wǎng)站,而是冒名頂替、招搖撞騙罷了。
現(xiàn)在的Internet上存在的DNS服務(wù)器有絕大多數(shù)都是用bind來架設(shè)的,使用的bind版本主要為bind 4.9.5 P1以前版本和bind 8.2.2-P5以前版本.這些bind有個共同的特點,就是BIND會緩存(Cache)所有已經(jīng)查詢過的結(jié)果,這個問題就引起了下面的幾個問題的存在.
1>.DNS欺騙
在DNS的緩存還沒有過期之前,如果在DNS的緩存中已經(jīng)存在的記錄,一旦有客戶查詢,DNS服務(wù)器將會直接返回緩存中的記錄.
下面我們來看一個例子:
一臺運行著unix的Internet主機,并且提供rlogin服務(wù),它的IP地址為123.45.67.89,它使用的DNS服務(wù)器(即/etc/resolv.conf中指向的DNS服務(wù)器)的IP地址為98.76.54.32,某個客戶端(IP地址為38.222.74.2)試圖連接到unix主機的rlogin端口,假設(shè)unix主機的/etc/hosts.equiv文件中使用的是dns名稱來允許目標主機的訪問,那么unix主機會向IP為98.76.54.32的DNS服務(wù)器發(fā)出一個PTR記錄的查詢:
123.45.67.89 -> 98.76.54.32 [Query]
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: 2.74.222.38.in-addr.arpa PTR
IP為98.76.54.32的DNS服務(wù)器中沒有這個反向查詢域的信息,經(jīng)過一番查詢,這個DNS服務(wù)器找到38.222.74.2和38.222.74.10為74.222.38.in-addr.arpa.的權(quán)威DNS服務(wù)器,所以它會向38.222.74.2發(fā)出PTR查詢:
98.76.54.32 -> 38.222.74.2 [Query]
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: 2.74.222.38.in-addr.arpa PTR
請注意,38.222.74.2是我們的客戶端IP,也就是說這臺機子是完全掌握在我們手中的.我們可以更改它的DNS記錄,讓它返回我們所需要的結(jié)果:
38.222.74.2 -> 98.76.54.32 [Answer]
NQY: 1 NAN: 2 NNS: 2 NAD: 2
QY: 2.74.222.38.in-addr.arpa PTR
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com
AN: trusted.host.com A 38.222.74.2
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
當98.76.54.32的DNS服務(wù)器收到這個應(yīng)答后,會把結(jié)果轉(zhuǎn)發(fā)給123.45.67.98,就是那臺有rlogin服務(wù)的unix主機(也是我們的目標 :) ),并且98.76.54.32這臺DNS服務(wù)器會把這次的查詢結(jié)果緩存起來.
這時unix主機就認為IP地址為38.222.74.2的主機名為trusted.host.com,然后unix主機查詢本地的/etc/hosts.equiv文件,看這臺主機是否被允許使用rlogin服務(wù),很顯然,我們的欺騙達到了.
在unix的環(huán)境中,有另外一種技術(shù)來防止這種欺騙的發(fā)生,就是查詢PTR記錄后,也查詢PTR返回的主機名的A記錄,然后比較兩個IP地址是否相同:
123.45.67.89 -> 98.76.54.32 [Query]
NQY: 1 NAN: 0 NNS: 0 NAD: 0
QY: trusted.host.com A
很不幸,在98.76.54.32的DNS服務(wù)器不會去查詢這個記錄,而會直接返回在查詢2.74.222.38.in-addr.arpa時得到的并且存在緩存中的信息:
98.76.54.32 -> 123.45.67.89 [Query]
NQY: 1 NAN: 1 NNS: 2 NAD: 2
QY: trusted.host.com A
AN: trusted.host.com A 38.222.74.2
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
那么現(xiàn)在unix主機就認為38.222.74.2就是真正的trusted.host.com了,我們的目的達到了!
這種IP欺騙的條件是:你必須有一臺Internet上的授權(quán)的DNS服務(wù)器,并且你能控制這臺服務(wù)器,至少要能修改這臺服務(wù)器的DNS記錄,我們的欺騙才能進行.
2>.拒絕服務(wù)攻擊 Denial of service
還是上面的例子,如果我們更改位于38.222.74.2的記錄,然后對位于98.76.54.32的DNS服務(wù)器發(fā)出2.74.222.38.in-addr.arpa的查詢,并使得查詢結(jié)果如下:
因為74.222.38.in-addr.arpa完全由我們控制,所以我們能很方便的修改這些信息來實現(xiàn)我們的目的.
38.222.74.2 -> 98.76.54.32 [Answer]
NQY: 1 NAN: 2 NNS: 2 NAD: 2
QY: 2.74.222.38.in-addr.arpa PTR
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com
AN: www.company.com A 0.0.0.1
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
這樣一來,使用98.76.54.32這臺DNS服務(wù)器的用戶就不能訪問www.company.com了,因為這個IP根本就不存在!
3>.偷取服務(wù) Theft of services
還是上面的例子,只是更改的查詢結(jié)果如下:
38.222.74.2 -> 98.76.54.32 [Answer]
NQY: 1 NAN: 3 NNS: 2 NAD: 2
QY: 2.74.222.38.in-addr.arpa PTR
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com
AN: www.company.com CNAME www.competitor.com
AN: company.com MX 0 mail.competitor.com
NS: 74.222.38.in-addr.arpa NS ns.sventech.com
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com
AD: ns.sventech.com A 38.222.74.2
AD: ns1.sventech.com A 38.222.74.10
這樣一來,一個本想訪問http://www.competitor.com的用戶會被帶到另外一個地方,甚至是敵對的公司的竹葉(想想把華為和北電聯(lián)起來是什么樣的感覺. :) ).并且發(fā)給company.com的郵件會被發(fā)送給mail.compertitor.com.(越來越覺得在網(wǎng)絡(luò)上的日子不踏實! xxbin這樣想).
4>.限制
對這些攻擊,也有一定的限制.
首先,攻擊者不能替換緩存中已經(jīng)存在的記錄.比如說,如果在98.76.54.32這個DNS服務(wù)器上已經(jīng)有一條www.company.com的CNAME記錄,那么攻擊者試圖替換為www.competitor.com將不會成功.然而,一些記錄可以累加,比如A記錄,如果在DNS的緩存中已經(jīng)存在一條www.company.com的A記錄為1.2.3.4,而攻擊者卻欺騙DNS服務(wù)器說www.company.com的A記錄為4.3.2.1,那么www.company.com將會有兩個A記錄,客戶端查詢時會隨機返回其中一個.(呵呵,這不是loading balance么?)
其次,DNS服務(wù)器有個緩存刷新時間問題,如果www.netbuddy.org的TTL為7200,那么DNS服務(wù)器僅僅會把www.netbuddy.org的信息緩存7200秒或者說兩個小時.如果攻擊者放入一條TLL為604800的A記錄,那么這條記錄將會在緩存中保存一周時間,過了默認的兩天后,這個DNS服務(wù)器就會到處"分發(fā)"攻擊者假造的記錄.
下面是常用的幾種可以累加和不能累加的記錄:
A can add
NS can add
MX can add
PTR cannot add
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
上一篇: