通過DNS隧道制造工具 iodine實(shí)現(xiàn)免費(fèi)上網(wǎng)

odine可以通過一臺DNS服務(wù)器制造一個IPv4數(shù)據(jù)通道,這個工具可幫助滲透測試人員用于穿越防火墻等情景。這款工具運(yùn)行于 Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD和Windows,并需要一個TUN/TAP設(shè)備。同時對帶寬也有一定要求。
特性:
高性能
跨平臺
安全性
安裝簡單
以前寫過這篇文章,對DNS tunnel進(jìn)行了詳細(xì)介紹,并附了DNS2tcp工具的使用方法,詳見:[DNS tunnel(DNS隧道)技術(shù)應(yīng)用工具-DNS2tcp的使用方法及原理] 。不過那個工具在windows下好像不太好用,我就又找了一個工具,叫iodine。
官方網(wǎng)站:http://code.kryo.se/iodine/
官方下載地址:http://code.kryo.se/iodine/iodine-0.7.0-windows.zip
此外,在服務(wù)器及客戶端都需要安裝openVPN。下載地址:http://www.dbjr.com.cn/softs/120505.html (Win7 64位測試有效)。
代理軟件:ccproxy(代理服務(wù)器)
使用方法:
服務(wù)器端:
1.下載openVPN。安裝時僅選擇TAP-Win32 driver即可。安裝后,可以發(fā)現(xiàn)服務(wù)器多出一塊網(wǎng)卡,我這里給隨便設(shè)置了一個IP:10.0.0.100。
2.下載iodine win32 binaries。解壓后可以得到兩個exe文件及一個dll。進(jìn)入解壓目錄,輸入命令:
iodined -c -f 10.0.0.100 dns.guanwei.org (這里我已經(jīng)將dns.guanwei.org的NS記錄設(shè)置為服務(wù)器的IP了詳見上篇文章)
設(shè)置一個password,出現(xiàn)“Listening to dns for domain dns.guanwei.org ”代表已經(jīng)成功!
客戶端:
1.下載openVPN。安裝時僅選擇TAP-Win32 driver即可。安裝后,可以發(fā)現(xiàn)服務(wù)器多出一塊網(wǎng)卡。
2.下載iodine win32 binaries。解壓后可以得到兩個exe文件及一個dll。進(jìn)入解壓目錄,輸入命令:
iodine -f -P 剛才設(shè)置的密碼 服務(wù)器的IP dns.guanwei.org
出現(xiàn)“Connection setup complete, transmitting data.”代表已經(jīng)成功!
此時,TCP over DNS已經(jīng)建立成功。在客戶端ping 10.0.0.100可以發(fā)現(xiàn)成功ping通。
如果想實(shí)現(xiàn)免費(fèi)上網(wǎng),只需在服務(wù)器端安裝一個代理軟件即可,這里我推薦CCproxy(http://www.dbjr.com.cn/softs/2199.html)。
這時,將IE的代理服務(wù)器設(shè)置為10.0.0.100即可。下面就請免費(fèi)上網(wǎng)吧!
下面是其他網(wǎng)友的補(bǔ)充:
用DNS隧道實(shí)現(xiàn)免費(fèi)上網(wǎng)
大多數(shù)機(jī)場、酒店之類場所,當(dāng)你輸入一個網(wǎng)址比如www.google.com時,會彈出一個頁面要你輸入帳號密碼才能上網(wǎng)。這個時候DNS能正確解析,但是上網(wǎng)要付費(fèi)認(rèn)證。
可以通過DNS隧道來實(shí)現(xiàn)免費(fèi)上網(wǎng)。具體做法是:
(1)找一個支持DNS解析的域名,現(xiàn)在這類免費(fèi)域名很多,比如tk的、co.cc的。假設(shè)該域名是
abc123.tk
(2)在tk的注冊機(jī)構(gòu)里,設(shè)置abc123.tk的NS服務(wù)器為你自己的主機(jī)(最好是Linux VPS),例如:
abc123.tk. IN NS ns.abc123.tk.
ns.abc123.tk. IN A 74.81.81.81
(3)在74.81.81.81上,以root身份運(yùn)行一個Perl腳本(這個腳本來自Dan Kaminsky的OzymanDNS包):
./nomde.pl -i 0.0.0.0 abc123.tk
上述腳本會偵聽在UDP 53端口,接受DNS請求,并且只解析abc123.tk域。
(4)在客戶機(jī)上(要求有ssh,最好是Linux系統(tǒng)),運(yùn)行如下命令:
ssh -ND 7070 -o ProxyCommand=”./droute.pl sshdns.abc123.tk” user@localhost
上述ssh命令,-ND 7070表示在本機(jī)打開7070的socks 5代理端口。droute.pl是DNS隧道的客戶端工具,同樣來自于OzymanDNS包。sshdns是固定的主機(jī)名,加在域名abc123.tk前面。user是你在74.81.81.81上的登錄名字,@localhost是固定的,不需要改(因?yàn)樗淼肋^去后,就是74.81.81.81本機(jī))。
運(yùn)行上述ssh命令后,會提示輸入密碼。輸入正確密碼后,就和遠(yuǎn)程主機(jī)建立了ssh連接,獲取到一個SSH終端。并且,在本機(jī)打開了7070的socks 5代理端口。配置瀏覽器使用這個代理端口,開始享受免費(fèi)沖浪吧!
DNS 隧道
有那么幾天,我們在惠靈頓的海邊山頂租了個屋子,一切都很舒服,但是不能上網(wǎng)。甚至于附近連 wifi 信號都收不到,想"借用"一下別人的 wifi 熱點(diǎn)都不成。我頂著海邊的狂風(fēng)在院子里豎起天線,捕捉著周圍微弱的信號,最終未果。然后轉(zhuǎn)戰(zhàn)屋里的有線電視。我發(fā)現(xiàn)和國內(nèi)的有線電視一樣,機(jī)頂盒是接有網(wǎng)線的。也就是說,物理上,存在一條鏈路接入了互聯(lián)網(wǎng)。但是我插上電腦后,發(fā)現(xiàn) ip 包根本發(fā)不出去。不過,好似有個 DNS 服務(wù)是可以用的。
當(dāng)時也沒多想,只是覺得有辦法可以利用一下。不過隔天就搬走了,沒有深入下去。今天回味一下,感覺的確可以利用 DNS 服務(wù)和外部建立連接。當(dāng)然,一開始就需要在外界把接應(yīng)的程序程序搭建好。
原理很簡單,你在做 DNS 查詢的時候,如果查的域名在 DNS 服務(wù)器本機(jī)的 cache 中沒有,它就會去互聯(lián)網(wǎng)上查詢,最終把結(jié)果返回給你。如果你在互聯(lián)網(wǎng)上有臺定制的服務(wù)器。只要依靠 DNS 的這層約定,就可以交換數(shù)據(jù)包了。從 DNS 協(xié)議上看,你是在一次次的查詢某個特定域名,并得到解析結(jié)果。但實(shí)際上,你在和外部通訊。你沒有直接連到局域網(wǎng)外的機(jī)器,因?yàn)榫W(wǎng)關(guān)不會轉(zhuǎn)發(fā)你的 IP 包出去。但局域網(wǎng)上的 DNS 服務(wù)器幫你做了中轉(zhuǎn)。這就是 DNS Tunnel 了。
我覺得有趣,就按文章所述做了試驗(yàn)。
這需要一個自己的域名,一臺運(yùn)行在互聯(lián)網(wǎng)上的機(jī)器可以自由安裝軟件。這些都有。那個假的 DNS 是由 OzymanDNS 提供的。不過今天我搜到的 OzymanDNS 網(wǎng)站上已經(jīng)沒有了下載包。好在 google 很強(qiáng)大,這個 2004 年編寫的小 perl 程序,并不難找到。
不過我反復(fù)試驗(yàn)也沒有成功,按文章所述的,利用 ssh 在本機(jī)上的 proxycommand 我怎么都無法通過 dnstunnel 連上主機(jī)。估計是我哪里配置的不對吧。不過接下來 google 到了更好的選擇。那就是 iodine 這個小玩意。非常簡單的就裝好了。第一次運(yùn)行發(fā)現(xiàn)找不到 tun 設(shè)備??磥硇枰止そㄒ粋€。在 linux 上可以自己來: mkdir /dev/net ; mknod /dev/net/tun c 10 200 這樣即可。
windows 版麻煩一些,需要裝軟件。安裝個 openvpn 包里的 TAP driver 就行了。
然后利用 iodine 可以利用 dns tunnel 建立起虛擬網(wǎng)。接下來可以方便的用 ssh -D 建起 socks5 了。不過我覺得這個都是多余的。為了節(jié)約 dns tunnel 上的帶寬,我直接建了個 socks5 服務(wù)器。就是用的我前段寫的一篇 blog 中提到的 ssocks 。同樣需要修改一下,把監(jiān)聽端口綁定在 10.0.0.1 上。
最后,居然沒遇到什么麻煩就接通了。我想我所在網(wǎng)絡(luò)出口上的 dns 服務(wù)器肯定覺得很疼。這真是一個超級淡疼的 tunnel 方案啊。嗯,可以留作日后翻墻的備用方案,以備不時之需。
ps. 好想知道到處都有的諸如 CMCC 的 wifi 熱點(diǎn)能不能用。下次到商業(yè)區(qū)別忘記試試看。
相關(guān)文章
微軟新版Outlook將推出郵件分類快捷鍵及多項優(yōu)化:5月開始部署
微軟計劃在新版Outlook for Windows中引入郵件分類快捷功能,用戶可通過預(yù)設(shè)快捷鍵快速對郵件進(jìn)行分類,從而大幅提升工作效率并優(yōu)化管理流程2025-04-21rsync The --password-file option may only be used when accessing a
客戶端上傳文件執(zhí)行命令出錯,提醒The --password-file option may only be used when accessing an rsync daemon.查找資料也很少這樣的說法,最后發(fā)現(xiàn)是冒號的問題2025-02-26郵箱密碼忘記了怎么找回來? 網(wǎng)易郵箱密碼找回流程
郵箱在使用的時候,由于各種原因,有時候我們可能會遇到忘記密碼、賬號被盜等問題,這時候就需要進(jìn)行163郵箱找回操作,本文將為大家介紹如何進(jìn)行163郵箱找回操作2025-02-01- 電子郵件成為了我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡囊徊糠?,無論是注冊社交媒體、購物平臺,還是與他人溝通,一個穩(wěn)定的郵箱賬號都變得至關(guān)重要,本文將為您提供詳細(xì)的電子郵件2025-02-01
wps調(diào)用Outlook 批量發(fā)送電子郵件時持續(xù)彈出警告框怎么辦?
如何解決程序調(diào)用outlook時一直警告,wps調(diào)用outlook發(fā)送郵件時,發(fā)送的時候,會一直出現(xiàn)警告,需要你一個個點(diǎn)確定或拒絕,本文介紹如何解決這個警告2025-02-01QQ郵箱文件怎么發(fā)送微信? 電腦qq郵箱中轉(zhuǎn)站中文件分享到微信的方法
在使用郵箱軟件的時候,有的用戶想要通過QQ郵箱文件,QQ郵箱中存在這種功能,但是很多小伙伴不知道到底要如何操作,下面小編就給大家?guī)鞶Q郵箱文件發(fā)送微信教程,感興趣的2024-09-29微信電腦版怎么獨(dú)立窗口中打開訂閱號? 訂閱號獨(dú)立窗口顯示的教程
微信電腦版看訂閱號的時候,想要獨(dú)立窗口顯示訂閱號,該怎么操作呢?下面我們就來看看詳細(xì)的教程2024-09-29Outlook在windows系統(tǒng)中有哪些快捷鍵? Outlook的鍵盤快捷方式大全
Outlook可以用它來收發(fā)電子郵件、管理聯(lián)系人信息、記日記、安排日程、分配任務(wù),新版Outlook for Windows帶來了許多新功能,今天我們就來看看Outlook快捷鍵匯總2024-09-13微信怎么調(diào)默認(rèn)瀏覽器? 微信設(shè)置默認(rèn)瀏覽器打開網(wǎng)頁鏈接的教程
微信怎么調(diào)默認(rèn)瀏覽器?只需簡單設(shè)置,在微信就可以使用默認(rèn)瀏覽器打開網(wǎng)站,該怎么設(shè)置呢?詳細(xì)請看下文介紹2024-08-14GameViewer怎么刪除設(shè)備 GameViewer刪除設(shè)備的步驟
GameViewer怎么刪除設(shè)備?GameViewer 是一款專為游戲玩家設(shè)計的遠(yuǎn)程控制助手,下文中為大家?guī)砹薌ameViewer刪除設(shè)備步驟,需要的朋友快來看看吧2024-06-17