DNS隧道技术原理及其典型应用场景剖析

news2024/12/26 21:34:50

DNS隧道(DNS Tunneling)本质为一种网络通信技术,它利用DNS协议在客户端和服务器之间传输数据,主要用来绕过网络限制进行数据隐蔽传输,但在实际场景中,DNS隧道已经成为黑客忠爱的攻击媒介。

1. 概览

DNS是互联网的关键和基础协议,用于将域名映射到IP地址,所以经常被称为"互联网电话簿"。DNS协议已经成为互联网上使用最广泛且最受信任的协议之一。

在多数网络环境中,网管一般会对HTTP、HTTP等常用协议进行严格的审查和限制,但通常不会对DNS流量进行同样严格的管理,因为正常业务也经常要使用DNS协议,所以防火墙大多对DNS的流量是放行状态。

DNS隧道是众多隧道技术中的一种,它利用DNS的查询和响应,在客户端和域名服务器之间传输数据。主要用于以下应用场景:

  • 网络诊断和测试:IT专业人员使用DNS隧道可解决网络问题,尤其是在其他协议受到限制的环境中,它可以帮助他们分析流量模式并诊断连接问题,而无需直接访问受限网络;
  • 绕过网络限制:企业或校园网络中,通过DNS隧道访问被封锁的网站或服务;
  • 安全数据传输:通过在DNS查询和响应中对数据进行编码,可以确保敏感信息的安全传输,绕过可能针对更常用协议的潜在安全威胁。

虽然DNS隧道可以用于以上合法用途,但它经常被用于恶意目的。DNS隧道在僵尸网络和APT攻击中应用比较广泛,用于C&C服务器(攻击者)和C&C客户端(受害者)之间的隐蔽通信,从而实现远程控制和文件传输等操作,同时可减少被拦截发现的概率。

2. DNS隧道分类

DNS隧道又可细分为直连隧道和中继隧道。

  • 直连隧道:客户端直接和指定的DNS服务器建立连接,然后将需要传输的数据通过DNS协议进行通信。这种方式的优点是具有较高速度,但蔽性弱、易被探测追踪的缺点也很明显。
  • 中继隧道:客户端通过DNS迭代查询而实现的DNS隧道,这种方式非常隐秘,而且可在绝大部分场景下部署成功。但由于数据包到达目标DNS服务器前需要经过多个节点的跳转,所以数据传输速度会比直连方式慢不少。

在实际攻击行为中对隐蔽性要求很高,而速度相对来说没那么重要,所以更多使用的是中继隧道方式。

3. 工作机制

DNS隧道的工作原理其实很简单,在进行DNS查询时如果查询的域名不在DNS服务器本机的缓存中就会查询域名服务器获取结果,如果在互联网上有一台定制的服务器(我们称其为控制服务器),就可以依靠DNS协议进行数据隐蔽传输。

注:从DNS协议本身来看,以上过程的重复也只是一次次地查询某个特定的域名并得到解析结果,但其本质问题是预期的返回结果应该是一个IP地址,而事实上返回的可以是任意字符串,不清楚为何是字符串的可以参阅RFC 1034

为了直观理解,还是手工绘制下DNS隧道实现原理吧!(如下所示)

DNS隧道原理

接下来我们再以攻击者的视角来详细介绍下DNS隧道的工作流程。

前提条件

  • 为了创建隧道,攻击者需要先创建并注册域名,假设注册的域名是malicious.com;
  • 此外,攻击者还需要设置一个权威域名服务器,该服务器可以解码和处理特制的DNS查询和响应(如5byA5aeL5pS75Ye7.malicious.com)。

关键步骤

  1. 编码数据:受感染的客户端将要传输的数据编码(如Base64)为合法的域名格式。由于DNS消息有大小限制(一般不超过253个字符),原始数据会被分为多个小块进行编码传输。
  2. 制作DNS查询:编码后的数据块将作为子域附加到域名中。例如,如果攻击者的域名是malicious.com,则查询可能类似于5byA5aeL5pS75Ye7.malicious.com。这些查询类型通常设计为TXT或CNAME记录。
  3. 发送查询:受感染的客户端将这些精心设计的DNS查询发送到本地域名服务器,本地域名服务器用于将此查询通过迭代方式转发到更高级别的域名服务器,直到可被攻击者控制的权威域名服务器。
  4. 接收和处理查询:攻击者的域名服务器接收到查询请求后,解析其隐藏的数据,然后创建一个DNS响应并通过DNS层次结构发送回客户端。
  5. 解码响应:受感染的客户端接收到响应后解码出隐藏的数据。此过程可以重复,从而允许持续交换信息。

图片来源:https://www.akamai.com/glossary/what-is-dns-tunneling#accordion-76a7acf228-item-2984740af8

4. 为什么DNS会成为对黑客有吸引力的攻击媒介?

来源:A survey of domain name system vulnerabilities and attacks

  • 许多应用程序和服务都依赖于DNS,并且DNS流量受到广泛信任;
  • DNS协议并不是为了安全而设计的,主要目的是快速准确地解析IP地址请求,而非质疑发出请求的用户或设备;
  • 除了解析域名之外,DNS查询还可以在设备、服务器之间传输少量数据。由于多数组织并没有充分分析这些数据包的恶意活动,因此DNS隧道是一种高效的DNS攻击媒介。

5. 黑客用DNS隧道到底想要做哪些事情?

  • 安装恶意软件:攻击者可能会使用DNS隧道在其他系统上安装恶意软件;
  • 收集凭证:一旦掌握了系统的控制权,攻击者就可以使用键盘记录器或其他方法来收集用户凭据,这些凭据可用以发起其他攻击,甚至可将其在暗网上出售;
  • 探索网络:来自受感染网络内的DNS查询可以帮助攻击者构建网络地图,识别出系统及价值资产;
  • 泄露数据:攻击者可使用DNS隧道将机密或敏感数据输出网络;

6. 常用的DNS隧道工具

以下为几款主流的DNS隧道工具,大家在实际使用过程中应遵守相关法律法规,不要违反公司或组织的政策规定,避免违规通报。

  • iodline:iodine是一款开源的DNS隧道工具,可以通过DNS查询在客户端和服务器之间传输IPv4数据包。
    • 特点:支持多种操作系统,并能提供较高的传输速率
    • 官方网站:https://code.kryo.se/iodine/
  • dns2tcp:开源免费,支持通过DNS查询在客户端和服务器之间进行TCP流量传输。
    • 特点:简单易用,配置简单,支持多操作系统。
      -** 项目地址**:https://github.com/alex-sector/dns2tcp
  • dnscat2:开源免费,主要用于渗透测试和隐蔽通信。
    • 特点:支持加密通信,提供丰富的命令和控制功能
    • 项目地址:https://github.com/iagox86/dnscat2

7. 如何检测DNS隧道

7.1. 流量分析

  • 异常流量:分析DNS流量的频率、大小来发现异常情况。正常的DNS查询一般短小且具有间歇性,而DNS隧道会产生大量持续的查询。高级网络监控系统(如Snort、Suricata等)可以通过流量分析检测到异常的DNS流量,从而识别到DNS隧道。

    注:通过Wireshark等网络流量分析工具也能捕获并识别,不过相比IPS/IDS较为低效。

  • 域名长度:检查域名长度和结构。由于DNS隧道需要编码数据到域名中,这些域名通常比正常域名更长且复杂。
  • 查询类型:正常情况下,A记录(IPv4地址)和AAAA记录(IPv6地址)最为常见,而TXT记录和其他不常见的记录类型可能暗示着DNS隧道活动。

7.2. 数据包内容检查

许多DNS隧道工具使用Base64或其他编码方式将数据嵌入到域名中。所以可以检查子域名部分是否包含非典型字符或看起来像加密或编码的数据来识别DNS隧道活动。

8. 参考文档和链接

文档: DNS隧道技术参考文档打包.zip (访问密码: 6277)

参考文档

链接: https://www.akamai.com/glossary/what-is-dns-tunneling#accordion-76a7acf228-item-2984740af8

9. 写在最后

博主原计划通过搭建一条DNS隧道来详解其工作原理,花了些时间尝试了几个免费域名申请网站,均无法正常使用。就连Freenom都暂停提供免费域名了,因其托管了大量滥用域名被起诉了。而收费的域名又需要进行实名认证,认证及审核流程复杂暂且就算了吧~

后续有机会博主会再利用文中提到的隧道工具进行实战演练,敬请关注~


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2211368.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux之HugePage的原理与使用

Linux之HugePage的原理与使用 虚拟地址与物理地址虚拟地址物理地址虚拟地址与物理地址的转换 HugePage的概念Linux使用HugePage创建HugePage在程序中使用HugePage 总结 虚拟地址与物理地址 在研究HugePage之前,首先需要明白虚拟地址和物理地址的概念。在计算机系统…

baby_web-CTFWeb进阶wp-攻防世界14

baby_web-CTFWeb进阶wp-攻防世界14 页面显示1.php,可以先访问下源码和index.php,发现内容一致,再查看下cookie和header,看一下有没有藏flag,发现没。 dirsearch一下,发现访问index.php会重定向到1.php。抓…

想一键获取视频文案?2024年这3款好用的视频转文字工具来帮忙

嘿,咱们现在活在21世纪,这信息多得跟啥似的。视频这东西,不管是学东西、娱乐还是工作,都挺受欢迎的,因为它直观、生动嘛。但是,有时候咱们想从视频里提取点有用的信息,还挺费劲的。幸好啊&#…

深圳大学-Java程序设计-选实验2 类的初级应用

实验目的与要求: 实验目的:初步掌握面向对象编程中类的编写。 实验要求: (1).运行第4章课件中第4页、第24页、第32页和第34页中的四个程序,并对每一行语句加上注释。对每一行语句加上注释。在报告中附上程序截图、运行结果截图和…

zerotier安装配置

目录 1.简介1.1.基本概念1.1.1.节点1.它可以是:2.每个节点都有以下特征:3.节点的主要功能包括: 1.1.2.根服务器1.定义:2.功能:3.特点:4.角色:5.安全性:6.与普通节点的区别:7.自托管选项: 1.1.3.…

51单片机的智能电饭煲【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温度传感器继电器按键、LED等模块构成。适用于智能电饭锅等相似项目。 可实现功能: 1、LCD1602实时显示温度、运行模式、煮饭等模式的计时时间 2、首先选择电饭锅的模式,如煮饭、煮粥、蒸、煲汤&#…

React入门 9:React Router

1. 什么是路由 路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。 以上是中文维基百科对路由的解释。通俗的来讲,把一个地方的信息传输到他想去的目的地的过程,就叫路由。 2. 用代码解释路由 需求&#xff1a…

【Spring】获取Cookie和Session(@CookieValue()和@SessionAttribute())

获取 Cookie 传统获取 Cookie 这是没有 Spring 的时候,用 Servlet 来获取(获取所有的 Cookie) Spring MVC 是基于 Servlet API 构建的原始 Web 框架,也是在 Servlet 的基础上实现的 RequestMapping("/getcookie") …

CubeMX电机驱动以及编码器计数配置

一、选型 电机MG310: 电机驱动板TB6612: STM32F407VETx: 二、CubeMX配置 配置外部时钟: GPIO口配置: 需要四个I/O输出口: PWM口配置: 这里使用的是定时器TIM1,设置预分频器71&…

使用mnist数据集和LeakyReLU高级激活函数训练神经网络示例代码

一、概述 神经网络中的激活函数是用于增加网络的非线性特性的函数,没有激活函数,神经网络将仅仅是一个线性模型,无法解决复杂的非线性问题。激活函数的选择对神经网络的性能有很大的影响。 基础激活函数是神经网络中使用较早、较为简单的激…

AOA定位技术在智慧停车场中的应用

‌AOA定位技术是一种基于信号到达角度的定位方法,通过测量无线信号到达接收器的入射角度来实现精确定位。‌ AOA定位技术的核心原理是利用接收器内的多个天线阵列来测量信号的相位差,从而计算出信号的到达角度,最终确定位置‌。 在智慧停…

SpringBoot在高校学科竞赛平台中的应用与优化

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

数据结构之旅(顺序表)

前言: Hello,各位小伙伴们我们在过去的60天里学完了C语言基本语法,由于小编在准备数学竞赛,最近没有给大家更新,并且没有及时回复大家的私信,小编在这里和大家说一声对不起!,小编这几天会及时给大家更新初阶数据结构的内容,然后我们来学习今天的内容吧! 一. 顺序表的概念和结…

鸿蒙开发案例:通过三杯猜球学习显示动画

【引言】 “三杯猜球”是一个经典的益智游戏,通常由一名表演者和多名参与者共同完成。表演者会将一个小球放在一个杯子下面,然后将三个杯子快速地交换位置,参与者则需要猜出最终哪个杯子下面有小球。本文将介绍如何使用HarmonyOS NEXT技术&a…

加速AI+医疗普惠:AI如何让乳腺癌筛查走进大山?

人工智能与超声技术的结合正在医疗领域引发一场新变革。 近日,贵州省铜仁市石阡县妇幼保健院与广州尚医网信息技术有限公司(以下简称“尚医云”)联合组织了一场“AI点亮女性健康未来”免费乳腺癌筛查活动,目前已为当地1,500名适龄…

物联网:一种有能力重塑世界的技术

物联网(IoT)近年来对我们的日常生活产生了如此积极的影响,以至于即使是不懂技术的人也开始相信它所带来的便利以及敏锐的洞察力。 物联网是一场数字技术革命,其意义甚至比工业革命更为重大。物联网是仍处于起步阶段的第四次工业革…

重学SpringBoot3-安装Spring Boot CLI

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-安装Spring Boot CLI 1. 什么是 Spring Boot CLI?2. Spring Boot CLI 的安装2.1. 通过 SDKMAN! 安装2.2. 通过 Homebrew 安装(适…

React Query 和 React Context

React Query最佳特性之一是你可以在组件树中的任何位置使用查询&#xff1a;你的 <ProductTable> 组件可以在其需要的地方自带数据获取&#xff1a; function ProductTable() {const productQuery useProductQuery()if (productQuery.data) {return <table>...<…

AI跟踪报道第60期-新加坡内哥谈技术-本周AI新闻: Tesla展示Robotaxi和AI在企业级运用的推进

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

前端开发笔记-- 黑马程序员4

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 css 三角写法用户界面鼠标样式取消表单轮廓vertical-align文本溢出 html5 新标签多媒体标签视频标签![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d85d…