首页 > 其他分享 >【待做】【网络协议系列+DNS安全】利用DNS隧道进行追踪和扫描

【待做】【网络协议系列+DNS安全】利用DNS隧道进行追踪和扫描

时间:2024-08-29 16:53:16浏览次数:9  
标签:隧道 网络协议 域名 DNS 攻击者 服务器 com 追踪

一、什么是DNS隧道

二、DNS隧道攻击典型步骤

三、攻击者如何利用DNS隧道

四、用于追踪的DNS隧道案例

五、缓解措施

原创 二进制空间安全

一、什么是DNS隧道

DNS隧道是一种利用DNS协议进行数据传输的技术。在网络中, DNS通常用于将域名解析为对应的IP地址, 但是它也可以被利用来传输数据, 而不仅仅是域名和IP地址之间的映射关系。

实现DNS隧道的基本思想是将数据在DNS查询和响应的过程中进行隐藏传输。具体来说, 就是可以通过在DNS请求和响应中嵌入数据,并利用域名解析请求和响应的特性来传输数据。通常情况下, DNS隧道技术可以被用来绕过网络防火墙或其他网络安全设备, 以便在受限制的网络环境下进行数据传输。

实现DNS隧道的技术主要包含以下四类:

【DNS数据包重组和拆分】: 该技术方法是将数据分拆成较小的部分, 然后将其嵌入到DNS请求或响应中。接收端负责将这些部分重新组合成完整的数据。

【域名前缀/后缀编码】:该技术方法是通过在域名的前缀或后缀中将数据编码后进行传输。例如: 将数据编码到子域名中,并将子域名解析请求发送到DNS服务器。

【DNS报文字段利用】:该技术方法是利用DNS报文中的一些字段来隐藏数据。例如: 将数据存储在DNS报文的TTL(Time To Live)字段或校验和字段中。

【利用无效域名和IP地址】:该技术方法是使用看似无效的域名或IP地址来进行数据传输, 利用这些无效地址的解析请求和响应来隐藏数据。

二、DNS隧道攻击典型步骤

攻击者利用DNS隧道进行攻击的整体流程如下图:

利用DNS隧道进行攻击的典型步骤如下:

攻击者首先要注册一个恶意域名:malicious.site, 接着建立一个使用DNS隧道作为通信渠道的C2服务器, 攻击者可以利用多种攻击型工具来丰富C2通道的功能, 例如:Cobalt Strike。

(Cobalt Strike是一款专为红队行动和渗透测试设计的商业化渗透测试工具,由Raphael Mudge开发。它被广泛用于模拟真实世界的网络攻击,用于评估网络防御的强度和安全性。)

攻击者可以创建、开发或获取与服务器通信的恶意软件作为客户端, 并将该恶意软件发送到一个受害的客户端机器。

受害机器通常位于防火墙之后, 无法直接与攻击者服务器通信。然而, 恶意软件可以将数据编码到malicious.site的子域中,并向DNS解析器发出DNS查询。

由于隧道完全限定的域名(FQDN)的独特性, DNS解析器无法从其缓存中找到相应的记录。因此, 解析器将对根域名服务器、顶级域(TLD)名称服务器和攻击者控制的该域的权威名称服务器进行递归DNS查询。

(完全限定域名(Fully Qualified Domain Name,FQDN)是指包含了主机名(Hostname)以及其所在的域名的完整域名标识。它提供了对于特定主机在 DNS 层次结构中的准确定位。FQDN 通常由主机名、域名和根域(Root Domain)组成,形式为:hostname.domain.tld.)

攻击者可以从DNS流量中获取解码后的数据, 并操控DNS响应, 实现将恶意数据渗透到客户端。

三、攻击者如何利用DNS隧道

将DNS隧道与C2服务器进行结合是黑客常用的方式, 该方法隐蔽且方便定制化。

(C2服务器指的是Command and Control服务器,也称为C&C服务器。它是黑客或者恶意软件(如僵尸网络、恶意软件等)的一个关键组件,用于控制被感染或被攻击的计算机或设备。C2服务器通常会被设置在隐秘的位置,例如使用匿名的托管服务、非法的服务器设立地点或者利用合法的网络服务进行隐藏。黑客或者攻击者通过各种手段与受感染设备建立连接,并且通过加密或其他技术手段来隐藏其真实的身份和位置。)

攻击者利用的DNS类型主要包括: IPv4(A)、IPv6(AAAA)、邮件交换(MX)、CNAME名称、文本(TXT)记录。

有部分的VPN厂商也会出于合法目的使用DNS隧道, 例如: 通过DNS隧道绕过防火墙以避免因特网审查或网络服务费用。

除了C2和VPN用途之外, 攻击者还可以利用DNS隧道来进行追踪和扫描。

【用于追踪的DNS隧道】:攻击者可以通过将其身份信息编码到子域负载中, 并向受害者提供恶意域来跟踪受害者在垃圾邮件、钓鱼或广告内容方面的活动。

【用于扫描的DNS隧道】:攻击者可以通过在隧道负载中编码IP地址和时间戳, 并伪装源IP地址来扫描网络基础设施, 之后, 攻击者能够发现开放的解析器, 以便利用解析器的漏洞执行DNS攻击, 这可能会导致恶意重定向或拒绝服务。

四、用于追踪的DNS隧道案例

在传统的C2通信中跟踪受害者行为时, 黑客的恶意软件会将用户行为数据嵌入到恶意URL中, 并通过网络流量传输到C2服务器。在DNS隧道中, 攻击者通过DNS流量中的子域来实现与之相同的效果。

在这种DNS隧道的应用中, 攻击者的恶意软件将有关特定用户及其行为的信息嵌入到DNS查询的唯一子域中。这个子域是隧道负载, 完全限定域名(FQDN)的DNS查询使用了攻击者控制的域。

攻击者控制的域的权威名称服务器接收到DNS查询, 这个由攻击者控制的名称服务器存储了该域的所有DNS查询, 这些DNS查询的唯一子域和时间戳提供了受害者活动的日志记录。攻击者甚至可以利用它来跟踪活动中的多个受害者。

在下面的案例中, 黑客使用了75个IP地址作为域名服务器, 解析了658个攻击者控制的域名, 针对了731个潜在受害者。每个域名只使用一个域名服务器IP地址, 而一个域名服务器IP地址最多可以为123个域名提供服务。这些域名使用相同的DNS配置和相同的子域编码方法。黑客在.com或.info顶级域名下注册了所有域名, 并通过组合两个或三个根单词来设置域名, 这是攻击者用来规避域名生成算法(DGA)检测的一种方法。

以下是“TrkCdn”活动中域名的列表, 该活动使用DNS隧道技术来追踪受害者与其电子邮件内容的交互,包括: FQDN、域名服务器、域名服务器IP地址和注册日期,如下表:

上表仅仅列出了隧道域名使用的与跟踪相关的DNS配置。攻击者将根域名、域名服务器和cdn.simitor.com设置为相同的IP地址:193.9.114.43, 这种行为方式是隧道域名的常见配置指标, 因为攻击者需要为自己建立一个域名服务器, 同时又尽量降低攻击成本,因此, 他们通常只使用一个IP地址来进行域名托管和作为域名服务器。

所有*.trk.simitor.com都通过通配符DNS记录重定向到cdn.simitor.com, 设置方法如下:

simitor.com A 193.9.114.43
ns1.simitor.com A 193.9.114.43
ns2.simitor.com A 193.9.114.43
cdn.simitor.com A 193.9.114.43
*.trk.simitor.com CNAME cdn.simitor.com

在上面的表格中, FQDN内容最前面的Md5哈希值代表DNS流量中的电子邮件地址, 这些Md5值是隧道负载的DNS查询的子域, 例如:电子邮件地址: [email protected]的MD5值为:4e09ef9806fb9af448a5efcd60395815, 那么, 隧道负载的DNS查询的FQDN内容将是:4e09ef9806fb9af448a5efcd60395815.trk.simitor.com。

对这些FQDN的DNS查询可以作为威胁行为者发送的电子邮件的跟踪机制, 例如: 如果受害者打开了这些电子邮件中的其中一封, 嵌入的内容可能会自动生成DNS查询, 或者受害者可能会点击电子邮件中的链接, 无论哪种情况, 感染的主机生成了FQDN的DNS查询后, DNS解析器将联系FQDN的权威名称服务器的IP地址, 由于其通配符配置, 受害者的DNS解析器将获得以下结果:

<br />
4e09ef9806fb9af448a5efcd60395815.trk.simitor.com. 3600 IN CNAME cdn.simitor.com.</p>
<p>cdn.simitor.com. 555 IN A 193.9.114.43
4e09ef9806fb9af448a5efcd60395815.trk.simitor.com. 3600 IN CNAME cdn.simitor.com.

cdn.simitor.com. 555 IN A 193.9.114.43

因此,尽管针对不同目标的完全限定域名(FQDNs)各不相同,它们都被转发到由cdn.simitor.com使用的相同IP地址。然后,这个权威名称服务器返回一个DNS结果,指向一个由攻击者控制的服务器,提供由攻击者控制的内容。这些内容可能包括广告、垃圾邮件或钓鱼内容。

为了跟踪目的,攻击者可以从他们的权威名称服务器查询DNS日志,并将负载与电子邮件地址的哈希值进行比较。这样,攻击者就可以知道特定受害者何时打开了他们的邮件或点击了链接,从而监视活动的表现。

五、缓解措施

可以采取以下措施来减少DNS解析器的攻击面:

(1)控制解析器接受必要查询的服务范围。
(2)及时更新解析器软件版本, 防止N-day漏洞的出现。

标签:隧道,网络协议,域名,DNS,攻击者,服务器,com,追踪
From: https://www.cnblogs.com/o-O-oO/p/18387025

相关文章

  • Java后端微服务架构下的服务链路追踪:Dapper与Pinpoint
    Java后端微服务架构下的服务链路追踪:Dapper与Pinpoint大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务链路追踪是一种关键技术,用于监控和诊断服务间的调用关系和性能问题。Dapper和Pinpoint是两种流行的服务链路追踪系统。服务链......
  • Java后端分布式系统的服务路由:智能DNS与服务网格
    Java后端分布式系统的服务路由:智能DNS与服务网格大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在分布式系统中,服务路由是确保请求高效、稳定地到达目标服务的关键技术。智能DNS和服努网格是两种不同的服务路由实现方式。服务路由概述服务路由负责......
  • 创建一个用于修改本地DNS解析记录的Windows客户端
    在许多场景下,我们可能需要手动修改本地的DNS解析记录,以便将特定的域名解析到指定的IP地址上。例如,在开发和测试环境中,我们可能希望将某些域名指向本地服务器,而不依赖于公共DNS服务。为此,Windows系统中的hosts文件就可以派上用场。然而,手动编辑hosts文件可能会比较麻烦,......
  • Linux基础软件-dns(二)
    作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。Linux进阶部分又分了很多小的部分,我们刚讲完了Linux日常运维。讲的那些东西都算是系统自带的,但是Linux作为一个服务器操作系统,肯定是要安装运行软件......
  • 搭建多协议的串口服务器流程:RS-232、RS-485和TCP/IP、MQTT网络协议(代码示例)
    一、项目概述在物联网(IoT)和自动化控制的快速发展中,串口通信作为一种经典的通信方式,依然发挥着重要作用。本项目旨在构建一个支持多种协议的串口服务器,能够通过串口接收和发送数据,并通过网络协议(如TCP/IP、MQTT等)与其他设备和系统进行交互。项目的目标和用途本项目的目标......
  • 大白话【8】WindowsServer2016搭建DNS服务
    1.DNS服务功能介绍2.DNS服务器搭建2.0准备环境2.1把该DNS服务器设置成静态IP2.2修改主机名(可省略)2.3安装DNS服务DNS服务器名为www;IP为192.168.2.1003.客户机测试在网内可网络连通的客户机如何验证DNS服务器域名解析有效性?3.1可以ping不通,只要看到解析就行。......
  • 【实战经验】在ubuntu系统更新DNS服务
    最近遇到了一个问题,就是在安装的时候没有配置好DNS服务,导致系统安装后无法上网。一、DNS部署介绍说明:在Linux上实现DNS服务配置,可以使用以下步骤:安装DNS服务器软件:在Linux上有多种DNS服务器软件可选择,比如BIND、dnsmasq等。选择其中一种安装,并确保软件已被正确安装。配......
  • k8s中coredns访问连接拒绝问题解决
    问题现象1、节点访问coredns连接拒绝2、内部pod无法正常进行解析问题解决思路检查CoreDNSPod状态是否正常[root@k8s-master01~]#kubectlgetpods-nkube-system-lk8s-app=kube-dnsNAMEREADYSTATUSRESTARTSAGEcoredns-7b8d6fc5......
  • 【网络协议】精讲路由表概念!图解超赞超详细!!!
    亲爱的用户,搜索微信公众号:“风云说通信”,帮忙点点免费的广告,即可免费阅读该文章哦~~关注公众号,博主会定期给您推送更多免费干货喔~~目录前言1.路由表定义  2.路由控制分类3.路由协议的分类4.IP地址与路由控制5.IP数据报的发送和转发6.路由表和转发表区别6.1路由表......
  • 构建Spring Boot应用的微服务服务链路追踪
    构建SpringBoot应用的微服务服务链路追踪大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,服务链路追踪是确保服务调用流程透明化和问题定位的关键技术。SpringBoot结合SpringCloudSleuth和Zipkin等工具,可以轻松实现服务链路追踪。......