网络通信 频道

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

  写在前面的话

  近期,我们对域名系统DNS隧道技术在野的使用情况和使用方式进行了深入分析。攻击者可以使用DNS隧道技术来绕过组织网络环境中的各种安全策略,因为大多数组织对DNS流量所实施的管理策略相对宽松。之前的研究也表明,SUNBURST和OilRig之类的恶意软件活动正是利用DNS隧道技术实现了远程命令和控制(C2)。

  但是,攻击者具体在野是如何利用DNS隧道技术的,很多细节我们还不得而知。比如说,他们只是为了实现C2才使用DNS隧道技术的吗?他们是如何实现和托管这些技术的?我们是否可以通过捕捉和监控DNS隧道流量来监控恶意活动?

  在这篇文章中,我们将对攻击者在野利用DNS隧道通信技术的多个方面进行详细分析和介绍。

  DNS隧道基础

  DNS隧道是什么

  DNS隧道是一种在DNS查询和响应中对非DNS程序和协议的数据进行编码的技术,这将允许各种类型的通信流量可以通过DNS协议来进行转发,其中包括文件传输、C2和Web流量等。

  为什么要执行DNS隧道

  DNS通常使用UDP端口53,该端口通常在客户端、系统、服务器和防火墙上都是打开的,以支持传输DNS查询。而DNS则是互联网的基本组成部分,它为许多应用程序提供服务,从网络浏览和电子邮件服务,到主机自动发现、负载均衡、安全审查和监控服务等,都需要使用到DNS。

  由于其关键性,大多数组织对DNS流量实施的安全管理策略都相对宽松,这也导致很多攻击者选择利用DNS协议来对C2通信流量进行隧道传输并检索恶意软件的Payload。

  很多恶意软件攻击活动,比如说SUNBURST、OilRig、xHunt和DarkHydrus都采用了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隧道技术应用到C2

  C2是DNS隧道技术最常见的应用场景,同一个活动可以共享一些特性,例如将用于通信的域名服务器作为C2使用,或使用常见的隧道工具来实现编码解码等。

  第一个例子针对的是金融领域某个组织的恶意活动,我们观察到了22个隧道域名跟同一目标用户之间的通信。

  这些域名共享了7个域名服务器IP,并使用了相同的底层编码工具,攻击者甚至还申请了看似相同的安全/云供应商域名以尝试逃避检测。

  这些域名包括:

  我们在下表中列出了这些域及其示例查询、域名服务器域和域名服务器IP:

  我们的第二个例子是针对另一个金融行业客户的活动,我们发现三个隧道域名都指向着同一客户,并且使用了相同的底层隧道工具-Cobalt Strike,而Cobalt Strike的代表性特征包括使用常见前缀,例如www、post和api等。

  这三个域名分别为identity-mgmt[.]com、internalsupport[.]info和cloud-enrollment[.]com,下面给出的是对应的查询样例、域名服务器和IP地址:

  总结

  现在,越来越多的网络团伙会将DNS隧道通信技术应用到各种各样的地方,包括C2服务器和V*N服务等等。因此,作为安全防御端人员来说,了解DNS隧道技术的在野利用情况就非常重要了,只有了解了DNS隧道通信的底层工具和相关活动,才能实现细粒度分析,从而做到安全事件的快速响应。

  入侵威胁指标IoC

  域名

  IP地址

      其他参考资料

  https://unit42.paloaltonetworks.com/tag/dns-tunneling/

  https://unit42.paloaltonetworks.com/solarstorm-supply-chain-attack-timeline/

  https://unit42.paloaltonetworks.com/dns-tunneling-how-dns-can-be-abused-by-malicious-actors/

  https://www.bamsoftware.com/software/dnstt/

  https://blogs.infoblox.com/cyber-threat-intelligence/cyber-threat-advisory/dog-hunt-finding-decoy-dog-toolkit-via-anomalous-dns-traffic/

  https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild-overview-of-oilrigs-dns-tunneling/

  https://unit42.paloaltonetworks.com/oilrig-novel-c2-channel-steganography/

  参考来源

  https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild/

0
相关文章