1. 程式人生 > 實用技巧 >Dnscat2實現DNS隱蔽隧道反彈Shell

Dnscat2實現DNS隱蔽隧道反彈Shell

DNS介紹

DNS是域名系統(Domain Name System)的縮寫,是因特網的一項核心服務,它作為可以將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串。
DNS的記錄型別有很多,有A,AAAA,CNAME,MX,SOA,NS等。
DNS Tunneling可以利用其中的一些記錄型別來傳輸資料。例如A,MX,CNAME,TXT,NULL等。

A記錄:A記錄是用來指定主機名對應的ip地址記錄,簡單的說A記錄是指定域名對應的IP地址。

AAAA記錄:記錄將域名解析到一個指定的ipv6的ip上

CNAME記錄,別名解析。可以將註冊不同的域名解析到一個ip地址。

NS記錄:域名伺服器記錄,用來指定該域名是由哪個DNS伺服器進行解析。

MX記錄:指向的是一個郵件伺服器。

TXT記錄:一般是指某個主機名或域名的說明

PTR記錄:反向DNS

DNS的解析過程可以分為兩種型別:迭代查詢和遞迴查詢。通常本機到Local DNS Server的過程屬於遞迴查詢,而Local DNS Server對查詢域名的解析過程屬於迭代查詢。為了減輕Local DNS Server的壓力,提高解析速度,引入了快取機制。快取和TTL緊密相連,當TTL過期,Local DNS Server則會丟棄快取的資料,重新從權威域名伺服器上獲取新的資料。

本地客戶端---->Local DNS server---->根域伺服器

Dns解析過程:系統發出dns解析之前會先看看本地是否儲存了相關域名的解析,系統檢測到hosts檔案中沒有響應的域名解析的時候會發送給本地dns解析伺服器進行解析,解析之前會看看快取中是否存在,如果沒有,再將解析請求發給下一個dns伺服器。結果返回後將該域名的解析結果儲存到快取中。

Dnscat2工具介紹

Dnscat2是一個DNS隧道工具,通過DNS協議建立加密的命令和控制通道。
Dnscat2分為client端和server端,client執行在被控機器上,server執行在DNS伺服器上。client,server部分分別是用C,ruby寫的。其中作者在實現client部分時實現了跨平臺,支援linux和windows編譯執行。在完成連線建立後可以實現建立shell,上傳下載檔案等功能。
Dnscat2工具下載

Dnscat2環境搭建

Dnscat2反彈shell

Dnscat2通訊流量分析