hw马上就开始了,突然心血来潮想做DNS Beacon上线的实验,万一hw碰上了不至于两眼黑,最起码能扯扯淡
随着目前攻击者越来越多地利用DNS通道来建立隧道与C2通信。从本地计算机到Internet的任何通信(不包括基于静态IP的通信)都依赖于DNS服务,限制DNS通信可能会导致合法远程服务的断开,因此,企业防火墙通常配置为允许UDP端口53(由DNS使用)上的所有数据包。
为了进一步做仿真模拟实验,在win7虚拟机上设置防火墙出网策略,只允许访问内网以及dns出网,但是因为windows防火墙的策略是阻断优先于放行,导致一直没有配置好环境,最终通过将阻断策略分为两条得以解决:
主机记录可以将DNS中的域名称对应到IPv4地址。
PTR可以定义某个对应的域名。
CNAME记录可以将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理,与A记录不同的是,CNAME别名记录设置的可以是一个域名的描述而不一定是IP地址。
NS记录用来指定该域名是由哪个DNS服务器来进行解析的,可以把一个域名的不同二级域名分别指向到不同的DNS系统来解析。
TXT记录一般是为某条记录设置说明,比如你新建了一条acom的TXT记录,TXT记录内容"this is a test TXT record",然后用nslookup -qt=txt acom ,你就能看到"this is a test TXT record"的字样了。
DNS协议解析过程分为两种,迭代查询和递归查询。
本机查询本地域名服务器,这部分属于递归查询。
本地域名服务器查询根域名服务器,这部分属于迭代查询。
DNS隧道是隐蔽信道的一种,通过将其他协议封装在DNS协议中进行通信。封装由客户端完成,将DNS流量还原成正常的流量由服务器完成。DNS隧道攻击利用了防火墙放行DNS的特点以及协议解析流程来实现的。
1)直连型DNS隧道:
2)域名型DNS隧道(中继):
DNS隧道建立的过程:
DNS Beacon原理:
发送端将隐蔽数据信息切分并且编码后封装到DNS报文域名中进行传输,每一级域名长度为63,域名总长度不超过253,接收端收到DNS报文后提取域名中的隐蔽信息字段进行解码重组还原得到IP报文。主要的工具有DNSCat,Iodine等
首先配置域名的记录。将自己的域名 >
IPSec 隧道模式对于保护不同网络之间的通信(当通信必须经过中间的不受信任的网络时)十分有用。隧道模式主要用来与不支持 L2TP/IPSec 或 PPTP 连接的网关或终端系统进行互 *** 作。可以在下列配置中使用隧道模式:
网关到网关
服务器到网关
服务器到服务器AH协议
隧道中报文的数据源鉴别
数据的完整性保护
对每组IP包进行认证,防止黑客利用IP进行攻击
AH 隧道模式使用 AH 与 IP 报头来封装 IP 数据包并对整个数据包进行签名以获得完整性并进行身份验证。
传输层隧道技术主要用到的工具有lcx ,netcat, PowerCat等
lcx是一个很经典的端口转发工具,其基于Socket套接字,有Windows和Linux两个版本。Windows的为lcxexe,Linux的为portmap。
下载地址: >首先要确认vps支持tun/tap设备。运行
cat /dev/net/tun
如果返回File descriptor in bad state,说明支持tun/tap。否则请发ticket联系客服。
下面要申请一个用于ipv6隧道的ipv6地址池。进入>桌面左下角,开始菜单找到“所有程序”-->“附件”里边有“远程桌面连接”点“连接”输入用户名和密码,就是服务器的administrator和密码;
这样,就进入到了服务器的桌面;
在服务器的开始菜单里,找到如上图所示的,“终端服务配置”并选择
鼠标右键,点出现菜单:“禁用连接”之后,再重新点出现菜单:点“启用”连接,就可以了,之后关闭远程桌面这个连接窗口,加密隧道这个问题就解决了在很多网络环境中,防火墙会限制出站流量,主机往往只能访问外网主机有限的几个端口,如DNS的53端口。这时,就可以通过DNS请求和响应机制,建立通信隧道。Kali Linux提供dns2tcp就是一款DNS隧道工具。该工具自带DNS解析功能,同时实现服务器端和客户端两部分。用户只要具备一个域名控制权,就可以在公网运行dns2tcp搭建服务器,然后在被限制的主机运行dns2tcp搭建客户端。这样,用户就可以建立的隧道,在客户端中通过SSH、SMTP、POP3、SSH2等工具连接dns2tcp的服务器了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)