成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

DNS tunnel的原理及實(shí)戰(zhàn)

DNS tunnel的原理及實(shí)戰(zhàn)什么是DNS tunnel?DNS tunnel 即 DNS 隧道。從名字上來(lái)看就是利用DNS 查詢(xún)過(guò)程建立起隧道,傳輸數(shù)據(jù)。為什么使用DNS tunnel?當(dāng)你在酒店

DNS tunnel的原理及實(shí)戰(zhàn)

什么是DNS tunnel?

DNS tunnel 即 DNS 隧道。從名字上來(lái)看就是利用DNS 查詢(xún)過(guò)程建立起隧道,傳輸數(shù)據(jù)。

為什么使用DNS tunnel?

當(dāng)你在酒店、機(jī)場(chǎng)等公共場(chǎng)所,通常有Wifi 信號(hào),但是當(dāng)你訪問(wèn)一個(gè)網(wǎng)站時(shí),如http://hi.baidu.com/, 可能會(huì)彈出個(gè)窗口,讓你輸入用戶(hù)名、密碼,登陸之后才可以繼續(xù)上網(wǎng)(該技術(shù)一般為透明http 代理,不在本文討論范圍之內(nèi),以后再講) 。這時(shí),你沒(méi)有賬 號(hào),就無(wú)法上網(wǎng)。但是有時(shí)你會(huì)發(fā)現(xiàn),你獲取到得DNS 地址是有效的,并且可以用以進(jìn)行DNS 查詢(xún),這時(shí)你便可以用DNS tunnel技術(shù)來(lái)實(shí)現(xiàn)免費(fèi)上網(wǎng)了!

DNS tunnel的原理

首先,要知道DNS 系統(tǒng)的工作原理,見(jiàn):[DNS系統(tǒng)(服務(wù)器) 的工作原理及攻擊防護(hù)方法論] 。你在做 DNS 查詢(xún)的時(shí)候,如果查的域名在 DNS 服務(wù)器本機(jī)的 cache 中沒(méi)有,它就會(huì)去互聯(lián)網(wǎng)上查詢(xún),最終把結(jié)果返回給你。如果你在互聯(lián)網(wǎng)上有臺(tái)定制的服務(wù)器。只要依靠 DNS 的這層約定,就可以交換數(shù)據(jù)包了。從 DNS 協(xié)議上看,你是在一次次的查詢(xún)某個(gè)特定域名,并得到解析結(jié)果。但實(shí)際上,你在和外部通訊。你沒(méi)有直接連到局域網(wǎng)外的機(jī)器,因?yàn)榫W(wǎng)關(guān)不會(huì)轉(zhuǎn)發(fā)你的 IP 包出去。但局域網(wǎng)上的 DNS 服務(wù)器幫你做了中轉(zhuǎn)。這就是 DNS Tunnel 了。

上 圖簡(jiǎn)單介紹了DNS tunnel的原理。當(dāng)你連接上wifi 后,你可以使用DNS 服務(wù)器,向這個(gè)服務(wù)器的53端口發(fā)送數(shù)據(jù),請(qǐng)求一個(gè)域名,比如b.xxx.org 。這臺(tái)DNS 服務(wù)器上沒(méi)有b.xxx.org ,那么它將向root ,也就是根域名服務(wù)器請(qǐng)求,看看根知道不。root 一看是.org 的域名,就交 給.org 域名服務(wù)器進(jìn)行解析。.org 的域名服務(wù)器一看是.xxx.org 那么就會(huì)去找.xxxi.org 的域名服務(wù)器

(f1g1ns1.dnspod.net),看看它有沒(méi)有這條記錄。.xxx.org 的域名服務(wù)器上一看是

,

b.xxx.org ,如果它有這 條A 記錄,那么就會(huì)返回b.xxx.org 的地址。

但是,如果沒(méi)有,你可以再在guanwei.org 的域名服務(wù)器上設(shè)定一個(gè)NS 類(lèi)型的記錄人,如:xxx.org NS 111.222.333.444(通常這里不讓設(shè)置為地址,那么也好辦,你可以先在DNS 服務(wù)器上添加一條A 記錄,如ns.xxx.org 111.222.333.444,再添加NS 記錄:guanwei.org NS ns.xxx.org),這里指定一個(gè)公網(wǎng)服務(wù)器,也就是上圖綠色的服務(wù)器,這臺(tái)服務(wù)器中跑著DNS tunnel的server 端,是一臺(tái)假的DNS 服務(wù)器,他不會(huì)返回b.xxx.org 的地址,但是它會(huì)將你的請(qǐng)求轉(zhuǎn)發(fā)到已經(jīng)設(shè)定的端口中,比如 SSH 的22端口,22端口返回的數(shù)據(jù)它將轉(zhuǎn)發(fā)到53端口返回給客戶(hù)端(也就是你的電腦) 。這時(shí),你就可以用這臺(tái)公網(wǎng)服務(wù)器的資源了,如果是一臺(tái)http 或者sock 代理,那么你就可以用這個(gè)代理免費(fèi)上網(wǎng)了。

DNS tunnel實(shí)現(xiàn)的工具

DNS tunnel實(shí)現(xiàn)的工具有很多,比如:OzymanDNS 、tcp-over-dns 、heyoka 、iodine 、dns2tcp 。由于BT4、5系統(tǒng)自帶了dns2tcp 工具。這里僅介紹dns2tcp 的使用方法。

DNS2TCP 的DNS tunnel實(shí)驗(yàn)

環(huán)境準(zhǔn)備

一個(gè)已經(jīng)申請(qǐng)好的公網(wǎng)域名,在這里我就用本blog 的域名了xxx.org 。給該域名指定一個(gè)DNS 服務(wù)器(在域名管理的控制面板即可看到) ,本 環(huán)境為DNSpod 的服務(wù)器:f1g1ns1.dnspod.net 。一個(gè)公網(wǎng)服務(wù)器

server(運(yùn)行著B(niǎo)T4系統(tǒng),主要使用里面的dns2tcpd V4程序) 。這里使用局域網(wǎng)中的一臺(tái)PC ,在防火墻上做端口映射,將UDP 的53端口映射出去。公網(wǎng)IP 為111.222.333.444一 個(gè)客戶(hù)端client(運(yùn)行著B(niǎo)T4系統(tǒng),主要使用里面的dns2tcpc V4程序) 。這里模擬在機(jī)場(chǎng)的環(huán)境,能連接局域網(wǎng)(與上面的服務(wù)器不在一個(gè)局域網(wǎng)內(nèi),是另一個(gè)連接公網(wǎng)的局域網(wǎng)) ,能夠獲取到DNS 服務(wù)器,如遼寧網(wǎng)通的202.96.64.68,并可以通過(guò)它進(jìn)行DNS 查詢(xún)(測(cè)試方法:nslookup www.xxx.org 202.96.64.68,

,

后面的域名服務(wù)器請(qǐng)根據(jù)實(shí)際情況替換) 。

前期配置

客戶(hù)端client 可以使用域名服務(wù)器查詢(xún)域名,這里設(shè)定該域名為

dnstunnel.xxx.org (該域名不能在dnspod 的域名服務(wù)器上有任何記錄,因?yàn)檫@個(gè)記錄是由server 進(jìn)行應(yīng)答的)

在xxx.org 的域名服務(wù)器上建立兩條DNS 記錄

ns.xxx.org A 111.222.333.444(這里的目的就是給DNS 服務(wù)器設(shè)定一個(gè)域名,按原理來(lái)說(shuō)是可以舍去的,但是DNSpod 上不可以將NS 記錄配置為IP ,只能配置為域名,所以需要加上這條記錄)

xxx.org NS ns.xxx.org(這里建立一條NS 記錄,意思是如果本臺(tái)DNS 服務(wù)器上沒(méi)有客戶(hù)端查詢(xún)的域名(dnstunnel.xxx.org),請(qǐng)去ns.xxx.org(也就是111.222.333.444) 上去查詢(xún))

在server 上開(kāi)啟SSH 服務(wù)。用以進(jìn)行測(cè)試,如果DNS tunnel 建立,client 可以使用SSH 連接到服務(wù)器上。

詳細(xì)配置方法

server 端:

編輯/etc/dns2tcpd.conf文件,內(nèi)容如下:

listen = 192.168.10.88(Linux 服務(wù)器的IP )

port = 53

user = nobody

chroot = /var/empty/dns2tcp/

domain = dnstunnel.xxx.org(對(duì)該域名的請(qǐng)求進(jìn)行轉(zhuǎn)發(fā),將返回?cái)?shù)據(jù)

,

包進(jìn)行封裝)

resources = ssh:127.0.0.1:22(可以為客戶(hù)端提供的服務(wù),也可以為http:127.0.0.1:3128,如果該服務(wù)器開(kāi)啟了http 代理服務(wù)) 然后,運(yùn)行dns2tcpd 服務(wù)器程序: #./dns2tcpd-F -d 1 -f /etc/dns2tcpd.conf

================================================

client 端:#./dns2tcpc-z dnstunnel.xxx.org ns.xxx.org 如果ns.xxx.org 生效了,便可以連接服務(wù)器,提示:

Available connection(s ):

ssh

但是如果ns.xxx.org 還沒(méi)有生效,會(huì)提示:no response from

dnsserver 。這時(shí)可以先使用: #./dns2tcpc -zdnstunnel.xxx.org 202.96.64.68

如 果成功連接服務(wù)器,則說(shuō)明dnstunnel 可以成功建立了,如果沒(méi)有,請(qǐng)測(cè)試你獲取到得dns 服務(wù)器地址是否可用,并且xxx.org 的ns 記 錄是否生效。測(cè)試方法:將111.222.333.444映射到另外一個(gè)真正的dns 服務(wù)器上,加一條A 記錄,如:test.xxx.org A 192.168.10.254 。然后使用nslookup test.xxx.org 202.96.64.68,觀察能否成功解析。如果不能解析,請(qǐng)檢查dnspod 的配置及dns 記錄生效情況。

測(cè)試可以成功連接服務(wù)器后, 使用#./dns2tcpc -r ssh -l 4430 -z dnstunnel.xxx.org 202.96.64.68 這時(shí)會(huì)在本地監(jiān)聽(tīng)一個(gè)端口,類(lèi)似一個(gè)反彈木馬。使用ssh 127.0.0.1 -p 4430 便可以成功連接server

,

的22端口。如果server 提供http 代理服務(wù),那么你就可以設(shè)置http 代理服務(wù)器免費(fèi)上網(wǎng)了!

娛樂(lè):www.cssq.net

標(biāo)簽: