1. 程式人生 > >DNS tunnel的原理及實戰

DNS tunnel的原理及實戰

cer 並且 酒店 約定 網上 tunnel 得到 什麽 簡單介紹

DNS tunnel的原理及實戰

摘自:http://netsec.ccert.edu.cn/zhengming/2011/11/01/%E8%BD%AC%E8%BD%BD%EF%BC%9Adns-tunnel%E7%9A%84%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE%9E%E6%88%98/

什麽是DNS tunnel?

DNS tunnel 即 DNS隧道。從名字上來看就是利用DNS查詢過程建立起隧道,傳輸數據。

為什麽使用DNS tunnel?

當你在酒店、機場等公共場所,通常有Wifi信號,但是當你訪問一個網站時,如http://hi.baidu.com/, 可能會彈出個窗口,讓你輸入用戶名、密碼,登陸之後才可以繼續上網(該技術一般為透明http代理,不在本文討論範圍之內,以後再講)。這時,你沒有賬號,就無法上網。但是有時你會發現,你獲取到得DNS地址是有效的,並且可以用以進行DNS查詢,這時你便可以用DNS tunnel技術來實現免費上網了!

DNS tunnel的原理

首先,要知道DNS系統的工作原理,見:[DNS系統(服務器)的工作原理及攻擊防護方法論] 。你在做 DNS 查詢的時候,如果查的域名在 DNS 服務器本機的 cache 中沒有,它就會去互聯網上查詢,最終把結果返回給你。如果你在互聯網上有臺定制的服務器。只要依靠 DNS 的這層約定,就可以交換數據包了。從 DNS 協議上看,你是在一次次的查詢某個特定域名,並得到解析結果。但實際上,你在和外部通訊。你沒有直接連到局域網外的機器,因為網關不會轉發你的 IP 包出去。但局域網上的 DNS 服務器幫你做了中轉。這就是 DNS Tunnel 了。

上 圖簡單介紹了DNS tunnel的原理。當你連接上wifi後,你可以使用DNS服務器,向這個服務器的53端口發送數據,請求一個域名,比如b.xxx.org 。這臺DNS服務器上沒有b.xxx.org,那麽它將向root,也就是根域名服務器請求,看看根知道不。root一看是.org的域名,就交 給.org域名服務器進行解析。.org的域名服務器一看是.xxx.org那麽就會去找.xxxi.org的域名服務器 (f1g1ns1.dnspod.net),看看它有沒有這條記錄。.xxx.org的域名服務器上一看是b.xxx.org,如果它有這 條A記錄,那麽就會返回b.xxx.org的地址。

但是,如果沒有,你可以再在guanwei.org的域名服務器上設定一個NS 類型的記錄人,如:xxx.org NS 111.222.333.444(通常這裏不讓設置為地址,那麽也好辦,你可以先在DNS服務器上添加一條A記錄,如ns.xxx.org 111.222.333.444,再添加NS記錄:guanwei.org NS ns.xxx.org),這裏指定一個公網服務器,也就是上圖綠色的服務器,這臺服務器中跑著DNS tunnel的server端,是一臺假的DNS服務器,他不會返回b.xxx.org的地址,但是它會將你的請求轉發到已經設定的端口中,比如 SSH的22端口,22端口返回的數據它將轉發到53端口返回給客戶端(也就是你的電腦)。這時,你就可以用這臺公網服務器的資源了,如果是一臺http 或者sock代理,那麽你就可以用這個代理免費上網了。

DNS tunnel實現的工具

DNS tunnel實現的工具有很多,比如:OzymanDNS、tcp-over-dns、heyoka、iodine、dns2tcp。由於BT4、5系統自帶了dns2tcp工具。這裏僅介紹dns2tcp的使用方法。

DNS2TCP的DNS tunnel實驗

環境準備

一個已經申請好的公網域名,在這裏我就用本blog的域名了xxx.org。給該域名指定一個DNS服務器(在域名管理的控制面板即可看到),本 環境為DNSpod的服務器:f1g1ns1.dnspod.net。一個公網服務器server(運行著BT4系統,主要使用裏面的dns2tcpd V4程序)。這裏使用局域網中的一臺PC,在防火墻上做端口映射,將UDP的53端口映射出去。公網IP為111.222.333.444一 個客戶端client(運行著BT4系統,主要使用裏面的dns2tcpc V4程序)。這裏模擬在機場的環境,能連接局域網(與上面的服務器不在一個局域網內,是另一個連接公網的局域網),能夠獲取到DNS服務器,如遼寧網通的202.96.64.68,並可以通過它進行DNS查詢(測試方法:nslookup www.xxx.org 202.96.64.68,後面的域名服務器請根據實際情況替換)。

。。。可以讓你實現一個反彈木馬,可免費上網。

DNS tunnel的原理及實戰