前言
DNS是互联网域名解析基础,默认使用UDP 53端口,也是黑客最常利用的攻击入口。DNS隧道、DNS放大DDoS、DNS欺骗、DGA恶意域名查询,很多攻击都藏在DNS流量里面。
运维、安全蓝队排查安全事件时,
Wireshark是分析DNS攻击流量最实用工具。拿到cap抓包文件,通过过滤、查看报文特征,快速识别DNS类攻击。本文一次性梳理4种高频DNS攻击,附带Wireshark过滤语句、流量特征、识别要点。
一、基础:Wireshark DNS通用过滤命令
打开抓包文件,在显示过滤器输入下面指令,快速筛选DNS流量:
dns # 筛选全部DNS报文
udp.port == 53 # 筛选53端口DNS流量
dns.flags.response == 0 # 只看DNS查询包(请求)
dns.flags.response == 1 # 只看DNS应答包
dns.qry.name.len >50 # 查询域名长度大于50,疑似DNS隧道
dns.qry.type ==16 # 筛选TXT记录查询(DNS隧道常用)
dns.flags.rcode ==3 # NXDOMAIN,域名不存在,DGA恶意域名特征
二、四大DNS攻击Wireshark流量识别实战
1. DNS放大攻击(DNS Reflection DDoS)
原理:攻击者伪造受害者IP,向开放公网DNS递归服务器发送小体积ANY查询,DNS服务器返回超大应答包,小包换大包,放大流量打满目标带宽。
Wireshark抓包特征
- 大量DNS应答包(源端口53),响应包体积远大于请求包,放大倍数几十倍;
- 受害者只收到大量DNS响应,但本机没有发出对应的DNS查询请求;
- 大量ANY类型查询记录,报文分片多。
排查要点:统计报文长度,请求小、回复巨大,就是典型DNS放大攻击。
2. DNS隧道攻击(DNS Tunneling,数据外带)
原理:攻击者将文件、命令、敏感数据编码,放在子域名中,不断发起DNS查询,把数据带出内网,绕过防火墙。
Wireshark抓包特征
- 域名很长,子域名随机乱码(base32/base64编码);
- 高频、连续大量DNS查询,单主机短时间成千上万请求;
- 大量TXT记录查询;
- 域名层级很深,正常业务极少出现。
过滤语句:
dns.qry.name.len >50重点观察:子域名是否为无意义随机字符串。
3. DNS欺骗 / DNS缓存投毒
原理:攻击者伪造DNS应答包,在合法DNS服务器返回正确IP之前,抢先推送伪造A记录,让客户端访问钓鱼恶意IP。缓存投毒则污染DNS服务器缓存,同一服务器所有用户都会中招。
Wireshark抓包特征
- 同一个DNS查询ID,出现两条DNS应答包;
- 返回IP和真实域名解析IP不一致;
- 应答包TTL异常。
排查思路:对比两条应答包的Transaction ID,ID相同则是伪造应答。
4. DGA恶意域名查询(木马C2通信)
原理:恶意程序使用算法批量生成大量随机域名,不断DNS查询,尝试连接黑客C2服务器。
Wireshark抓包特征
- 大量NXDOMAIN(rcode=3,域名不存在);
- 大量随机、无意义域名,域名无规律;
- 内网单台主机持续高频发起DNS请求。
过滤语句:
dns.flags.rcode ==3
三、Wireshark快速分析流程(安全事件排查标准步骤)
- 导入cap包,输入
dns过滤,单独提取DNS流量;
- 统计会话:统计→DNS,查看哪个内网IP查询量异常飙升;
- 筛选长域名、TXT记录、NXDOMAIN,初步定位可疑主机;
- 查看报文详情,区分是DNS隧道、放大攻击还是DGA;
- 导出可疑DNS报文,留存取证。
导出方法:选中可疑报文 → 文件 → 指定分组保存,单独保存恶意流量用于溯源。
四、防御建议
- 边界防火墙限制UDP53出站,禁止内网主机直接访问公网DNS;
- 部署内网递归DNS,开启DNSSEC,防御DNS欺骗与缓存投毒;
- 监控DNS流量基线,对超长域名、高频TXT查询、大量NXDOMAIN配置告警;
- 公网DNS服务器关闭ANY查询,禁止开放递归,防范DNS放大攻击;
- 部署流量清洗,抵御DNS放大DDoS。
五、常见踩坑
误区1:只要长域名就是DNS隧道部分业务日志、CDN子域名本身较长,需要结合查询频率、随机熵综合判断,不能单一指标下定论。
误区2:所有NXDOMAIN都是木马网络异常、域名过期也会出现NXDOMAIN,需要结合终端行为交叉验证。
总结
DNS攻击利用UDP 53端口隐蔽性强,很多防火墙不会严格审计DNS流量。Wireshark抓包分析核心就是
观察域名长度、查询频率、报文大小、返回码,区分DNS放大、DNS隧道、DNS欺骗、DGA这四类攻击。
日常运维可以定期抓取出口DNS流量做威胁狩猎,提前发现木马通信、数据外带行为。
免责声明:本文仅用于网络安全学习、流量分析与防御研究,禁止在未授权环境下进行DNS攻击测试。
FAQ
Q:Wireshark怎么筛选DNS隧道流量?A:使用过滤器
dns.qry.name.len>50,再重点查看TXT类型DNS查询。
Q:DNS放大攻击抓包有什么特点?A:收到大量DNS应答,但是本机没有发出查询,应答报文体积远大于请求包。
Q:如何在Wireshark统计单IP的DNS查询数量?A:顶部菜单【统计】-【会话】,切换UDP,按数据包数量排序,找出异常IP。
关于墨者安全
墨者安全致力于安全防护、服务器高防、网络高防、ddos防护、cc防护、dns防护、防劫持、高防服务器、高防dns、网站防护等方面的服务,全网第一款指纹识别技术防火墙,自研的WAF指纹识别架构,提供任意CC和
DDoS攻击防御