DNS隧道:隐蔽而高效的C2系统技术解析

本文深入探讨DNS隧道技术如何被用于命令与控制(C2)操作和数据渗透,分析常见工具如Cobalt Strike和DNSCat2的工作原理,并提供检测与防御策略,帮助企业和安全专业人员应对这一隐蔽威胁。

DNS: 一个微小但高效的C2系统

通常被称为“互联网电话簿”的DNS将域名转换为IP地址,使我们能够浏览网络。其在互联网通信中的基本作用意味着DNS流量通常会以最少的检查通过企业防火墙。

DNS隧道涉及在DNS查询和响应中编码数据,在客户端和服务器之间创建隐蔽的通信通道。网络犯罪分子利用这种方法进行命令与控制(C2)操作和数据渗透等目的,使其成为企业和网络安全专业人员共同关注的问题。理解和缓解DNS隧道不再是可选的——对于保护当今企业免受不断演变的网络威胁而言,这是必要的。

在这篇博客中,我们将探讨DNS查询的基础知识,说明它们通常如何运作,以及这一基本过程如何被利用于C2操作和数据渗透。我们还将深入探讨DNS隧道的各种家族,揭示攻击者用来绕过传统防御的技术。

要创建DNS C2基础设施,攻击者必须控制域名的权威名称服务器。然后,受害者系统上的恶意软件可以定期查找该域名,根据响应,恶意软件可以执行不同的操作,例如执行目录列表。该目录列表的信息随后可以编码为子域查询。对这些查询的响应可以是简单的接收确认或执行附加操作的命令。由于恶意软件使用DNS系统,恶意软件客户端和C2服务器之间没有直接流量。相反,通信通过受害者系统的递归名称服务器发送。递归名称服务器需要能够与互联网上的权威名称服务器通信,因此通常具有宽松的规则。图1显示了递归DNS过程,图2显示了DNS隧道的包捕获,表1显示了DNS隧道会话的理论示例。

有几种工具可以执行DNS隧道。一些最常见的是Cobalt Strike、DNSCat、Iodine、Pupy和DNS Exfiltrator。

图1. DNS操作的典型过程

如图1所示,当客户端请求域的IP地址时,请求被发送到DNS递归解析器。该解析器启动一系列查询,从顶级域(TLD)服务器开始,该服务器提供二级域(SLD)的地址。该过程递归继续,直到解析器到达完全限定域名(FQDN)的权威名称服务器。权威解析器响应请求的信息,可能是A记录(IPv4地址)、AAAA记录(IPv6地址)、TXT记录(自由格式文本)、CNAME记录(规范域名)或其他类型的记录。递归解析器然后将此响应返回给客户端,同时缓存查询和响应指定的生存时间(TTL),确保未来请求的更快响应。

类型 DNS字符串 解码内容
请求 757365726e616d653a20616e64792c2.070617373776f72643a2031323378797a6162632e.example.com 用户名: andy, 密码: 123xyzabc.
响应 ON2WI3ZAOJWSAL3FORRS643IMFSG65YK Sudo rm /etc/shadow (删除密码文件)

表1. 使用TXT记录的编码DNS隧道查询/响应示例

诸如757365726e616d653a20616e64792c2.070617373776f72643a2031323378797a6162632e.example[.]com的子域可以被解码以揭示敏感信息,如“用户名: andy, 密码: 123xyzabc.”。服务器的响应可能包括像“ON2WI3ZAOJWSAL3FORRS643IMFSG65YK”的TXT记录,当解码时,可以指示客户端执行操作,例如sudo rm /etc/shadow。类似地,攻击者可以使用DNS编码和渗透更大的数据,如文件,以较小的块,并通过响应上传恶意软件。

需要注意的是,C2通信不必仅依赖TXT响应。任何DNS记录类型都可以使用,只要有一致的编码。常见的用于DNS隧道的记录类型是A、AAAA、TXT、CNAME和MX。有关DNS记录类型的完整列表,请参见DNS记录类型列表(维基百科)

Infoblox的Threat Insight机器学习算法在隧道激活的前几分钟内检测并阻止隧道域。通常,这发生在握手完成之前,并且肯定在恶意C2或渗透之前。虽然Threat Insight在我们的客户网络上提供实时DNS隧道检测,但Infoblox Threat Intel还有额外的批处理算法来检测DNS隧道。这里我们专注于我们的Threat Insight检测器。

攻击者可能选择开发自己的隧道软件或使用常见的开源工具。我们将这些开源工具分组为DNS隧道家族。在过去两年中,我们调查了哪些家族在我们的客户流量中最普遍。表2概述了其中一些家族,许多已在真实世界的攻击中被利用。

图2: Wireshark中显示的文件渗透包捕获

家族 示例查询 唯一域名 (%)
Cobalt Strike post.a34.cde343de.a1b2c3d4.domain[.]com 26%
DNSCat2 67b1017285c8d258ff8d02000cf8da0d6e.domain[.]com 13%
DNS Exfiltrator 1.yqa5rey3ncqdozqvves3fvdutle7kkcnxntxzxg26s7yrfsdwncleip6irihksb.pbkyozoc5q2ne6ey5cgedjmteocypbv7hrpk2ge3mzauakbhg5kvjbsvvasov33.o25jv4gfntbulxvidykra6gua6q5kte2sfqiq7tf7jbdpexbaonxwx6lpak7eye.wmrp655fmvmonexlccsxclbd7ynu7htzqjpjf.domain[.]com 15%
Sliver Lpgekzzgoeqhrhaugtulrdbtbpgdzqpzmv8ieq26hb6tq8rdscexk2atbhbizpx.ngpc4isa77znjl3afcljkswcru2tjrue8uippsywo5wciwx3iepklapemzebknv.bl37n83glutyxfgjxlvplcnyn.domain[.]com 12%
Weasel feiq-zb3xgodutf25v7vtcsk5dxh7awwww.9c.21f9.domain[.]com 2%
Pupy* Y12rmhy9.chu5zj1hwsylrrq46fxf442yf62a9999.bla3rzp4nnwrfmnn2a3m3xa9[.]domain.com 7% *
Iodine 1i5a5xl2ojglpzzggwqlqmfea4100yk2zi3nal14sy3uvbadxu2uugmnbrmmat.gprzfx451baplinw3rx11og003leilo3pq5mz1uojs34xxc3swo2d1cwh.ujxb4cpux1w21qzbdkwmvswr5n2fxjb2kvwfqtdnfnidqnkrgjfhzcero.g45tgfvbfmzgu55cckomjgepefyqtk2acpkekqdgzj00q5dk4nzt4o0[.]domain.com 24%

表2. 客户流量中常见的DNS隧道家族,具有典型查询模式及其在开源安全工具中的检测率

*Pupy在我们的客户流量中被看到,但间接通过互联网扫描器。参见我们在Decoy Dog上的工作。

Cobalt Strike是一种流行的渗透测试工具,具有DNS C2模块。它通常被红队和威胁行为者使用。它使用十六进制编码的查询,带有可选和可自定义的前缀词,如“post”、“api”或“dx”。它使用A记录进行信标和C2,使用TXT记录进行渗透。

DNSCat2是一种轻量级工具,设计用于创建加密的DNS隧道,通常被渗透测试员使用,偶尔被攻击者滥用用于隐蔽数据渗透。它包含在METASPLOIT中,一个开源渗透测试工具。DNSCat2可以使用各种查询类型操作,包括A、TXT、CNAME和MX记录。

DNS Exfiltrator是一种概念验证工具,将数据编码到DNS查询中进行渗透,展示了DNS滥用在真实世界场景中的风险。它使用TXT记录,仅提供单向通信,并通过命令行启动。虽然我们曾看到这用于测试我们的DNS隧道检测,但我们没有看到威胁行为者使用它,并认为其实用性有限,因为其单向机制。

Sliver是一个跨平台C2框架,具有DNS隧道能力,经常用于对手模拟和恶意活动。

Weasel是一种较少记录的DNS隧道工具,由Facebook的红队开发,支持隐蔽数据渗透和C2,通常用于小众红队参与。它使用A和AAAA记录进行通信。

Pupy是一种开源、多平台RAT,具有DNS隧道支持,历史上被用于针对政府和公司实体的间谍活动。它使用A记录进行通信。

Iodine是一种众所周知的通过DNS隧道传输IPv4流量的工具,用于渗透测试,有时在攻击中被滥用,例如由国家行为者用于C2目的。Iodine使用A、TXT、CNAME和MX记录进行通信。

在这项研究中,我们做了一个有用的观察,即所有这些家族在使用的查询和响应中都有高度独特的签名。我们将这些签名纳入我们的Threat Defense递归DNS解析器,这使我们能够将Threat Insight的机器学习算法检测时间从一到两分钟提高到不到五秒。这将潜在查询数量减少到少于10个,从而消除了即使是少量的渗透。

除了上述家族外,我们还发现了几个其他隧道,包括自动化和自定义渗透测试工具、反病毒、反垃圾邮件,以及安全供应商的DNS隧道演示工具。

反病毒和反垃圾邮件工具使用DNS作为机制来确定域或文件哈希是否可能恶意。查询可能采用形式:“..”或“..”,响应为NXDOMAIN如果域或文件哈希不在已知恶意软件或垃圾邮件列表中,或“127.0.0.X”如果在这样的列表中。有人可能认为这是一个实际的DNS隧道。在使用行为和内容元数据特征检测DNS隧道中,我们展示了可以训练这样的域并恢复隧道,如Cobalt Strike和DNSCat2。Infoblox维护反病毒和反垃圾邮件工具列表,以避免阻止一般有用的工具。我们还使用它们来确保我们基于机器学习的隧道算法足够健壮,能够检测训练集之外的隧道。

出现了几种自动化渗透测试工具,如Cymulate和AttackIQ。我们经常看到这些工具的域在我们的客户网络上被检测到。我们特别不使用它们进行训练,将它们添加到阻止列表或签名。我们完全依赖我们的机器学习算法来检测这些域。

许多客户选择编写自己的DNS隧道工具来测试我们的软件。大多数类似于DNS Exfiltrator,因为它们是单向渗透通道。有些人开始使用不成功的响应,如NXDomain和SERVFAIL。这需要仔细平衡,因为一个人也可以对合法域执行类似隧道的查询,从而使解析器阻止所有对合法域的查询。为了解决这个问题,我们确保对域的名称服务器进行积极控制,否则将检测从DNS隧道降级为DNS隧道概念,我们建议记录此类事件而不是阻止。

我们看到一些客户尝试创建双向DNS隧道测试;一个有趣的发现包括使用表3中的查询和响应的域的检测事件。

查询类型 查询前缀 查询答案
16 cgluzzey.t1. “hello”
16 cgluzzey.t1. “whoami”
16 cgluzzey.t1. “ls -lsa”
16 cgluzzey.t1. “cat /etc/shadow”
1 etrvrq.ciwsldovcnvul3n5c3rlbwq6l3vzci9zymiul25v.t1. 12.12.12.3
1 jxfszd.mgpetlnfegzpbhryyxrvcgpkbnnwb3quymlucmru.t1. 12.12.12.3
16 cgluzzey.t1. “aGVsbG8”

表3. 自定义DNS隧道的示例查询

我们对响应为“whoami”的域执行了查询,并发现了另外两个域,这些域之前也被检测为隧道。总共,唯一答案包括:“hostname”、“ls”、“aWQ”、“pwd”、“ls -lsa”、“oa”、“whoami”、“test”、“hello”、“cat /etc/passwd”、“uname -a”、“whoamid”、“d”、“ia”、“cHdk”、“ls -lsa /”、“whoama”、“aGVsbG8”、“whoamd”、“bHM”、“cat test.txt”、“cat /etc/shadow”、“oda”、“ls”、“exit”、“ao”、“ls /”、“cat test.py”、“id”、“wasdasd”。后来,我们看到了带有CNAME请求和Base64编码的域。

最后,我们有时看到我们的客户使用我们竞争对手的DNS隧道工具。2024年9月17日,我们在我们的DNS渗透检测系统Threat Insight中观察到一个域paioaltonetworks[.]tech。起初,我们认为这可能是一个误报或应用程序中URL输入错误的结果。然而,在检查中,查询看起来像: Mf9q7qgqmy003024muqg4zlxebwgk5tfnrzsa33g.paioaltonetworks[.]tech Mf9q7qgqmy006024or3w64tlebugk4tpmvzs4icp.paioaltonetworks[.]tech Mf9q7qgqmy001024ivwxa33xmvzca6lpovzcasku.paioaltonetworks[.]tech 此外,我们注意到其名称服务器是ns1.paioaltonetworks[.]tech和ns2.paioaltonetworks[.]tech,并且它于2024年1月在OVH注册。

在初始查询的一分钟内,该域被阻止。然后我们在Domain Tools中查看了该域。这里我们注意到该域的风险评分较低,为23 out of 100。对于用于DNS渗透的域来说,这并不特别奇怪,除非有先前关于该域的工作发表。

Domain Tools允许我们使用一个强大的工具:注册透视引擎,深入调查相关域。使用透视引擎,我们观察到注册人组织是Efficient IP,并且有九个其他域与注册人相关联,包括rockitwith[.]me、paioaltonetworks[.]tech、nicecricket[.]online、framatech[.]online、melenchon[.]online、redfusion[.]xyz、efficientip[.]io、dga[.]how、efficientip[.]net、efficientip[.]org、infobiox[.]com、efficientip[.]it、efficientip[.]at、efficientip[.]com和dns-blast[.]com。所有域都在Ghandi或OVH注册。

网站https://www.efficientip.com广告Efficient IP,提供类似于Infoblox的DNS、DHCP和IP管理解决方案。

我们观察到域rockitwith[.]me、paioaltonetworks[.]tech和nicecricket[.]online都被我们的流式检测算法在Threat Insight中检测为DNS渗透,并被我们的批处理Threat Intel算法检测为可疑/潜在渗透。

域melenchon[.]online、dga[.]how、framatech[.]online、redfusion[.]xyz和dns-blast[.]com在Infoblox DNS流量中未看到。许多这些域的名称服务器形式为“ns1.exf..”。这种域结构类似于hack53[.]shop,该域在2022年被检测为DNS渗透。

结合DNS渗透和相似域是恶意行为者(如Side Winder)和渗透测试员常用的策略,我们在2024年注意到这种组合的增加。Infoblox在检测这两种行为及更多方面采用最先进的技术,引领行业,通过Infoblox Threat Defense™。

由于paioaltonetworks[.]tech和infobiox[.]com的相似性,我们确实将这些添加到我们的可疑源中。我们继续依赖我们基于机器学习的检测来处理其他Efficient IP域。

  1. 什么是DNS隧道?, Infoblox。
  2. 使用行为和内容元数据特征检测DNS隧道, Johnson, Darin, Software Engineering Institute, Carnegie Mellon University, 2023年2月6日。
  3. DNS早期检测 – Cobalt Strike DNS C2, Zuckerman, Michael, Infoblox, 2024年3月22日。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计