域名系统协议,也称为域名系统,是互联网的基础设施。只要使用互联网,域名系统协议就是提供网络服务的重要协议。黑客进入内部网后,他们会使用域名系统、ICMP、HTTP和其他协议隧道来隐藏通信流量。本文通过DNS隧道实验和流量分析,识别出DNS隧道的流量特征。
实验室环境世纪操作系统Linux二代
创建DNS服务器1。安装绑定yum安装绑定*
2。配置命名文件修改/等/命名。将下图中选择的位置更改为any
3。创下全国纪录。记录添加区域分辨率文件添加区域分辨率记录文件
添加转发分辨率记录
更改/var/named/named.localhost到名称
cp/var/named/Named.localhost/var/named/name.dnstunel
修改文件如下
添加NS记录。记录
添加绑定到自启动服务
systemctl enablename . service
SystemCTL restart name . service
查看启动状态
SystemCTL状态命名。服务
将另一台主机的DNS服务器设置为192.168.1.7,Ping ns.dnstuneltest.com以获得正确的解决方案(如果不是,则可能与防火墙有关。iptables-f)
碘IONINE支持两种模式,继电器和直接连接。服务器和客户端可以直接通信,而不需要第三种辅助软件。对已传送的域名系统数据的损坏很容易发现。
安装下载地址:
解压缩
cd碘-master
make
error
yum-y installzlib-developer
make;完成安装
安装完成
进入Bin
碘服务器
碘客户端
实验测试服务器
。/碘化-f-c-p123456 10.1.0.1 ns。dnstuneltest.com
-f前台显示,运行后,它一直在等待
-c中继模式|直接连接模式
-P认证密码
Ip虚拟网卡Ip。建立隧道后,客户端还会有一个额外的dns0网卡,它与IP位于同一网段,可以任意设置。虚拟知识产权
设置的域名应该与这里的区域配置文件一致。在
输入完成后,Ifconfig将再看到一个网卡
客户端
。/碘-f-P 123456 192 . 168 . 1 . 7 ns . dnstuneltest . com
-f前台显示
-P身份验证密码
IP是已配置的DNS服务器IP或已购买的云服务IP。输入此选项后,它将直接使用指定的IP进行查询,而无需其他DNS服务器层解析。
客户端此时也将添加网卡。DNS0、IP 10.1.0.2和服务器DNS0网卡位于同一网段。此时,服务器和客户端可以使用这两个IP相互通信
流量数据包分析捕获数据包
Tcpdump-IEnp2s 0端口53-W/TMP/碘。pcap
链接数据包分析客户端启动后,将向服务器发送DNS请求数据包
客户端智能请求数据包。请求数据包的类型为10(未知,可用作检测特征)。该数据用作域名前缀
年O.ns.dnstuneltest.com。YRBH1 O是请求的数据
服务器响应数据包。rdata字段携带数据,因为查询包没有指定查询类型。因此,rdata字段没有长度限制(限于UDP最大数据包长度512字节),
采用中继模式。客户端将始终发送心跳数据包并保持链接(因为DNS服务器不会直接启动与客户端的链接,客户端将始终希望服务器发送数据包)。然而,域名系统协议的字段格式已经被破坏
流量数据包分析通信过程中的DNS协议格式已损坏。wireshark无法以占用字节-三级域名-占用字节-二级域名-占用字节-一级域名的形式正确分析
正常DNS数据包中的查询字段,并且00阶段仅在正常查询字段结束时出现。
05樊沂05百度03 com
隧道中的流量明显不符合上述查询字段从60 08开始
苏里南检测规则(未测试,仅供参考)UDP有效负载协议偏移量40字节是否为0 0a,频率是否达到5秒以上3次报警udp$HOME_NETany ->;任何53(消息:“dnstunnel-碘-连接”;内容:“|00 0a| ”;偏移量:40;深度:4;阈值:typelimit,track by_src,计数3,秒5;类类型:dns。sid:2010000;rev:1;)通信包,查询字段60 08开始,并且后面没有59个字母或数字的组合,或者下面的字母不存在\x00并且频率同时超过60s 100次报警udp$HOME_NETany ->;任何53(msg:" dnstunnel-碘-交通";dsize >。100;内容:“| 6008 |”;偏移:12;pcre :!"/流量数据包分析链路未生成通信数据包
当使用ssh访问时,数据包
数据包分析
客户端将在需要时向服务器发起TXT类型请求。服务器的返回数据包也将被放在回复的文本传输记录中。
客户端通过文本类型记录的域名前缀发送数据,并通过域名解析系统RR中的文本类型记录追加响应内容域名前缀和响应内容是base64编码的。如果提取单个数据并进行base64解码,就可以看到传输的内容。从合同发布行为可以发现,如果有大量的数据交互(如数据传输),dns2tcp会将数据分成几个小单元,并以非常小的时间间隔依次发送出去。然而,当没有数据交互并且空闲时,两端仍然通过合同发布来保持通信状态。
Suricata规则检测(未测试,仅供参考)由于Dns2tcp使用标准的Dns协议格式,通过合同出租频率只能检测到
报警udp$HOME_NETany ->;any 53(msg:“DNS隧道-DNS 2tcp”;内容:“| 0010 |”;偏移量:40;深度:4;阈值:typelimit,track by_src,计数150,秒10;类类型:dns。sid:2010003;rev:1;)结束
白色水文,请大神通过
pcap包下载地址:
提取代码:n5a
精彩推荐