DNS2TCP流量转发绕过网络认证


简介 :

常见的内网环境中 , 防火墙可能会限制只允许 udp 53 端口出站
这样就可以利用 DNS 查询流量来封装 TCP 流量 , 达到绕过防火墙的目的
例如 : 
CMCC / 机场 / 火车站 等需要认证才可以链接互联网的网络环境

准备 :

1. 一台公网VPS
2. 一个可控域名


方法一 (dns2tcp)

Client

dns2tcpc -z dns.domain.com -d 2 -k password -l 4444 -r ssh
-d Debug level
-k 密码
-l 本地监听端口
-r 请求的资源
-z 指定可控的域名

Server

==================================
listen = 0.0.0.0
port = 53
# If you change this value, also change the USER variable in /etc/default/dns2tcpd
user = nobody
key = password
chroot = /tmp
domain = dns.domain.com
resources = ssh:127.0.0.1:22
==================================
dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf

Domain

1. 新建一条 A 记录例如 ns1 , 指向之后要作为 DNS 服务器的 VPS (8.8.8.8)
记录类型 A , 记录值 ns1 , 指向 8.8.8.8 
2. 新建一条 NS 记录
记录类型 NS , 记录值 dns , 指向 ns1.domain.com

Screen shot cut

image.png
Screenshot from 2017-07-23 23-10-28.png

方法二 : (iodine)

特点 : 
1. 直接在本地和服务器分别模拟出两张虚拟网卡 , 直接通过虚拟网卡通信
2. 下行流量不加密 , 效率更高

Server

iodined -c -f -D 10.0.0.1 dns.domain.com
-c 启用压缩
-f 前端运行
-D debug 模式

Client :

iodine -f dns.domain.com

Domain

同方法一

参考资料 :

http://www.adeptus-mechanicus.com/codex/dnstun/dnstun.php
http://code.kryo.se/iodine/README.html
http://www.hsc.fr/ressources/outils/dns2tcp/

你可能感兴趣的:(DNS2TCP流量转发绕过网络认证)