admin管理员组

文章数量:1530517

2024年7月15日发(作者:)

DNS隧道技术绕过上网认证限制 电脑资料

Author: Team核心--Conqu3r

在OWASPxx的沙龙上,某牛分享了一个好的tips,

一、DNS隧道实现原理

DNS隧道技术的实现:主要是通过对DNS查询机制的特殊性来利用的一种技术。

DNS的隧道的工作原理:

DNS查询是一种递归查询机制,如果本地没有记录,就会其它效劳器发起请求查询

结果。然后,在需要认证的ISP或者防火墙,发现过滤规那么的请求时,它们就会将查询

结果的TCP或者UDP包返回结果内容进行丢弃,保返回域名的查询IP地址。查询方式

如下列图所示:

也就是说,如果我们的请求数据包中的数据,不含过滤规那么时,有限制的ISP或者

防火墙那么不会进行丢包处理。所以,我们在发起请求时,将请求数据包内容通过标准的

DNS协议进行加密,标记解析请求的DNS地址,那么有限制的ISP在解析客户端发起的

域名请求时,无法识别地址,而去指定的DNS效劳器上进行请求查询。此时,我们在指

定的DNS效劳器上进行数据包解密。再将查询内容返回,此时,有限制的ISP或者防火

墙会再次检测内容是否为非认证状态,如果是非认证状态,那么将查询结果内容进行丢包

处理。所以,在特定的DNS效劳器上,我们需要将结果进行标准DNS协议加密返回客

户端。此时ISP无法识别结果,而直接返回客户端进行解密处理。这样我们就完成了一次

DNS隧道请求,而完全绕过的ISP效劳商的认证。加密传输方式数据包如下列图:

二、建立DNS隧道的环境需求

1、可以连接有限制的ISP效劳商,比方连接CMCC的无线信号

2、需要一台高速的性能较高的安装好java的效劳器(当然也可以随便一台国内的就

行了,目的是为了提高查询的延迟速度)

3、Tcp-over-dns工具,用来提供客户端、效劳器通信加解密操作

4、客户端全局代理工具Proxifier(非必需条件,只是我觉得可以用这个来让本机所

有程序都代理上网)

三、实现步骤

1、设置自己的DNS效劳器域名

方法a:如果你有直接修改DNS记录的权限,可以在dns记录中参加:

;set up the DNS tunnel

$ORIGIN bit..

@ IN NS bit..

ns IN A

方法b:设置两个域名记录,其中一个NS记录,一个A记录

. A (效劳器IP)

方法c:直接修改我们购置域名时的DNS解析记录

Dnstun NS

Ns A (效劳器IP)

2、设置效劳器

下载tcp-over-dns软件,执行命令:

Java -jar –domain –forward-port 22

(为了效劳器平安,端口应设置在1024以下)

必须包含–forward-port参数

3、设置客户端

在需要上网的主机上下载tcp-over-dns软件,执行

Java -jar –domain –listen-port 8888 –

interval 100(如果效劳器性能较高,可以设置最低数值到5或者10)

4、设置上网

或者直接在全局代理效劳器中设置全局代理,

本文标签: 查询效劳认证进行请求