DNS隧道和工具
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS隧道和工具相关的知识,希望对你有一定的参考价值。
摘自:http://www.cndev.org/forum/msg?pid=911705
什么是DNS tunnel?
DNS tunnel是利用DNS查询过程建立起隧道连接,传输数据的方法。
这东西用来干嘛的?
本来是黑客用的后门手段,现在可以用来免费使用CMCC或ChinaNet的WIFI,甚至可以用来FQ。
什么原理?
1、DNS的工作机制是递归查询请求的方式,一直查到提供解析的具体服务器,这就提供了客户机与服务器建立连接的手段。
2、正常DNS查询的UDP包只用到很少的字节,这就提供了夹带其他数据的空间。
3、大部分网络环境是不封对外查DNS的端口的,而且就算封了端口也没用,数据仍然可以通过正常DNS服务器中转的。
怎么实现?
有很多工具,按我个人的用后感受排名:iodine,TCP-over-DNS,dns2tcp,heyoka,OzymanDNS(这个的网站已经没有下载了,据说也不容易设置,我也懒得找来试用了)
示意图,这种场景就是我上面说的即使封了对外端口也能成功,只要内部DNS设置了转发服务器,一样是可以逐级转发的。
需要的资源
一台主机或VPS,用来装服务端和用来做上网代理;
一个受你控制的域名,可以自己注册一个,或者用免费的最好(算帐也找不到你头上),推荐freedns.afraid.org,这里SignUp;
带无线网卡的手提(用来连CMCC或ChinaNet热点),或者台式机也行(用来穿墙)。
安装方法都比较简单,看官方说明足够了,装不成功就狗一下中文的教程。
几种工具的比较
iodine:速度最快,密码验证,多种平台PORT(甚至android也有),最多支持16用户,双向,全端口转发,但是需要OpenVPN支持。
tcp-over-dns:Java写的,也支持多平台,单一端口转发,不需额外支持。
dns2tcp:多端口转发,不需额外支持,但是没有for WIN 版。
Heyoka:只有WIN的alpha版,2009年发布之后就没下文了。
回到正题
CMCC热点,当你连上之后访问任何网页之前都会重定向到验证页面要求你输入手机号,没有就上不了网。不过,DNS查询是不限制的,这些工具就有用武之地了。ChinaNet也是,我估计联通的一样。所以,当你出门在外例如机场等地,只要有这些热点就可以随时上网了。
使用心得
iodine建立连接的时候会测试封包最大可用空间,尽可能在一个包里传输最多数据。
有两种连接方式,一种是直连,一种是中转,参数的含义自己查。
直连:iodined -f -P cndev 192.168.100.1 219.219.219.219 zhong.cndev.org
中转:iodined -f -P cndev 192.168.100.1 zhong.cndev.org
视中转服务器的类型不同,直连的性能大概比中转快20%-4倍,中转的适用范围广。
dns2tcp的多端口转发是在配置文件里配置的,自己按格式自定,想添加多少端口都可以。
ressources = ssh:127.0.0.1:22 ,
smtp:127.0.0.1:25,
pop3:10.0.0.1:110,
ssh2:[fe80::1664]:22
使用的时候加参数 -r ssh 这样就可以使用指定端口了。
后话
DNS隧道是老漏洞了,但是到现在还一直存在是因为没什么好方法可防范,只有具有深度检测技术的防火墙才能防,简单的禁止53端口并不能解决问题,只要局域网内有一台DNS服务器是跟外部相连的,就阻止不了这种方法。写到这里,我觉得这篇东西太邪恶了,有点不想发出来了,所以大家看看就好了,别贴出去。
关于穿墙,据这其中一款提了一句(忘了是哪款了)是可以穿防火墙和代理服务器的,至于能不能穿功夫网,由于我也没有墙外的VPS,所以也不知道行不行,如果巭网的DNS劫持只是针对特定的域名特定的服务器,那么应该是可以穿的,不过如果有墙外VPS的人也用不着这么穿了。
关于热点,CMCC允许直接连接其他DNS服务器,ChinaNet只允许连它自己的DNS,根据我的实测,用CMCC比ChinaNet快3倍左右,顺便说一句,中转是让DNS服务器很蛋疼的一种方式,你所有的数据都要经过一次中转服务器,这大大增加了中转服务器的压力。所以,ChinaNet的限制到底是好是坏真不好说。
以上是关于DNS隧道和工具的主要内容,如果未能解决你的问题,请参考以下文章
红蓝对抗之隧道技术第二篇(reGeorg内网穿透SSH隧道本地Socks代理SSH远程转发Earthworm Socks5代理Tunna正向代理ICMP隧道DNS隧道Frp穿透)
红蓝对抗之隧道技术第二篇(reGeorg内网穿透SSH隧道本地Socks代理SSH远程转发Earthworm Socks5代理Tunna正向代理ICMP隧道DNS隧道Frp穿透)