Skip to content

DNS隧道技术

隧道技术(Tunneling)是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。

实现DNS隧道

  • 环境:攻击机(kali)、DNS服务器(Windows Server 2003)、目标服务器(centos7)

DNS服务器配置

DNS服务器IP:192.168.10.132

  • 新建一个名字为"bloodzero.com"的正向解析域

dns_tunnel_1

  • 新建一个主机,IP为攻击机kali的IP

dns_tunnel_2

  • 新建一个委托

dns_tunnel_3

DNS服务器已经配置完成。

攻击机配置

攻击机(kali)IP:192.168.10.135

  • 修改dns2tcpd配置文件

dns_tunnel_4

  • resources的IP修改为目标服务器的IP

dns_tunnel_5

  • 启动DNS隧道的服务端

dns_tunnel_6

  • 删除ssh连接的known_hosts文件

dns_tunnel_7

  • 修改DNS解析文件:vim /etc/resolv.conf

dns_tunnel_8

dns_tunnel_9

dns_tunnel_10

  • 配置DNS隧道客户端呈现,在kali2.0中,没有配置文件,需要自己手写:vim /etc/dns2tcpc.conf

dns_tunnel_11

  • 测试隧道,出现如下效果图代表成功

dns_tunnel_12

dns_tunnel_13

dns_tunnel_14

DNS隧道技术分析

  • 首先看一下流量分析的图

dns_tunnel_15

  • 本文中介绍的是DNS隧道服务器,和DNS隧道客户端是同一台机器,并不能说明问题,当DNS隧道服务器存在于防火墙之后,这个时候我们就可以利用此种技术来绕过大部分的防火墙。并且可绕过不开端口,隐蔽性好等;

dns_tunnel_16

  • 构建一台新的客户机

目标服务器(centos7):192.168.10.133

DNS隧道服务端(kali1):192.168.10.135

DNS隧道客户端(kali2):192.168.10.134

DNS服务器(Windows Server 2003):192.168.10.132

  • DNS隧道服务器流量图

dns_tunnel_17

  • DNS隧道客户端流量图

dns_tunnel_18

发现能够监听到的DNS隧道服务器与目标服务器之间的通信是SSH协议;

而DNS隧道客户端与目标机之间的通信是DNS协议;

这就是简单的配置DNS隧道;