DNSLOG平臺(tái)搭建及其原理解析
DNSLOG平臺(tái)搭建及其原理分析
一、DNS基本概念
0x1:DNS中不同域名類型概念
DNS的全稱是Domain Name System(網(wǎng)絡(luò)名稱系統(tǒng)),它作為將域名和IP地址相互映射,使人更方便地訪問互聯(lián)網(wǎng)。當(dāng)用戶輸入某一網(wǎng)址如littlehann.com,網(wǎng)絡(luò)上的DNS Server會(huì)將該域名解析,并找到對(duì)應(yīng)的真實(shí)IP如101.37.97.51,使用戶可以訪問這臺(tái)服務(wù)器上相應(yīng)的服務(wù)。
DNSlog就是存儲(chǔ)在DNS Server上的域名訪問信息,它記錄著用戶對(duì)域名littlehann.com等的訪問信息,類似日志文件。
按照解析類型分類,DNS域名有如下幾種:
- A記錄:A (Address) 記錄是用來指定主機(jī)名(或域名)對(duì)應(yīng)的IP地址記錄。就是說:通過A記錄,大家可以設(shè)置自己的不同域名轉(zhuǎn)到不同的IP上去。如:
- www.dns.la轉(zhuǎn)到IP 116.255.202.1
- web.dns.la 轉(zhuǎn)到IP 116.255.202.11
- mail.dns.la 轉(zhuǎn)到IP 116.255.202.111
- MX記錄(Mail Exchange):郵件交換記錄,用戶可以將該域名下的郵件服務(wù)器指向到自己的Mail Server上,然后即可自行操作控制所有的郵箱設(shè)置。
- CNAME(Canonical Name)記錄:通常稱別名解析,可以將注冊(cè)的不同域名都轉(zhuǎn)到一個(gè)域名記錄上,由這個(gè)域名記錄統(tǒng)一解析管理,與A記錄不同的是,CNAME別名記錄設(shè)置的可以是一個(gè)域名的描述而不一定是IP地址。
- URL(Uniform Resource Locator)轉(zhuǎn)發(fā):網(wǎng)址轉(zhuǎn)發(fā)功能,如果您沒有一臺(tái)獨(dú)立的服務(wù)器(也就是沒有一個(gè)獨(dú)立的IP地址)或者您還有一個(gè)域名B,您想訪問A域名時(shí)訪問到B域名的內(nèi)容,這時(shí)您就可以通過URL轉(zhuǎn)發(fā)來實(shí)現(xiàn)。URL轉(zhuǎn)發(fā)可以轉(zhuǎn)發(fā)到某一個(gè)目錄下,甚至某一個(gè)文件上。而CNAME是不可以,這就是URL轉(zhuǎn)發(fā)和CNAME的主要區(qū)別所在。
- NS(Name Server):NS記錄是域名服務(wù)解析記錄,NS用來指定該域名由哪個(gè)DNS服務(wù)器來進(jìn)行解析,可以把一個(gè)域名的不同二級(jí)域名分別指向到不同的DNS系統(tǒng)來解析。
- AAAA記錄:IPV6解析記錄,該記錄是將域名解析到一個(gè)指定的IPV6的IP上。
0x2:DNS解析順序
當(dāng)客戶端對(duì)域名發(fā)起訪問時(shí),會(huì)將解析請(qǐng)求發(fā)送給遞歸解析服務(wù)器,遞歸服務(wù)器會(huì)代替客戶端進(jìn)行全球遞歸查詢。
- 首先遞歸服務(wù)器會(huì)請(qǐng)求根域名服務(wù)器,根域名服務(wù)器根據(jù)域名后綴,告知對(duì)應(yīng)的頂級(jí)域名服務(wù)器
- 遞歸服務(wù)器再向頂級(jí)服務(wù)器發(fā)起請(qǐng)求,頂級(jí)域名服務(wù)器告知對(duì)應(yīng)的權(quán)威服務(wù)器
- 遞歸服務(wù)器向權(quán)威服務(wù)器發(fā)起請(qǐng)求,權(quán)威服務(wù)器告知解析結(jié)果
- 遞歸服務(wù)器將結(jié)果告知客戶端,客戶端完成訪問
以上是DNS解析的標(biāo)準(zhǔn)流程,但是由于各種DNS緩存的存在,導(dǎo)致DNS解析環(huán)節(jié)更為復(fù)雜。
所謂DNS緩存是指DNS返回正確的IP地址之后,系統(tǒng)會(huì)將這個(gè)結(jié)果臨時(shí)儲(chǔ)存起來,并為緩存設(shè)定一個(gè)失效時(shí)間(TTL值),在TTL失效前,當(dāng)再次訪問這個(gè)網(wǎng)站,系統(tǒng)就會(huì)直接從DNS 緩存中將結(jié)果返回,而不必再次委托遞歸服務(wù)器進(jìn)行全球解析查詢,加快了DNS解析的流程。
當(dāng)然TTL值失效后,系統(tǒng)還會(huì)自動(dòng)再次詢問DNS服務(wù)器以獲取最新的解析結(jié)果。
按照緩存位置的不同,DNS緩存可以分為以下幾類:
- (1)瀏覽器DNS緩存:瀏覽器會(huì)根據(jù)一定頻率緩存DNS記錄
- (2)本地DNS緩存:如果瀏覽器緩存中找不到解析記錄,就會(huì)去詢問操作系統(tǒng)中的緩存
- (3)本地HOSTS文件:HOSTS是記錄域名與IP地址一一映射關(guān)系的本地文件,Windows系統(tǒng)中位于C:\Windows\System32\drivers\etc
- (4)路由器DNS緩存:我們常用的路由器也帶有自動(dòng)緩存功能,路由器DNS被篡改會(huì)造成域名劫持,將訪問網(wǎng)址定位到另外一個(gè)服務(wù)器
- (5)遞歸服務(wù)器緩存:遞歸服務(wù)器在將解析結(jié)果告知客戶端的同時(shí),將記錄緩存下來,當(dāng)下次請(qǐng)求同一個(gè)域名時(shí),直接會(huì)將記錄返回,而無需再進(jìn)行全球查詢
DNS解析順序是“先查緩存,再遞歸解析”,查詢順序?yàn)椋簽g覽器緩存—系統(tǒng)緩存—路由器緩存—遞歸服務(wù)器緩存—遞歸查詢。
參考鏈接:
https://developer.aliyun.com/article/331012
二、DNSlog安全風(fēng)險(xiǎn)分析
0x1:為什么需要DNSlog平臺(tái)
在某些情況下,無法利用漏洞獲得回顯。但是,如果目標(biāo)可以發(fā)送DNS請(qǐng)求,則可以通過DNS log方式將想獲得的數(shù)據(jù)外帶出來(oob)。
DNS log常用于以下情況:
- SQL盲注
- 無回顯的命令執(zhí)行
- 無回顯的SSRF
0x2:為什么能夠出現(xiàn)DNSlog平臺(tái)這種技術(shù)
首先,DNS服務(wù)是互聯(lián)網(wǎng)核心基礎(chǔ)設(shè)施之一,DNS query外連端口和外連請(qǐng)求幾乎在整個(gè)互聯(lián)網(wǎng)上都是默認(rèn)開放的,這對(duì)攻擊者來說就是一個(gè)絕佳地穩(wěn)定oob通道。
其次,因?yàn)镈NS解析服務(wù)整體上看是一個(gè)分布式地架構(gòu),NS server則是這個(gè)分布式架構(gòu)的基礎(chǔ)設(shè)施,同時(shí)攻擊者可以很容易地創(chuàng)建自己的NS server,從而給攻擊者利用DNS遞歸查詢流程作為oob信息收集提供了極大地便利。
攻擊者劫持受害機(jī)器的執(zhí)行流后,發(fā)起DNS query查詢,查詢的域名是攻擊者自有的A記錄域名,同時(shí)由于攻擊者聲明了該A記錄的NS記錄,該NS記錄指向的是攻擊者控制的一臺(tái)域名服務(wù)器,所以根路由會(huì)將該DNS query查詢發(fā)送到攻擊者控制的域名服務(wù)器上(也就是運(yùn)行了dnslog程序的機(jī)器上),至此完成了oob信道傳遞過程。
三、DNSlog平臺(tái)搭建
0x1:前期準(zhǔn)備
- 一臺(tái)公網(wǎng)可訪問機(jī)器:運(yùn)行DNS解析服務(wù)程序,作為DNS域名服務(wù)器,接受來自53端口的DNS解析請(qǐng)求,并將DNS query繼續(xù)遞歸查詢,完成最終查詢,相當(dāng)于一個(gè)DNS query proxy的作用。
- 一個(gè)有效域名
注意,上述公網(wǎng)可訪問機(jī)器必須開放UDP 53端口,以確保該機(jī)器可以接受DNS查詢以及進(jìn)行DNS遞歸查詢。
0x2:域名解析準(zhǔn)備
- 添加一個(gè)A記錄,將域名xxx指向公網(wǎng)可訪問機(jī)器xx。
- 添加一個(gè)NS記錄,將NS記錄指向A記錄。
通過制定NS記錄,便指定了解析對(duì)應(yīng)A記錄的DNS域名服務(wù)器,以此完成了DNS oob的信道搭建。
0x3:搭建充當(dāng)NS Server的DNSlog Server
下載地址:https://github.com/lanyi1998/DNSlog-GO/releases
下載對(duì)應(yīng)版本并解壓,
wget https://github.com/lanyi1998/DNSlog-GO/releases/download/1.5.6/dnslog-linux.zip
編輯配置文件,
啟動(dòng)服務(wù),
./dnslog-linux
參考鏈接:
https://github.com/aboul3la/Sublist3r
https://blog.csdn.net/m0_51468027/article/details/125734951
https://cloud.tencent.com/developer/article/1948254
https://www.f12bug.com/archives/dnslog%E5%B9%B3%E5%8F%B0%E6%90%AD%E5%BB%BA
https://github.com/lanyi1998/DNSlog-GO/releases/tag/1.5.6
到此這篇關(guān)于DNSLOG平臺(tái)搭建及其原理分析 的文章就介紹到這了,更多相關(guān)DNSLOG平臺(tái)搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用cwRsync實(shí)現(xiàn)windows下服務(wù)器文件定時(shí)同步備份(附錯(cuò)誤處理方法)
原來服務(wù)器一直用綠環(huán)ftp同步工具,發(fā)現(xiàn)一些大文件經(jīng)常無法同步,所以這里推薦使用cwRsync2012-06-06Centos7使用docker搭建gitlab服務(wù)器
這篇文章主要為大家詳細(xì)介紹了Centos7使用docker搭建gitlab服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04windows server 2003郵箱服務(wù)器安裝教程
這篇文章主要為大家詳細(xì)介紹了windows server 2003郵箱服務(wù)器的安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04win11安裝wsl報(bào)錯(cuò)之無法解析服務(wù)器的名稱或地址的問題及解決方法
項(xiàng)目開發(fā)中,需要用到wsl,因此根據(jù)wsl官方(WSL安裝教程)命令?wsl --install 進(jìn)行wsl的安裝,本文主要是記錄自己在安裝wsl中遇到的問題"無法解析服務(wù)器的名稱或地址"的解決辦法,感興趣的朋友一起看看吧2024-04-04銀河麒麟V10服務(wù)器版安裝達(dá)夢(mèng)DM8數(shù)據(jù)庫的詳細(xì)過程
這篇文章主要介紹了銀河麒麟V10服務(wù)器版安裝達(dá)夢(mèng)DM8數(shù)據(jù)庫的詳細(xì)過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-03-03Apache?Hudi靈活的Payload機(jī)制硬核解析
這篇文章主要為大家介紹了Apache?Hudi靈活的Payload機(jī)制超硬核解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-03-03