DNSLOG平臺搭建及其原理解析
DNSLOG平臺搭建及其原理分析
一、DNS基本概念
0x1:DNS中不同域名類型概念
DNS的全稱是Domain Name System(網(wǎng)絡名稱系統(tǒng)),它作為將域名和IP地址相互映射,使人更方便地訪問互聯(lián)網(wǎng)。當用戶輸入某一網(wǎng)址如littlehann.com,網(wǎng)絡上的DNS Server會將該域名解析,并找到對應的真實IP如101.37.97.51,使用戶可以訪問這臺服務器上相應的服務。
DNSlog就是存儲在DNS Server上的域名訪問信息,它記錄著用戶對域名littlehann.com等的訪問信息,類似日志文件。
按照解析類型分類,DNS域名有如下幾種:
- A記錄:A (Address) 記錄是用來指定主機名(或域名)對應的IP地址記錄。就是說:通過A記錄,大家可以設置自己的不同域名轉到不同的IP上去。如:
- www.dns.la轉到IP 116.255.202.1
- web.dns.la 轉到IP 116.255.202.11
- mail.dns.la 轉到IP 116.255.202.111
- MX記錄(Mail Exchange):郵件交換記錄,用戶可以將該域名下的郵件服務器指向到自己的Mail Server上,然后即可自行操作控制所有的郵箱設置。
- CNAME(Canonical Name)記錄:通常稱別名解析,可以將注冊的不同域名都轉到一個域名記錄上,由這個域名記錄統(tǒng)一解析管理,與A記錄不同的是,CNAME別名記錄設置的可以是一個域名的描述而不一定是IP地址。
- URL(Uniform Resource Locator)轉發(fā):網(wǎng)址轉發(fā)功能,如果您沒有一臺獨立的服務器(也就是沒有一個獨立的IP地址)或者您還有一個域名B,您想訪問A域名時訪問到B域名的內容,這時您就可以通過URL轉發(fā)來實現(xiàn)。URL轉發(fā)可以轉發(fā)到某一個目錄下,甚至某一個文件上。而CNAME是不可以,這就是URL轉發(fā)和CNAME的主要區(qū)別所在。
- NS(Name Server):NS記錄是域名服務解析記錄,NS用來指定該域名由哪個DNS服務器來進行解析,可以把一個域名的不同二級域名分別指向到不同的DNS系統(tǒng)來解析。
- AAAA記錄:IPV6解析記錄,該記錄是將域名解析到一個指定的IPV6的IP上。
0x2:DNS解析順序
當客戶端對域名發(fā)起訪問時,會將解析請求發(fā)送給遞歸解析服務器,遞歸服務器會代替客戶端進行全球遞歸查詢。
- 首先遞歸服務器會請求根域名服務器,根域名服務器根據(jù)域名后綴,告知對應的頂級域名服務器
- 遞歸服務器再向頂級服務器發(fā)起請求,頂級域名服務器告知對應的權威服務器
- 遞歸服務器向權威服務器發(fā)起請求,權威服務器告知解析結果
- 遞歸服務器將結果告知客戶端,客戶端完成訪問

以上是DNS解析的標準流程,但是由于各種DNS緩存的存在,導致DNS解析環(huán)節(jié)更為復雜。
所謂DNS緩存是指DNS返回正確的IP地址之后,系統(tǒng)會將這個結果臨時儲存起來,并為緩存設定一個失效時間(TTL值),在TTL失效前,當再次訪問這個網(wǎng)站,系統(tǒng)就會直接從DNS 緩存中將結果返回,而不必再次委托遞歸服務器進行全球解析查詢,加快了DNS解析的流程。
當然TTL值失效后,系統(tǒng)還會自動再次詢問DNS服務器以獲取最新的解析結果。
按照緩存位置的不同,DNS緩存可以分為以下幾類:
- (1)瀏覽器DNS緩存:瀏覽器會根據(jù)一定頻率緩存DNS記錄
- (2)本地DNS緩存:如果瀏覽器緩存中找不到解析記錄,就會去詢問操作系統(tǒng)中的緩存
- (3)本地HOSTS文件:HOSTS是記錄域名與IP地址一一映射關系的本地文件,Windows系統(tǒng)中位于C:\Windows\System32\drivers\etc
- (4)路由器DNS緩存:我們常用的路由器也帶有自動緩存功能,路由器DNS被篡改會造成域名劫持,將訪問網(wǎng)址定位到另外一個服務器
- (5)遞歸服務器緩存:遞歸服務器在將解析結果告知客戶端的同時,將記錄緩存下來,當下次請求同一個域名時,直接會將記錄返回,而無需再進行全球查詢
DNS解析順序是“先查緩存,再遞歸解析”,查詢順序為:瀏覽器緩存—系統(tǒng)緩存—路由器緩存—遞歸服務器緩存—遞歸查詢。
參考鏈接:
https://developer.aliyun.com/article/331012
二、DNSlog安全風險分析
0x1:為什么需要DNSlog平臺
在某些情況下,無法利用漏洞獲得回顯。但是,如果目標可以發(fā)送DNS請求,則可以通過DNS log方式將想獲得的數(shù)據(jù)外帶出來(oob)。
DNS log常用于以下情況:
- SQL盲注
- 無回顯的命令執(zhí)行
- 無回顯的SSRF
0x2:為什么能夠出現(xiàn)DNSlog平臺這種技術
首先,DNS服務是互聯(lián)網(wǎng)核心基礎設施之一,DNS query外連端口和外連請求幾乎在整個互聯(lián)網(wǎng)上都是默認開放的,這對攻擊者來說就是一個絕佳地穩(wěn)定oob通道。
其次,因為DNS解析服務整體上看是一個分布式地架構,NS server則是這個分布式架構的基礎設施,同時攻擊者可以很容易地創(chuàng)建自己的NS server,從而給攻擊者利用DNS遞歸查詢流程作為oob信息收集提供了極大地便利。
攻擊者劫持受害機器的執(zhí)行流后,發(fā)起DNS query查詢,查詢的域名是攻擊者自有的A記錄域名,同時由于攻擊者聲明了該A記錄的NS記錄,該NS記錄指向的是攻擊者控制的一臺域名服務器,所以根路由會將該DNS query查詢發(fā)送到攻擊者控制的域名服務器上(也就是運行了dnslog程序的機器上),至此完成了oob信道傳遞過程。
三、DNSlog平臺搭建
0x1:前期準備
- 一臺公網(wǎng)可訪問機器:運行DNS解析服務程序,作為DNS域名服務器,接受來自53端口的DNS解析請求,并將DNS query繼續(xù)遞歸查詢,完成最終查詢,相當于一個DNS query proxy的作用。
- 一個有效域名
注意,上述公網(wǎng)可訪問機器必須開放UDP 53端口,以確保該機器可以接受DNS查詢以及進行DNS遞歸查詢。
0x2:域名解析準備
- 添加一個A記錄,將域名xxx指向公網(wǎng)可訪問機器xx。
- 添加一個NS記錄,將NS記錄指向A記錄。
通過制定NS記錄,便指定了解析對應A記錄的DNS域名服務器,以此完成了DNS oob的信道搭建。
0x3:搭建充當NS Server的DNSlog Server
下載地址:https://github.com/lanyi1998/DNSlog-GO/releases


下載對應版本并解壓,
wget https://github.com/lanyi1998/DNSlog-GO/releases/download/1.5.6/dnslog-linux.zip
編輯配置文件,

啟動服務,
./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
到此這篇關于DNSLOG平臺搭建及其原理分析 的文章就介紹到這了,更多相關DNSLOG平臺搭建內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用cwRsync實現(xiàn)windows下服務器文件定時同步備份(附錯誤處理方法)
原來服務器一直用綠環(huán)ftp同步工具,發(fā)現(xiàn)一些大文件經(jīng)常無法同步,所以這里推薦使用cwRsync2012-06-06
win11安裝wsl報錯之無法解析服務器的名稱或地址的問題及解決方法
項目開發(fā)中,需要用到wsl,因此根據(jù)wsl官方(WSL安裝教程)命令?wsl --install 進行wsl的安裝,本文主要是記錄自己在安裝wsl中遇到的問題"無法解析服務器的名稱或地址"的解決辦法,感興趣的朋友一起看看吧2024-04-04
銀河麒麟V10服務器版安裝達夢DM8數(shù)據(jù)庫的詳細過程
這篇文章主要介紹了銀河麒麟V10服務器版安裝達夢DM8數(shù)據(jù)庫的詳細過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-03-03

