楊芙容+張雅茜+史洋
摘 要 DNS是把主機(jī)域名解析IP地址的系統(tǒng),DNS欺騙則是攻擊者冒充域名服務(wù)器的一種欺騙行為,常見(jiàn)被用做編寫(xiě)釣魚(yú)網(wǎng)站或網(wǎng)頁(yè)掛馬等,對(duì)用戶上網(wǎng)安全構(gòu)成嚴(yán)重影響。本文首先對(duì)DNS基本概念及域名查詢過(guò)程進(jìn)行了簡(jiǎn)單陳訴,然后深入闡述了DNS欺騙原理,并利用滲透測(cè)試平臺(tái)Kali Linux上集成的欺騙工具ettercap完成了DNS欺騙攻擊,最后對(duì)DNS的防范措施提出了幾點(diǎn)建議。
關(guān)鍵詞 DNS 欺騙 kali Linux Ettercap
中圖分類號(hào):TP399 文獻(xiàn)標(biāo)識(shí)碼:A
1 DNS域名系統(tǒng)
DNS即Domain Name System 的縮寫(xiě),是把主機(jī)域名解析IP地址的系統(tǒng)。解決了IP地址難記的問(wèn)題,用相對(duì)好記的域名就可以對(duì)服務(wù)器進(jìn)行訪問(wèn),即使服務(wù)器更換了IP地址,我們依舊可以通過(guò)域名訪問(wèn)該服務(wù)器,這樣能夠使我們更方便的訪問(wèn)互聯(lián)網(wǎng)。該系統(tǒng)是由解析器和域名服務(wù)器組成的。DNS主要基于UDP協(xié)議,較少情況下使用TCP協(xié)議,端口號(hào)均為53。域名系統(tǒng)由三部分組成:DNS名稱空間,域名服務(wù)器,DNS客戶機(jī)。
DNS屬于分層式命名系統(tǒng),即采用的命名方式是層次樹(shù)狀結(jié)構(gòu)。域名服務(wù)器運(yùn)行模式為客戶機(jī)、服務(wù)器模式,按域名空間層次可以分為根域名服務(wù)器、頂層域名服務(wù)器、權(quán)限域名服務(wù)器、本地域名服務(wù)器。域名解析就是將域名解協(xié)為IP地址。域名解析的方法有遞歸查詢和迭代查詢。
2 DNS域名查詢過(guò)程
DNS是設(shè)置在互聯(lián)網(wǎng)上很多主機(jī)中的一個(gè)分布式數(shù)據(jù)庫(kù),他用來(lái)進(jìn)行域名和IP地址的轉(zhuǎn)換查詢,并提供電子郵件的路由信息。DNS域名查詢請(qǐng)求與回應(yīng)的過(guò)程可簡(jiǎn)單描述成以下五個(gè)步驟:(1)網(wǎng)絡(luò)用戶的瀏覽器提出將域名轉(zhuǎn)換為IP地址的請(qǐng)求;(2)地址解析程序resolve生成查詢報(bào)文;(3)地址解程序?qū)⒉樵冋?qǐng)求語(yǔ)句封裝在UDP包中發(fā)送出去;(4)DNS服務(wù)器查找到IP地址并生成相應(yīng)報(bào)文;(5)DNS服務(wù)器將查詢結(jié)果封裝到UDP報(bào)文中發(fā)回給查詢者。
3 DNS欺騙原理
DNS欺騙就是利用了DNS協(xié)議設(shè)計(jì)時(shí)的一個(gè)非常嚴(yán)重的安全缺陷。首先欺騙者向目標(biāo)機(jī)器發(fā)送構(gòu)造好的ARP應(yīng)答數(shù)據(jù)包,ARP欺騙成功后,嗅探到對(duì)方發(fā)出的DNS請(qǐng)求數(shù)據(jù)包,分析數(shù)據(jù)包取得ID和端口號(hào)后,向目標(biāo)發(fā)送自己構(gòu)造好的一個(gè)DNS返回包,對(duì)方收到DNS應(yīng)答包后,發(fā)現(xiàn)ID和端口號(hào)全部正確,即把返回?cái)?shù)據(jù)包中的域名和對(duì)應(yīng)的IP地址保存進(jìn)DNS緩存表中,而后來(lái)的當(dāng)真實(shí)的DNS應(yīng)答包返回時(shí)則被丟棄。
以用戶訪問(wèn)新浪網(wǎng)為例,DNS服務(wù)器的域名映射表中有一條信息是:新浪網(wǎng)站的IP地址是119.75.217.109,如果此映射信息中的IP地址被篡改為192.168.83.128。當(dāng)用戶訪問(wèn)新浪www.sina.com.cn網(wǎng)站時(shí),從DNS上解析回來(lái)的目的IP地址就變成了192.168.83.128,用戶主機(jī)按照步驟向192.168.83.128發(fā)送請(qǐng)求,收到的確實(shí)惡意攻擊或進(jìn)入不希望訪問(wèn)的網(wǎng)址。
DNS欺騙的危害是巨大的,常見(jiàn)被利用來(lái)釣魚(yú)、掛馬等,這在用戶訪問(wèn)自己的銀行賬戶,在線購(gòu)書(shū)網(wǎng)站甚至是網(wǎng)頁(yè)電子郵件時(shí)顯得尤為重要。通常情況下,除非發(fā)生欺騙攻擊,否則你不可能知道你的DNS已經(jīng)被欺騙,只是你打開(kāi)的網(wǎng)頁(yè)與你想要看到的網(wǎng)頁(yè)有所不同。在很多針對(duì)性的攻擊中,用戶都無(wú)法知道自己已經(jīng)將網(wǎng)上銀行帳號(hào)信息輸入到錯(cuò)誤的網(wǎng)址,直到接到銀行的電話告知其帳號(hào),已購(gòu)買某某高價(jià)商品時(shí)用戶才會(huì)知道。
4 DNS欺騙測(cè)試
DNS欺騙也可以被稱為DNS毒化,屬于中間人攻擊,實(shí)驗(yàn)過(guò)程中采用虛擬機(jī)來(lái)模擬DNS欺騙攻擊。測(cè)試環(huán)境為兩臺(tái)虛擬機(jī),一臺(tái)為攻擊機(jī)裝有Kali Linux系統(tǒng),IP地址為192.168.83.128,另一臺(tái)為靶機(jī)裝Windows系統(tǒng) ,IP地址為192.168.83.130。
Kali Linux是基于Debian的Linux發(fā)行版, 設(shè)計(jì)用于數(shù)字取證操作系統(tǒng),面向?qū)I(yè)的滲透測(cè)試和安全審計(jì),由Offensive Security Ltd維護(hù)和資助。Kali Linux預(yù)裝了許多滲透測(cè)試軟件,包括nmap 、Wireshark 、John the Ripper ,以及Aircrack-ng.用戶可通過(guò)硬盤(pán)、live CD或live USB運(yùn)行Kali Linux。
實(shí)驗(yàn)用到的主要工具是Kali Linux 預(yù)裝的Ettercap工具,具體欺騙工程如下:首先來(lái)看目標(biāo)靶機(jī)IP地址為192.168.83.130,網(wǎng)關(guān)192.168.83.2,Ping www.sina.com.cn解析的IP地址為119.75.217.109,這時(shí)訪問(wèn)新浪所指向到的IP地址是正確的。接著在kali Linux上用ettercap來(lái)進(jìn)行DNS欺騙,首先查看kali linux的ip地址192.168.83.128,進(jìn)入usr/ettercap路徑下找到etter.dns配置文件。vi編輯配置文件etter.dns添加一條A記錄,將 www.sina.com.cn 指向到本機(jī)IP 192.168.83.128。保存并且退出,編輯文件/var/www/html/index.html ,添加
在到靶機(jī)上使用ipconfig/flushdns刷新路由信息,ping 新浪域名可以看出,欺騙攻擊之前訪問(wèn)新浪,返回的地址為119.75.217.109,這時(shí)所指向到的IP地址是正確的。DNS欺騙攻擊之后,可以看到訪問(wèn)已經(jīng)被指向192.168.83.128,是Kali Linux的IP地址,在瀏覽器中訪問(wèn)該域名便訪問(wèn)到事先搭建好的一臺(tái)WEB服務(wù)器,顯示just kidding! 以上便完成了一次DNS欺騙攻擊。
5 DNS欺騙的防范
DNS欺騙是很難進(jìn)行有效防御的,因?yàn)榇蠖嗲闆r下都是被攻擊之后才會(huì)發(fā)現(xiàn),而且這種攻擊大多數(shù)本質(zhì)都是被動(dòng)的。為了竟可能地減少種類型攻擊,提出以下幾點(diǎn)建議:
因?yàn)镈NS欺騙前提也需要ARP欺騙成功。所以首先做好對(duì)ARP欺騙攻擊的防范;其次要保護(hù)內(nèi)部設(shè)備:像這樣的攻擊大多數(shù)都是從網(wǎng)絡(luò)內(nèi)部執(zhí)行攻擊的,如果你的網(wǎng)絡(luò)設(shè)備很安全,那么那些感染的主機(jī)就很難向你的設(shè)備發(fā)動(dòng)欺騙攻擊。不要依賴于DNS,在高度敏感和安全的系統(tǒng),你通常不會(huì)在這些系統(tǒng)上瀏覽網(wǎng)頁(yè),最好不要使用DNS。如果你有軟件依賴于主機(jī)名來(lái)運(yùn)行,那么可以在設(shè)備主機(jī)文件里手動(dòng)指定,可以使用hosts文件來(lái)實(shí)現(xiàn)相同的功能。
關(guān)閉DNS服務(wù)器的遞歸功能。DNS服務(wù)器利用緩存中的記錄信息回答查詢請(qǐng)求或是DNS服務(wù)器通過(guò)查詢其他服務(wù)獲得查詢信息并將它發(fā)送給客戶機(jī),這兩種查詢成為遞歸查詢,這種查詢方式容易導(dǎo)致DNS欺騙。使用安全檢測(cè)軟件定期檢查系統(tǒng)是否遭受攻擊;使用DNSSEC,DNSSEC是替代DNS的更好選擇,它使用的是數(shù)字前面DNS記錄來(lái)確保查詢響應(yīng)的有效性,DNSSEC還沒(méi)有廣泛運(yùn)用,但是已被公認(rèn)為是DNS的未來(lái)方向。
參考文獻(xiàn)
[1] 李建.DNS欺騙攻擊的檢測(cè)與防御[J].無(wú)線互聯(lián)科技,2016(04).
[2] 鄧詩(shī)釗.DNS域名安全實(shí)時(shí)檢測(cè)的研究[D].成都:電子科技大學(xué),2015(09).
[3] 雷驚鵬,沙有闖.利用Kali Linux開(kāi)展?jié)B透測(cè)試[J].長(zhǎng)春大學(xué)學(xué)報(bào),2016(06).
[4] 徐光.基于Kali Linux的Web滲透測(cè)試研究[J].信息安全與技術(shù),2016(03).endprint