近期,在办公网络中出现网络不稳定问题,经过分析发现是网内大量的终端安装的安全软件,每秒钟都定期进行地址探测,其中需要探测taobao.com之类的域名地址,造成大量的DNS查询,如果终端数上千之后,很快防火墙的并发连接数都超过了300万(类似UDP攻击)。为解决问题,先用抓包工具对DNS协议进行了一点研究。
DNS UDP包基本分析
UDP包
DNS包 DNS协议的详细分析,参考:https://www.jianshu.com/p/43d316f8ed4c
tcpdump 与wireshark抓取查询域名
基本使用参考一下:超详细的网络抓包神器 tcpdump 使用指南,和https://blog.csdn.net/qq_42672770/article/details/107032894
这篇有包头部分析偏移量https://www.cnblogs.com/chenpingzhao/p/9108570.html
tcpdump监控DNS包,没有直接的过滤器可以显示所查询的域名,需要自行构造。
下面网站有一个原始的DNS 位置过滤器在线生成,https://www.time-travellers.org/dnstcpdump/,也可以自行构造
tcpdump -i enp4s0f1 'port 53 and (udp[21]==119) and (udp[22]==119) and (udp[23]==119)
偏移量计算:udp包头 4个2 [0]-[7], DNS头部6个2 [8]-[19],[20]是0x03查询开始,[21-23]正好是查询的前三个字母。
而wireshark在命令行可以直接使用display filter,这个要强大和语义更丰富的多。
tshark -i enp4s0f1 -Y 'dns.qry.name ~ www.taobao.com'
附录1:在线生成tcpdump的DNS域名过滤器
地址:https://www.time-travellers.org/dnstcpdump/
附录2 ,tcpdump过滤器图示
tcpdump是更底层的,依赖过滤器
https://blog.csdn.net/weixin_33797791/article/details/92514147
附录3:ASCII码表
|