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

网络 通信技术
现在,越来越多的网络团伙会将DNS隧道通信技术应用到各种各样的地方,包括C2服务器和V*N服务等等。因此,作为安全防御端人员来说,了解DNS隧道技术的在野利用情况就非常重要了,只有了解了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协议来对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,并使用了相同的底层编码工具,攻击者甚至还申请了看似相同的安全/云供应商域名以尝试逃避检测。

这些域名包括:

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

bram.ciscocloud[.]space

34.92.43[.]140

ubrella[.]online

8.d4fee8aa63e4ee6435452f86e84464168e96e314eb1a19c45e0e76f3ca71b2a.e9476062765ba0aeaeea97333805f09470ff3bd103e3ce8bd3ffefa3dfea90f.369cd352a204e9662db180407f1d1b8fa87be97c81d1.feign.ubrella[.]online

rumor.ubrella[.]online

34.92.43[.]140

mscd[.]store

4.a6gpmbnqbjewgwnqnlivwhleux4vnnyiuduyqgjkyn9jcihsttpdbdenf7lx8jx.jqhdulrejthsyipzvoleyvhv5s99nydtj5um8bzdmdms9gwdqnq46yis5hvbryo.dernuvjw7a6p6ndq4c8lwomsl7zq5lncgsutndxfpaufefhr7xxeuhfpk8hs.sny7htmpdpqdcumtgrmeptytbe9p78skry64.17328.fish.mscd[.]store

rug.mscd[.]store

35.194.255[.]111

awsl[.]site

1.758fcd0ac2301084ef82efb047050ff5e7d45b4cd636b46e4292b67acac5ab0.a1644dfde400b8d41e7b6ec37338c45d34a8e9ed81173e8dffdf57ebb3c9e30.9fc12877d608dfca610d50a121acbd30b2450391c13a.mud.awsl[.]site

lkas.awsl[.]site

35.194.255[.]111

msft[.]center

10.c5f310abb43603a3af324ee92bea16c8132ec2909fbca8d1036fe409d33af9b.c8c30e936bffb9f93bcba2c27682dcca1ab79aced6d1cf015a11d56a9c2f9f5.c49d8757a19b693d78d1772977cbf164e2748b57bb9f.ud.msft[.]center

08e099da.msft[.]center

34.81.65[.]4

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

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

域名

查询样例

域名服务器

域名服务器IP

cloud-enrollment[.]com

api.12abc2cb5.446f35fa.dns.cloud-enrollment[.]com

ns1.cloud-enrollment[.]com

3.238.113[.]212

identity-mgmt[.]com

intact.md.180.02d8f18d2.7e8986be.int.identity-mgmt[.]com

ns1.cloud-enrollment[.]com

3.238.113[.]212

internalsupport[.]info

icr.0325e18d8.16ae9fb2.pl.internalsupport[.]info

dn.internalsupport[.]info

3.238.244[.]129

总结

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

入侵威胁指标IoC

域名

panos[.]ltd

ciscocloud[.]space

ubrella[.]online

mscd[.]store

awsl[.]site

msft[.]center

cloud-enrollment[.]com

identity-mgmt[.]com

internalsupport[.]info

claudfront[.]net

allowlisted[.]net

hsdps[.]cc

rcsmf100[.]net

hammercdntech[.]com

IP地址

34.92.43[.]140

35.194.255[.]111

34.81.65[.]4

3.238.113[.]212

3.238.244[.]129

5.252.176[.]63

83.166.240[.]52

5.252.176[.]22

194.31.55[.]85

65.20.73[.]176

其他参考资料

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/

本文作者:FreddyLu666, 转载请注明来自FreeBuf.COM

责任编辑:武晓燕 来源: ​​​FreeBuf.COM​
相关推荐

2019-08-23 12:49:18

USB通信协议

2017-01-12 19:34:58

2017-05-04 16:35:45

2016-11-07 21:59:52

threadpython

2024-03-28 09:36:29

2017-05-04 15:36:54

Openstack Q实现实践

2016-12-08 15:36:59

HashMap数据结构hash函数

2010-06-01 15:25:27

JavaCLASSPATH

2020-07-21 08:26:08

SpringSecurity过滤器

2012-11-22 10:11:16

LispLisp教程

2017-01-10 08:48:21

2017-08-15 13:05:58

Serverless架构开发运维

2020-09-23 10:00:26

Redis数据库命令

2024-02-21 21:14:20

编程语言开发Golang

2019-06-25 10:32:19

UDP编程通信

2021-07-26 07:47:36

数据库

2019-10-22 08:11:43

Socket网络通信网络协议

2013-09-22 14:57:19

AtWood

2023-10-19 11:12:15

Netty代码

2009-09-25 09:14:35

Hibernate日志
点赞
收藏

51CTO技术栈公众号