技術(shù)難度:★★★★
  重點(diǎn)知識:DNS 0DAY攻擊和威脅

  由于該漏洞的利用細(xì)節(jié)被一名提前知情的黑客“意外”的寫在了自己的博客上,因此很快就有黑客根據(jù)這些細(xì)節(jié)找到了漏洞并編寫可以利用的攻擊代碼.由于該漏洞公布出來還不到一個(gè)月的時(shí)間,因此仍然有部分受到該漏洞威脅的設(shè)備和軟件廠商沒有發(fā)布補(bǔ)丁,這也將許多用戶置于了危險(xiǎn)的黑客攻擊范圍之中,因?yàn)閺慕褚院鬀]有人知道自己輸入網(wǎng)址之后出現(xiàn)的網(wǎng)站是否是真實(shí)的,DNS突然讓網(wǎng)絡(luò)變得不可信起來。

  此次的DNS漏洞并不是針對某一個(gè)操作系統(tǒng)或者軟件的,而是可以廣泛的應(yīng)用于所有的DNS服務(wù)器中,不受操作系統(tǒng)等限制,因此包括Cisco、Apple、Linux等許多知名廠商的產(chǎn)品都或多或少會受到影響。

  當(dāng)DNS喝下“毒藥”

  在互聯(lián)網(wǎng)中,DNS負(fù)責(zé)轉(zhuǎn)換主機(jī)名為IP地址,是Internet連接系統(tǒng)中重要的操作,網(wǎng)絡(luò)中每一個(gè)域名都對應(yīng)一個(gè)惟一的IP地址,這一命名的方法或這樣管理域名的系統(tǒng)叫做域名管理系統(tǒng)。

  通常我們在瀏覽網(wǎng)站的時(shí)候會直接輸入網(wǎng)站的域名,但是互聯(lián)網(wǎng)中的計(jì)算機(jī)并不能夠依靠域名來實(shí)現(xiàn)鏈接,他們?nèi)匀恍枰狪P地址來互相識別,因此DNS服務(wù)器就承擔(dān)了將域名解析為IP地址的工作。

  由于針對DNS請求的時(shí)序和帶寬考慮,多數(shù)DNS服務(wù)器本地存儲從其他DNS服務(wù)器接收到的應(yīng)答,這些存儲應(yīng)答的區(qū)域成為緩存,一旦應(yīng)答存儲在緩存中,DNS服務(wù)器就可以在一段時(shí)間里(稱為存活時(shí)間)使用本地存儲的響應(yīng),直至下次查詢DNS服務(wù)器重刷新應(yīng)答拷貝。

  DNS緩存毒藥攻擊就是更改DNS服務(wù)器的DNS緩存中的條目,導(dǎo)致緩存中與主機(jī)名相關(guān)的IP地址不匹配正確的位置。如www. antiy.com映射到IP地址192.168.0.1,成功進(jìn)行DNS緩存毒藥攻擊后就可以將www. antiy.com映射到10.0.0.1。

  此次的DNS漏洞主要是因?yàn)轵?yàn)證DNS響應(yīng)的DNS事件ID和源端口號隨機(jī)性不強(qiáng),導(dǎo)致攻擊者創(chuàng)建匹配的DNS請求偽造響應(yīng)的難度下降,從而實(shí)現(xiàn)了可緩存攻擊。

  通常在DNS協(xié)議規(guī)定中包含一個(gè)16位的事務(wù)ID字段,如果正確實(shí)現(xiàn)這個(gè)規(guī)定并使用加強(qiáng)的隨機(jī)數(shù)生成器使用事務(wù)ID,攻擊者就需要平均32,768次嘗試才能成功猜測到這個(gè)ID。但由于協(xié)議實(shí)現(xiàn)的缺陷,黑客可使用比較小的位數(shù)來處理這個(gè)事務(wù)ID,也就表示猜測數(shù)值將大大減少。

  模擬DNS緩存毒藥攻擊

  第一步:創(chuàng)建DNS服務(wù)器。在Windows 2003 Server中,依次單擊“開始→管理工具→配置您的服務(wù)器向?qū)?rdquo;,在打開的向?qū)ы撝幸来螁螕?ldquo;下一步”按鈕。配置向?qū)ё詣?dòng)檢測所有網(wǎng)絡(luò)連接的設(shè)置情況,若沒有發(fā)現(xiàn)問題則進(jìn)入“服務(wù)器角色”向?qū)ы摗?/p>

  然后在“服務(wù)器角色”列表中單擊“DNS服務(wù)器”選項(xiàng)(圖1),并單擊“下一步”按鈕。打開“選擇總結(jié)”向?qū)ы摚绻斜碇谐霈F(xiàn)“安裝DNS服務(wù)器”和“運(yùn)行配置 DNS 服務(wù)器向?qū)砼渲肈NS”,則直接單擊“下一步”按鈕。

    圖1

  DNS服務(wù)器安裝完成以后會自動(dòng)打開“配置DNS服務(wù)器向?qū)?rdquo;對話框。在“配置DNS服務(wù)器向?qū)?rdquo;的歡迎頁面中單擊“下一步”按鈕,打開“選擇配置操作”向?qū)ы?。在默認(rèn)情況下不用更改選擇,一路點(diǎn)擊“下一步”進(jìn)入“區(qū)域名稱”向?qū)ы摚?ldquo;區(qū)域名稱”編輯框中鍵入一個(gè)任意的區(qū)域域名,例如hacker.com,單擊“下一步”按鈕。

  這時(shí)跳轉(zhuǎn)到“轉(zhuǎn)發(fā)器”向?qū)ы?,在IP地址編輯框中鍵入ISP(或上級DNS服務(wù)器)提供的DNS服務(wù)器IP地址(圖2),單擊“下一步”按鈕后依次單擊“完成”按鈕即可結(jié)束“hacker.com”區(qū)域的創(chuàng)建過程和DNS服務(wù)器的安裝配置過程。

   圖2

  第二步:DNS服務(wù)配置好后,還需要?jiǎng)?chuàng)建一個(gè)用來訪問Web站點(diǎn)的域名“www.hacker.com”。依次單擊“開始→管理工具→“DNS”菜單命令,打開“dnsmagt”控制臺窗口。

  在左窗格中依次展開“ServerName→正向查找區(qū)域”目錄。然后用鼠標(biāo)右鍵單擊“hacker.com”區(qū)域,執(zhí)行快捷菜單中的“新建主機(jī)”命令。然后打開“新建主機(jī)”對話框,在“名稱”編輯框中鍵入一個(gè)能代表該主機(jī)所提供服務(wù)的名稱,例如www。在“IP地址”編輯框中鍵入該主機(jī)的IP地址(如192.168.0.198),單擊“添加主機(jī)”按鈕,很快就會提示已經(jīng)成功創(chuàng)建了主機(jī)記錄。

  此時(shí)DNS服務(wù)器已經(jīng)創(chuàng)建成功,并且創(chuàng)建了合適的域名,但在客戶機(jī)的瀏覽器中仍然無法開始測試,主要因?yàn)榭蛻魴C(jī)并不知道我們配置的DNS服務(wù)器在哪里,因此不能識別用戶輸入的域名。此時(shí)你必須手動(dòng)設(shè)置DNS服務(wù)器的IP地址才行。

  在Windows控制面板網(wǎng)絡(luò)連接打開“Internet協(xié)議(TCP/IP)屬性”對話框,然后在“首選DMS服務(wù)器”編輯框中設(shè)置剛剛部署的DNS服務(wù)器的IP地址(圖3),此時(shí)我們就完成了DNS服務(wù)器環(huán)境的模擬。

   圖3

  第三步:環(huán)境搭設(shè)完成后,現(xiàn)在我們就可以開始模擬攻擊,目前主要有C語言和Ruby語言兩種編譯的攻擊程序。下面我們以C語言編譯的Exp攻擊程序?yàn)槔?,攻擊我們搭設(shè)的www.hacker.com域名服務(wù)器,竄改它的真正IP地址指向。我們首先將www.hacker.com域名指向新浪網(wǎng)的IP地址,然后在CMD命令窗口中運(yùn)行攻擊程序。輸入攻擊命令:$ kaminsky-attack q.q.q.q r.r.r.r a.a.a.a 1234 www.hacker.com 220.181.69.235 8192 16此時(shí),我們再次打開瀏覽器輸入 www.hacker.com 后,域名已經(jīng)由新浪被解析到搜狐的網(wǎng)頁中(圖4)。

    圖4

  如果用Ruby攻擊程序,需要先安裝Ruby的解釋器(代碼下載地址:http://www.shudoo.com/bzsoft),然后將代碼(代碼下載地址:http://www.shudoo.com/bzsoft)下載另存為“test.rb”。再打開CMD窗口,輸入“ruby test.rb”運(yùn)行即可。

  如何避開DNS緩存毒藥攻擊

  目前,已經(jīng)有了針對這個(gè)DNS漏洞的升級補(bǔ)丁包了(下載地址:http://www.shudoo.com/bzsoft),及時(shí)升級可以避免DNS服務(wù)器被黑。對于個(gè)人用戶而言,可以通過修改Windows中的HOSTS文件,將網(wǎng)站的域名和IP地址強(qiáng)行制定,來達(dá)到預(yù)防攻擊的目的。

分享到

yajing

相關(guān)推薦