在Wireshark中捕捉DNS流量有以下几种方法:
方法一:使用捕获过滤器(Capture Filter)
DNS主要使用UDP端口53,有时也使用TCP端口53:
port 53
udp port 53 or tcp port 53
src port 53 or dst port 53
方法二:使用显示过滤器(Display Filter)
捕获后,在过滤栏中输入:
dns
或更具体的:
dns.qry.name contains "example.com" dns.flags.response == 0 # 只显示请求 dns.flags.response == 1 # 只显示响应
完整操作步骤:
sudo wireshark # Linux需要管理员权限
- 选择正在使用的网络接口(如Wi-Fi、以太网)
- 有线连接通常选eth0 或类似
- 无线连接选wlan0 或类似
1、在接口列表上方找到"捕获过滤器"输入框
2、输入:port 53
3、点击开始捕获按钮(鲨鱼鳍图标)
为了测试,可以在终端执行:
nslookup example.com dig google.com ping baidu.com # 这会先进行DNS查询
捕获到数据包后:
- 展开"Domain Name System (query/response)"
- 查看"Queries"部分
- 注意"Answers"部分(如果有响应)
常用显示过滤器示例:
| 过滤器 | 作用 |
dns | 显示所有DNS流量 |
dns.flags.rcode == 0 | 显示成功的DNS响应 |
dns.flags.rcode == 3 | 显示NXDOMAIN(域名不存在) |
dns.qry.name == "example.com" | 显示特定域名的查询 |
dns.a | 显示A记录响应 |
dns.aaaa | 显示AAAA记录响应 |
保存捕获结果:
1、停止捕获(红色方块按钮)
2、文件 → 保存
3、选择保存位置和文件名
高级技巧:
host 192.168.1.100 and port 53
port 53 and not host 8.8.8.8
使用tshark(命令行版本) tshark -i eth0 -f "port 53" -w dns_capture.pcap
注意事项:
1、权限问题:Linux/Mac需要sudo权限
2、无线网络:可能需要开启监控模式
3、VPN/代理:可能会影响DNS流量捕获
4、DNS over HTTPS/TLS:标准端口53无法捕获这些加密的DNS流量
这样就能成功捕获和分析DNS流量了。
文章摘自:https://idc.huochengrm.cn/dns/22266.html
评论