深入理解实践场景下的DNS隧道通信

写在前面的话近期 , 我们对域名系统DNS隧道技术在野的使用情况和使用方式进行了深入分析 。攻击者可以使用DNS隧道技术来绕过组织网络环境中的各种安全策略,因为大多数组织对DNS流量所实施的管理策略相对宽松 。之前的研究也表明,SUNBURSTOilRig之类的恶意软件活动正是利用DNS隧道技术实现了远程命令和控制(C2) 。
但是,攻击者具体在野是如何利用DNS隧道技术的,很多细节我们还不得而知 。比如说 , 他们只是为了实现C2才使用DNS隧道技术的吗?他们是如何实现和托管这些技术的?我们是否可以通过捕捉和监控DNS隧道流量来监控恶意活动?
在这篇文章中 , 我们将对攻击者在野利用DNS隧道通信技术的多个方面进行详细分析和介绍 。
DNS隧道基础DNS隧道是什么DNS隧道是一种在DNS查询和响应中对非DNS程序和协议的数据进行编码的技术,这将允许各种类型的通信流量可以通过DNS协议来进行转发,其中包括文件传输、C2和Web流量等 。
为什么要执行DNS隧道DNS通常使用UDP端口53,该端口通常在客户端、系统、服务器和防火墙上都是打开的,以支持传输DNS查询 。而DNS则是互联网的基本组成部分,它为许多应用程序提供服务 , 从网络浏览和电子邮件服务,到主机自动发现、负载均衡、安全审查和监控服务等,都需要使用到DNS 。
【深入理解实践场景下的DNS隧道通信】由于其关键性,大多数组织对DNS流量实施的安全管理策略都相对宽松,这也导致很多攻击者选择利用DNS协议来对C2通信流量进行隧道传输并检索恶意软件的Payload 。
很多恶意软件攻击活动,比如说SUNBURST、OilRig、xHunt和DarkHydrus都采用了DNS隧道技术 。DNS流量的允许策略允许攻击者访问互联网,而大量的良性DNS流量成为攻击者隐藏足迹的天然伪装 。
如何执行DNS隧道技术执行DNS隧道需要两个主要组件:客户端和服务器 。客户端将DNS数据包发送到互联网 , 通过DNS查询对内容进行编码,并从DNS响应中解码内容 。服务器接收来自递归解析器的DNS查询,解码来自DNS查询的内容,并将内容编码为DNS响应 。
下图为DNS隧道的执行流程:

深入理解实践场景下的DNS隧道通信

文章插图
在上图中,客户端首先会将敏感数据值编码为子域$secret,并将其以DNS查询请求的形式发送给$secret.badsite[.]com 。接下来,解析程序迭代查询不同域级别的名称服务器 , 直到得到有效响应 。同样的,服务器组件(域名服务器)也可以将恶意Payload编码为子域$payload,并向$secret.badsite[.]com发送DNS响应(CNAME $payload.bs[.]com) 。
我们通常会使用编码算法对数据进行编码和分段,而不是发送原始数据 。实际上,任何人都可以想出一种算法来实现数据的碎片化 。
而且也有很多现成的开源DNS隧道工具,例如iodine、DNSStager、dnscat2、sliver和Cobalt Strike等 。这些工具支持将通用消息编码为DNS查询的子域和各种类型的DNS响应,如A(IPv4地址)、AAAA(IPv6地址)、TXT、CNAME和MX 。
将DNS隧道技术应用到C2C2是DNS隧道技术最常见的应用场景,同一个活动可以共享一些特性,例如将用于通信的域名服务器作为C2使用,或使用常见的隧道工具来实现编码解码等 。
第一个例子针对的是金融领域某个组织的恶意活动,我们观察到了22个隧道域名跟同一目标用户之间的通信 。
这些域名共享了7个域名服务器IP,并使用了相同的底层编码工具,攻击者甚至还申请了看似相同的安全/云供应商域名以尝试逃避检测 。
这些域名包括:
panos[.]ltd
ciscocloud[.]space
ubrella[.]online
msft[.]center
mscd[.]store
awsl[.]site
我们在下表中列出了这些域及其示例查询、域名服务器域和域名服务器IP:
域名
查询样例
域名服务器
域名服务器IP
panos[.]ltd
10.eff89fcf44a13186ad3765f35860ce19c722c4bcda6bbbae6b7bab6025b36d0.d036b5a3fd8b67e55ee35feff7d014fdb8d32afe93d5d6f05f1dda3a096e8fa.2e10d53e935549b3a081982724c3e6f806.oak.panos[.]ltd
bur.panos[.]ltd
34.92.43[.]140
ciscocloud[.]space
10.a6674ae5d37cab7263074adef14925ef28698896b8491276097a470beca325a.669f12d4b31e9a6707ce2ee5b595cb723f40ea6d8e5f406b8fba874c8bec632.3299de58f43c3e4be80a7d7db2a2ed5aee9e13bac9cb.habit.ciscocloud[.]space


推荐阅读