• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 幾個DNS問題和網絡攻擊與防范

    發表于:2007-06-23來源:作者:點擊數: 標簽:
    下一頁 1 2 幾個DNS問題和 網絡 攻擊與防范 現在的Inte .net 上存在的DNS 服務器 有絕大多數都是用bind來架設的,使用的bind版本主要為bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.這些bind有個共同的特點,就是BIND會緩存(Cache)所有已經查詢過的結果,這個

    下一頁 1 2 

       

    幾個DNS問題和網絡攻擊與防范
    現在的Inte.net上存在的DNS服務器有絕大多數都是用bind來架設的,使用的bind版本主要為bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.這些bind有個共同的特點,就是BIND會緩存(Cache)所有已經查詢過的結果,這個問題就引起了下面的幾個問題的存在.(什么叫BIND?BIND是一款由ISC維護的Internet域名名字系統實現。)

    1>.DNS欺騙
    在DNS的緩存還沒有過期之前,如果在DNS的緩存中已經存在的記錄,一旦有客戶查詢,DNS服務器將會直接返回緩存中的記錄.

    下面我們來看一個例子:
    一臺運行著unix的Internet主機,并且提供rlogin服務,它的IP地址為123.45.67.89,它使用的DNS服務器(即/etc/resolv.conf中指向的DNS服務器)的IP地址為98.76.54.32,某個客戶端(IP地址為38.222.74.2)試圖連接到unix主機的rlogin端口,假設unix主機的/etc/hosts.equiv文件中使用的是dns名稱來允許目標主機的訪問,那么unix主機會向IP為98.76.54.32的DNS服務器發出一個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服務器中沒有這個反向查詢域的信息,經過一番查詢,這個DNS服務器找到38.222.74.2和38.222.74.10為74.222.38.in-addr.arpa.的權威DNS服務器,所以它會向38.222.74.2發出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記錄,讓它返回我們所需要的結果:


    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服務器收到這個應答后,會把結果轉發給123.45.67.98,就是那臺有rlogin服務的unix主機(也是我們的目標 :) ),并且98.76.54.32這臺DNS服務器會把這次的查詢結果緩存起來.


    這時unix主機就認為IP地址為38.222.74.2的主機名為trusted.host.com,然后unix主機查詢本地的/etc/hosts.equiv文件,看這臺主機是否被允許使用rlogin服務,很顯然,我們的欺騙達到了.

    在unix的環境中,有另外一種技術來防止這種欺騙的發生,就是查詢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服務器不會去查詢這個記錄,而會直接返回在查詢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

    那么現在unix主機就認為38.222.74.2就是真正的trusted.host.com了,我們的目的達到了!

    這種IP欺騙的條件是:你必須有一臺Internet上的授權的DNS服務器,并且你能控制這臺服務器,至少要能修改這臺服務器的DNS記錄,我們的欺騙才能進行.


    2>.拒絕服務攻擊 Denial of service

    還是上面的例子,如果我們更改位于38.222.74.2的記錄,然后對位于98.76.54.32的DNS服務器發出2.74.222.38.in-addr.arpa的查詢,并使得查詢結果如下:
    因為74.222.38.in-addr.arpa完全由我們控制,所以我們能很方便的修改這些信息來實現我們的目的.

    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服務器的用戶就不能訪問www.company.com了,因為這個IP根本就不存在!

    3>.偷取服務 Theft of services

    還是上面的例子,只是更改的查詢結果如下:

    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 CNAMEwww.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的用戶會被帶到另外一個地方,甚至是敵對的公司的竹葉(想想把華為和北電聯起來是什么樣的感覺. :) ).并且發給company.com的郵件會被發送給mail.compertitor.com.(越來越覺得在網絡上的日子不踏實! xxbin這樣想).

    4>.限制

    對這些攻擊,也有一定的限制.
    首先,攻擊者不能替換緩存中已經存在的記錄.比如說,如果在98.76.54.32這個DNS服務器上已經有一條www.company.com的CNAME記錄,那么攻擊者試圖替換為www.competitor.com將不會成功.然而,一些記錄可以累加,比如A記錄,如果在DNS的緩存中已經存在一條www.company.com的A記錄為1.2.3.4,而攻擊者卻欺騙DNS服務器說www.company.com的A記錄為4.3.2.1,那么www.company.com將會有兩個A記錄,客戶端查詢時會隨機返回其中一個.(呵呵,這不是loading balance么?)

    其次,DNS服務器有個緩存刷新時間問題,如果www.netbuddy.org的TTL為7200,那么DNS服務器僅僅會把www.netbuddy.org的信息緩存7200秒或者說兩個小時.如果攻擊者放入一條TLL為604800的A記錄,那么這條記錄將會在緩存中保存一周時間,過了默認的兩天后,這個DNS服務器就會到處"分發"攻擊者假造的記錄.

    下面是常用的幾種可以累加和不能累加的記錄:

    A can add
    NS can add
    MX can add
    PTR cannot add
    CNAME cannot add

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
     

     

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>