DNS隧道小结

本文仅作为学习记录,如有侵权,请联系删除!

前言:


hw马上就开始了,突然心血来潮想做DNS Beacon上线的实验,万一hw碰上了不至于两眼黑,最起码能扯扯淡

0x00 环境配置:


随着目前攻击者越来越多地利用DNS通道来建立隧道与C2通信。从本地计算机到Internet的任何通信(不包括基于静态IP的通信)都依赖于DNS服务,限制DNS通信可能会导致合法远程服务的断开,因此,企业防火墙通常配置为允许UDP端口53(由DNS使用)上的所有数据包。

为了进一步做仿真模拟实验,在win7虚拟机上设置防火墙出网策略,只允许访问内网以及dns出网,但是因为windows防火墙的策略是阻断优先于放行,导致一直没有配置好环境,最终通过将阻断策略分为两条得以解决:

0x01 DNS的几种资源记录类型:


  • 1.主机记录(A记录)

主机记录可以将DNS中的域名称对应到IPv4地址。

  • 2.PTR

PTR可以定义某个对应的域名。

  • 3.CNAME (Canonical Name)记录,通常称别名解析

CNAME记录可以将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理,与A记录不同的是,CNAME别名记录设置的可以是一个域名的描述而不一定是IP地址。

  • 4.NS(Name Server)记录是域名服务器记录

NS记录用来指定该域名是由哪个DNS服务器来进行解析的,可以把一个域名的不同二级域名分别指向到不同的DNS系统来解析。

  • 5.TXT 记录

TXT记录一般是为某条记录设置说明,比如你新建了一条a.com的TXT记录,TXT记录内容"this is a test TXT record.",然后用nslookup -qt=txt a.com ,你就能看到"this is a test TXT record"的字样了。

0x02 DNS协议解析过程:


DNS协议解析过程分为两种,迭代查询和递归查询。

  • 迭代查询:

本地域名服务器向根域名服务器发送请求报文,根域名服务器直接给出ip地址或者告诉本地域名服务器下一步应该去向另一个域名服务器A进行查询。同理,A域名服务器直接给出ip地址或者告诉本地域名服务器下一步应该去查询B域名服务器。过程以此类推,直到找到ip地址为止。

  • 递归查询:

客户机像本地域名服务器查询,如果本地服务器的缓存中没有需要查询的ip地址,那么本地域名服务器会以客户机的身份(代替本机查询),向根域名服务器发送请求报文。

本机查询本地域名服务器,这部分属于递归查询。
本地域名服务器查询根域名服务器,这部分属于迭代查询。

0x03 DNS隧道:


DNS隧道是隐蔽信道的一种,通过将其他协议封装在DNS协议中进行通信。封装由客户端完成,将DNS流量还原成正常的流量由服务器完成。DNS隧道攻击利用了防火墙放行DNS的特点以及协议解析流程来实现的。

1.)直连型DNS隧道:

客户端直接和指定的目标DNS Server进行UDPsocket套接字连接,通过将数据编码封装在DNS协议中进行通信,这种方式速度快,但是隐蔽性比较弱,很容易被探测到,但如果客户端指定了信任的DNS解析服务器,那么将会被白名单限制在外。

2.)域名型DNS隧道(中继):

通过DNS迭代查询实现的中继隧道,比较隐蔽,但同时因为数据包到达目标DNS Server前需要经过多个节点,所以速度上较直连慢很多。中继过程中的一个关键点是对DNS缓存机制的规避,因为如果解析的域名在Local DNS 中已经有缓存,那么Local DNS 就不会继续发送数据包,所以在构造请求中,每次查询的域名需要不同或者是已过期的。

DNS隧道建立的过程:

Step 1:受控PC机将数据封装进DNS数据包里,像局域网内部的本地域名服务器请求查询aaa.com
Step 2:本地域名服务器透过防火墙向根域名服务器发送查询请求
Step 3:经过大量重定向,查询请求最终要aaa.com的权威域名服务器
Step 4:aaa.com权威域名服务器是在攻击者的控制下,解析发送过来的DNS数据包并发送回应包
Step 5:DNS回应包穿透防火墙
Step 6:DNS回应包进入内网
Step 7:本地域名服务器将回应包返回给受控PC机
Step 8:受控PC机解析DNS回应包里的数据,得到新的指令

DNS Beacon原理:

利用DNS请求应答机制作为攻击渗透的命令控制通道,把C&C服务器指令封装到DNS相应报文中,以此控制被控端主机。

发送端将隐蔽数据信息切分并且编码后封装到DNS报文域名中进行传输,每一级域名长度为63,域名总长度不超过253,接收端收到DNS报文后提取域名中的隐蔽信息字段进行解码重组还原得到IP报文。主要的工具有DNSCat,Iodine等

0x04 DNS Beacon上线:


首先配置域名的记录。将自己的域名www.hacker.com解析到VPS服务器地址。然后创建NS记录,将ns1.hacker.com指向www.hacker.com

然后使用ping命令配合tcpdump观察一下是否有流量经过:

tcpdump -n -i eth0 udp dst port 53

CS开启DNS Beacon监听:

生成DNS木马,只要木马在目标主机执行成功,我们的CobaltStrike就能接收到反弹的shell。但是默认情况下,主机信息是黑色的,我们需要执行以下命令,让目标主机信息显示出来:

checkin
mode dns-txt # 使用dns的txt记录方式进行通信。

0x05 检查与防范:


  • DNS会话中数据包的总数较多:在整个木马的生命周期里会向CC服务器发送心跳包,传输信息,资源文件等行为,CC服务器也会发送控制指令。在一定的单位时间内,观察TXT、PTR等交互记录的数据包是否存在DNS隧道攻击
  • 隧道消息类型: 在正常的DNS流量中。A记录类型的流量占20%-30%,CNAME记录为38%-48%,AAAA记录占25%,NS记录只有5%,TXT记录只有1%-2%。然而为了获取更高的带宽,一部分的DNS隐蔽信道工具如Iodine。在默认配置下会使用TXT或NULL等不常用的记录类型。
  • 检测DNS数据包有效载荷部分是否加密
  • 通过防火墙设置DNS白名单策略来限制DNS隧道攻击
  • 域名固定部分不变:在DNS隧道的报文中,我们可以看到 变化的都是子域名

参考如下:


『DNS隧道工具之渗透神器』— cobalt strike
DNS 隧道通信特征与检测
墨云 I 技术课堂-DNS隧道攻击与防御
工具的使用 | CobaltStrike中DNS Beacon的使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 前言 关于DNS隧道的一些简单研究和利用。 DNS协议基础 域名系统(服务)协议(DNS)是一种分布式网络,主要用...
    Tide_诺言阅读 2,993评论 0 8
  • 0. 前言 在打进内网之后,我们要判断此时的流量是否出的去、进的来。在一些真实的网络环境中,网络中的主机彼此进行通...
    放羊的孩子阅读 1,699评论 0 0
  • A记录就是把一个域名解析到一个IP地址(Address,特制数字IP地址),而CNAME记录就是把域名解析到另外一...
    TimLi_51bb阅读 1,876评论 0 0
  • 0x00 起因 前几天的全国高校网络信息安全管理运维挑战赛的DNS101,从上午查资料到结束,虽然最终做出来了,但...
    Fish_o0O阅读 1,605评论 1 10
  • DNS(Domain Name System),首先我们学习需要一本大学课本《计算机网络》还有阮一峰老师的博客打开...
    灯不梨喵阅读 398评论 0 0