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记录一般是为某条记录设置说明,比如你新建了一条a.com的TXT记录,TXT记录内容"this is a test TXT record.",然后用nslookup -qt=txt a.com ,你就能看到"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等
首先配置域名的记录。将自己的域名 www.hacker.com 解析到VPS服务器地址。然后创建NS记录,将 ns1.hacker.com 指向 www.hacker.com :
然后使用ping命令配合tcpdump观察一下是否有流量经过:
CS开启DNS Beacon监听:
生成DNS木马,只要木马在目标主机执行成功,我们的CobaltStrike就能接收到反弹的shell。但是默认情况下,主机信息是黑色的,我们需要执行以下命令,让目标主机信息显示出来:
『DNS隧道工具之渗透神器』— cobalt strike
DNS 隧道通信特征与检测
墨云 I 技术课堂-DNS隧道攻击与防御
工具的使用 | CobaltStrike中DNS Beacon的使用
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)