帮助中心 >
  关于网络安全 >
  DNS隧道攻击是什么?攻击者如何用DNS查询偷数据

DNS隧道攻击是什么?攻击者如何用DNS查询偷数据

时间 : 2026-10-07 10:34:50
编辑 : DNS.COM

  网络安全里有一个很反直觉的事实:最危险的攻击,往往藏在你最不可能怀疑的地方。防火墙通常会放行53端口的DNS流量,因为不解析域名,互联网就没法用。这个“必须放行”的特性,让DNS成了攻击者眼中最理想的隐蔽通道。

  DNS隧道攻击就是利用这个通道,把偷来的数据伪装成正常的域名查询,大摇大摆地从你的网络里送出去。而且,很多企业的安全团队根本不会去审查DNS流量,因为“DNS只是用来查IP的,能有什么问题”。

  DNS隧道到底在做什么?

  要理解DNS隧道,先得知道DNS查询长什么样。

  正常的DNS查询是这样的:你的电脑问DNS服务器“example.com的IP是多少”,服务器回答“93.184.216.34”。问题里只有域名,回答里只有IP。干净、简单、有明确的目的。

  DNS隧道做的事情是:把要传输的数据编码后,塞进“域名”里。

  攻击者的恶意程序在被感染的机器上运行,把偷到的文件片段进行Base64或十六进制编码,变成一串看起来像乱码的字符,然后拼接成一个子域名,比如 aGVsbG8gd29ybGQ.evil.com,向攻击者控制的DNS服务器发起查询。

  攻击者的DNS服务器收到这个查询后,从子域名里把编码数据提取出来,解码还原。反过来,攻击者要下发指令时,就在DNS响应里(通常是TXT记录)放上编码后的命令,被感染的机器收到响应后解码执行。

  整个过程看起来就像是普通的DNS解析,防火墙放行,安全设备不告警。但实际上,一条隐蔽的双向数据通道已经建立起来了。

  MITRE的ATT&CK框架把这个技术归类为“协议隧道”。并在DNS封装的说明中明确指出:攻击者将用户数据“搭载”在DNS请求中,由攻击者控制的DNS服务器记录查询并提取编码信息,从而实现对DNS协议的隐蔽利用。

  为什么选DNS,而不是HTTP或FTP

  攻击者选择DNS作为数据外传通道,有很现实的原因。

  防火墙默认放行DNS。 这是最根本的原因。企业防火墙通常配置为允许内部主机向外部DNS服务器发起53端口的查询。如果把DNS也封了,正常上网就瘫痪了。攻击者恰恰利用了这种“不得不放行”的信任。

  DNS流量太常见,不引人注意。 一个企业内网上每天有成千上万条DNS查询,安全团队不可能逐条审查。攻击者把恶意查询混在这些海量正常查询里,就像把一滴墨水倒进大海。

  TXT记录天生适合藏数据。 TXT记录原本是用来存放SPF、DKIM等域名验证文本的,支持较长的文本内容。攻击者利用TXT记录来承载加密后的数据,响应包可以很大,而且看起来像是在做正常的域名验证。

  数据容量被低估了。 一个DNS查询的域名部分理论上可以很长,TXT记录每个字符串可以存储255个字符,一条记录可以包含多个字符串。攻击者把文件切分成小块,分散在大量DNS查询里缓慢传输,完全可以做到“细水长流”。

  真实世界里的DNS隧道长什么样?

  DNS隧道不是纸上谈兵。过去几年里,多个安全厂商都记录到了真实攻击案例。

  Symantec在2025年披露了一个名为Msupedge的后门程序,攻击者利用PHP漏洞入侵了一所台湾大学的网络,后门程序使用DNS隧道与C&C服务器通信。它不仅能通过DNS查询接收指令,还把C&C服务器解析出的IP地址本身当作命令来解读——双重隐蔽。

  2026年,安全厂商监测到一类新型DNS隧道恶意程序,专门利用TXT记录从政企内网窃取账号、客户资料和业务文档。这个样本做了规避优化:控制查询频率避免触发流量告警,随机化编码字符降低特征匹配检出率,复用正常业务域名的查询模式混在日常流量里。

  2025年10月,安全研究人员发现了一个名为“Detour Dog”的大规模DNS恶意活动,数万个被入侵的网站被用来嵌入结构化的DNS查询和响应,作为隐蔽的命令控制通道和载荷投递渠道。受感染的站点生成恶意的TXT记录查询,编码受害者数据并获取远程指令。

  检测的难点在哪里?

  DNS隧道之所以难防,核心在于“正常”和“异常”的边界很模糊。

  正常的DNS查询也会产生子域名,比如CDN会生成 d1234567890.cloudfront.net 这样的地址。正常的TXT记录查询也存在,SPF验证就是例子。正常的DNS流量也会有波动,访问量大的时候查询量自然高。

  攻击者的规避手段还在进化。一篇2026年的学术论文指出,现有的检测方法“本质上无法保证零数据泄露”,当被盗数据分散在许多不同的根域名上外传时,基于统计特征的检测方法很容易被绕过。

  这意味着,传统的“看流量大不大”的思路已经不够用了。攻击者可以控制查询频率,让每个域名的查询量看起来完全正常;可以把数据分散到几百个不同的域名上,让单个域名的查询量微不足道。

  怎么防?

  DNS隧道的防护需要从“看得见”开始,而不是从“封得住”开始。

  第一步是DNS日志的全量留存。 很多企业的安全运维只关注Web流量,缺少DNS深度审计。没有日志,事后连攻击什么时候发生的、传了什么数据出去都不知道。重点监控的指标包括:高频TXT类型查询、超长子域名(超过60个字符)、高熵随机字符域名。

  第二步是收紧出口DNS策略。 内网主机应该只允许访问企业指定的可信DNS服务器,禁止终端直连公网未知DNS。这样至少能把DNS流量集中到一个可监控的出口。

  第三步是识别异常载荷。 部署支持DNS深度检测的安全设备,拦截含Base64或十六进制编码的异常载荷,重点监控TXT、NULL记录的非常规数据传输。检查DNS响应是否返回了合法的IP地址——如果响应里包含的是非IP字符串,那基本可以确定有问题。

  第四步是流量特征分析。 Cato Networks的检测方案分析几个关键特征:数据包大小(大型DNS数据包是异常的)、记录类型(TXT、NULL等非常规记录的异常使用)、唯一比率(大量唯一子域的存在可能表明攻击)。基于机器学习的方案可以建立正常DNS行为的基线,当出现“高频短域名查询、非工作时段大量解析、单一域名频繁变更子域名”等模式时触发告警。

  常见问答

  问:DNS隧道攻击和DNS放大攻击是一回事吗?

  答:不是。DNS放大攻击是利用开放DNS解析器把攻击流量反射给受害者,目标是打垮受害者的网络。DNS隧道攻击是利用DNS查询建立隐蔽通道,目标是悄悄偷数据或远程控制。一个搞破坏,一个搞渗透。

  问:为什么DNS流量能被用来偷数据,防火墙不管吗?

  答:防火墙通常默认放行53端口的DNS查询,因为不放行的话正常上网就废了。攻击者恰恰利用了这个“必须放行”的信任,把数据编码成域名的一部分,让防火墙以为是在做正常的域名解析。

  问:常见的DNS隧道工具都有哪些?

  答:公开的隧道工具包括DNSCat2、Iodine、CobaltStrike等。Symantec发现的Msupedge后门就是基于dnscat2的。这些工具在网上可以公开获取,攻击者不需要很高的技术水平就能使用。

DNS Jade
DNS Amy
DNS Anna
DNS NOC
标题
电子邮件地址
类型
信息
验证码
提交