通过DNS隧道制造工具 iodine实现免费上网

所属分类: 软件教程 / 网络通讯 阅读数: 2131
收藏 0 赞 0 分享

odine可以通过一台DNS服务器制造一个IPv4数据通道,这个工具可帮助渗透测试人员用于穿越防火墙等情景。这款工具运行于 Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD和Windows,并需要一个TUN/TAP设备。同时对带宽也有一定要求。

特性:

高性能
跨平台
安全性
安装简单

以前写过这篇文章,对DNS tunnel进行了详细介绍,并附了DNS2tcp工具的使用方法,详见:[DNS tunnel(DNS隧道)技术应用工具-DNS2tcp的使用方法及原理] 。不过那个工具在windows下好像不太好用,我就又找了一个工具,叫iodine。
官方网站:http://code.kryo.se/iodine/

官方下载地址:http://code.kryo.se/iodine/iodine-0.7.0-windows.zip

此外,在服务器及客户端都需要安装openVPN。下载地址:https://www.jb51.net/softs/120505.html (Win7 64位测试有效)。
代理软件:ccproxy(代理服务器)

使用方法:
服务器端:
1.下载openVPN。安装时仅选择TAP-Win32 driver即可。安装后,可以发现服务器多出一块网卡,我这里给随便设置了一个IP:10.0.0.100。
2.下载iodine win32 binaries。解压后可以得到两个exe文件及一个dll。进入解压目录,输入命令:
iodined -c -f 10.0.0.100 dns.guanwei.org (这里我已经将dns.guanwei.org的NS记录设置为服务器的IP了详见上篇文章)
设置一个password,出现“Listening to dns for domain dns.guanwei.org ”代表已经成功!
客户端:
1.下载openVPN。安装时仅选择TAP-Win32 driver即可。安装后,可以发现服务器多出一块网卡。
2.下载iodine win32 binaries。解压后可以得到两个exe文件及一个dll。进入解压目录,输入命令:
iodine -f -P 刚才设置的密码 服务器的IP dns.guanwei.org
出现“Connection setup complete, transmitting data.”代表已经成功!
此时,TCP over DNS已经建立成功。在客户端ping 10.0.0.100可以发现成功ping通。
如果想实现免费上网,只需在服务器端安装一个代理软件即可,这里我推荐CCproxy(https://www.jb51.net/softs/2199.html)。

这时,将IE的代理服务器设置为10.0.0.100即可。下面就请免费上网吧!

下面是其他网友的补充:

用DNS隧道实现免费上网

大多数机场、酒店之类场所,当你输入一个网址比如www.google.com时,会弹出一个页面要你输入帐号密码才能上网。这个时候DNS能正确解析,但是上网要付费认证。
可以通过DNS隧道来实现免费上网。具体做法是:
(1)找一个支持DNS解析的域名,现在这类免费域名很多,比如tk的、co.cc的。假设该域名是
abc123.tk
(2)在tk的注册机构里,设置abc123.tk的NS服务器为你自己的主机(最好是Linux VPS),例如:
abc123.tk. IN NS ns.abc123.tk.
ns.abc123.tk. IN A 74.81.81.81
(3)在74.81.81.81上,以root身份运行一个Perl脚本(这个脚本来自Dan Kaminsky的OzymanDNS包):
./nomde.pl -i 0.0.0.0 abc123.tk
上述脚本会侦听在UDP 53端口,接受DNS请求,并且只解析abc123.tk域。
(4)在客户机上(要求有ssh,最好是Linux系统),运行如下命令:
ssh -ND 7070 -o ProxyCommand=”./droute.pl sshdns.abc123.tk” user@localhost
上述ssh命令,-ND 7070表示在本机打开7070的socks 5代理端口。droute.pl是DNS隧道的客户端工具,同样来自于OzymanDNS包。sshdns是固定的主机名,加在域名abc123.tk前面。user是你在74.81.81.81上的登录名字,@localhost是固定的,不需要改(因为隧道过去后,就是74.81.81.81本机)。
运行上述ssh命令后,会提示输入密码。输入正确密码后,就和远程主机建立了ssh连接,获取到一个SSH终端。并且,在本机打开了7070的socks 5代理端口。配置浏览器使用这个代理端口,开始享受免费冲浪吧!

DNS 隧道

有那么几天,我们在惠灵顿的海边山顶租了个屋子,一切都很舒服,但是不能上网。甚至于附近连 wifi 信号都收不到,想"借用"一下别人的 wifi 热点都不成。我顶着海边的狂风在院子里竖起天线,捕捉着周围微弱的信号,最终未果。然后转战屋里的有线电视。我发现和国内的有线电视一样,机顶盒是接有网线的。也就是说,物理上,存在一条链路接入了互联网。但是我插上电脑后,发现 ip 包根本发不出去。不过,好似有个 DNS 服务是可以用的。

当时也没多想,只是觉得有办法可以利用一下。不过隔天就搬走了,没有深入下去。今天回味一下,感觉的确可以利用 DNS 服务和外部建立连接。当然,一开始就需要在外界把接应的程序程序搭建好。

原理很简单,你在做 DNS 查询的时候,如果查的域名在 DNS 服务器本机的 cache 中没有,它就会去互联网上查询,最终把结果返回给你。如果你在互联网上有台定制的服务器。只要依靠 DNS 的这层约定,就可以交换数据包了。从 DNS 协议上看,你是在一次次的查询某个特定域名,并得到解析结果。但实际上,你在和外部通讯。你没有直接连到局域网外的机器,因为网关不会转发你的 IP 包出去。但局域网上的 DNS 服务器帮你做了中转。这就是 DNS Tunnel 了。

我觉得有趣,就按文章所述做了试验。

这需要一个自己的域名,一台运行在互联网上的机器可以自由安装软件。这些都有。那个假的 DNS 是由 OzymanDNS 提供的。不过今天我搜到的 OzymanDNS 网站上已经没有了下载包。好在 google 很强大,这个 2004 年编写的小 perl 程序,并不难找到。

不过我反复试验也没有成功,按文章所述的,利用 ssh 在本机上的 proxycommand 我怎么都无法通过 dnstunnel 连上主机。估计是我哪里配置的不对吧。不过接下来 google 到了更好的选择。那就是 iodine 这个小玩意。非常简单的就装好了。第一次运行发现找不到 tun 设备。看来需要手工建一个。在 linux 上可以自己来: mkdir /dev/net ; mknod /dev/net/tun c 10 200 这样即可。

windows 版麻烦一些,需要装软件。安装个 openvpn 包里的 TAP driver 就行了。

然后利用 iodine 可以利用 dns tunnel 建立起虚拟网。接下来可以方便的用 ssh -D 建起 socks5 了。不过我觉得这个都是多余的。为了节约 dns tunnel 上的带宽,我直接建了个 socks5 服务器。就是用的我前段写的一篇 blog 中提到的 ssocks 。同样需要修改一下,把监听端口绑定在 10.0.0.1 上。

最后,居然没遇到什么麻烦就接通了。我想我所在网络出口上的 dns 服务器肯定觉得很疼。这真是一个超级淡疼的 tunnel 方案啊。嗯,可以留作日后翻墙的备用方案,以备不时之需。

ps. 好想知道到处都有的诸如 CMCC 的 wifi 热点能不能用。下次到商业区别忘记试试看。

更多精彩内容其他人还在看

两台电脑共享LAN快车上网的解决方案

问:单位的电脑使用中国电信的LAN方式上网,操作系统是Windows XP SP2,上网时需要进行虚拟拨号,是没有Modem的那种连接。我的一个同事最近又加了一台电脑,请问,用什么简单的方法连接这两台电脑共同用这个LAN上网?   
收藏 0 赞 0 分享

必学:电脑与网络维护常用技巧

如果你做电脑和网络维护方面的工作,来看看,你会发现这里面的小技巧很多是值得收藏并好好加以利用和学习的    第一条:Windows 2000 连接共享    interner connect share ICS
收藏 0 赞 0 分享

ADSL路由方式的NAT(端口映射)

NAT是网络地址翻译就是把公网IP翻译成私有地址, 又叫端口映射或端口转发. 采用路由方式是指ADSL拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。这时ADSL的外部地址只有一个,比如61.177.*.*
收藏 0 赞 0 分享

防火墙配置不当导致网络无法共享

最近某小型局域网内的工作站无法通过服务器连接Internet,服务器可以访问Internet,管理员在进行自查无果后向笔者求救,笔者赶到后,首先了解了一下情况,此局域网所有机器操作系统均为Windows XP,通过服务器的Internet连接共
收藏 0 赞 0 分享

net命令使局域网文件同步更新

现在大家都希望有个同步软件可以达到网络目录或者文件的更新来减少自己的工作量,现在网络上也有很多软件可以达到这个目的,象同步专家之类的,但是这些软件需要安装服务端和客户端,客户端要常驻才能使用,并且占用了一定的资源。 
收藏 0 赞 0 分享

在网吧中如何使用双ADSL线路

现在网吧中使用ADSL作为上网线路的越来越多,一是因为ADSL比较便宜,另外是因为ADSL安装方便。但是ADSL的带宽有限,而网吧能否提供给用户高速稳定的上网线路,是能够留住顾客的关键。按照经验,如果是一条512K的ADSL线路,有10人同时
收藏 0 赞 0 分享

关于网络拥挤问题及对应处理办法

网络拥挤现象的基本症状是网络的某一部分或整个网络性能低劣。在高峰期,可能这只是暂现象。在其他情况下,这种现象可能逐渐漫延持续几周或几个月的时间,直到最后使网络性能降低到无法容忍的水平。   引起网络拥挤现象的原因有多
收藏 0 赞 0 分享

Internet连接共享组网实例技巧

ICS(Internet连接共享)是Windows 2000内置的一种网络连接共享服务,它可以使家庭网络或小型办公室网络用户非常容易的连接到Internet。    要使用ICS,有几点需要注意:    (1)启用ICS的计算机必须具有两个网络
收藏 0 赞 0 分享

加快Windows 2000访问网上邻居的速度

在部分机器的Windows 2000中打开“邻近的计算机”,常常会等上几十秒的时间,让人无法忍受。仔细分析会发现,在找到的计算机当中,包括“打印机”和“任务计划”两项。通过“网上邻居”浏览计算机时,Windows 2000会先搜索
收藏 0 赞 0 分享

浅谈Win 98中一块网卡实现两个网段的通信

目前,鉴于我国中小学信息技术教材内容的设置,绝大部分中小学校计算机安装的依然是Windows 98。笔者所在学校也一样,且教师办公用机和学生机的IP地址分属两个网段(办公用机在10.10.8.?网段,学生机在192.168.0.?网段)。办公
收藏 0 赞 0 分享
查看更多