Wireshark过滤DNS协议包语法实战

背景

现网DNS服务器发现CPU突增,发现有可能是客户恶意发起的随机子域名扫描,对服务器进行抓包分析,记录下当时的操作。

抓包

执行命令 tcpdump -iany port 53 and host '$ip' -nnv -w $ip.pcap进行抓包导出到本地,使用Wireshark进行打开分析

使用sz ip.pcap命令导出到本地

分析

Wireshark有自带的统计功能,非常好用,这里使用如下:

1、先找出请求量最大的客户端IP:

2、根据客户端IP找出请求量大的域名有哪些
1.模糊匹配域名

使用命令 ip.src == ip && dns.qry.name contains "域名"这个是模糊匹配域名
2.精确匹配域名
ip.src == ip && dns.qry.name == "域名"

处理

找出域名后,可以利用iptables对域名进行限频或者封禁
封禁
iptables -I INPUT -p udp --dport 53 -m string --hex-string "ipt|03|aol|03|com" --algo bm --icase --to 1480 -j DROP
iptables -I INPUT -p udp --dport 53 -m string --hex-string "|2a 2e 62 79 64 2a|" --algo bm --icase -j DROP
限频
iptables -I INPUT -p udp --dport 53 -m string --hex-string "|2a 2e 62 79 64 2a|" --algo bm --icase -m limit --limit 1000/s --limit-burst 100 -j ACCEPT

更多命令

1、dns.flags.response

dns.flags.response 的值为 0 时

表示该数据包是一个 DNS 查询

dns.flags.response 的值为 1 时

表示该数据包是一个 DNS 响应


2、包含9.146.178.132这个地址的
ip.addr == 9.146.178.132

3、指定目标地址
ip.dst == 221.182.227.3

4、指定请求方法
ip.addr == 113.31.104.71 and http.request.method == POST

5、根据http协议过滤包内容
http.request.method == POST and ip.src != 11.142.163.186 and http contains "vspRegistrantUpload"

6、过滤数据包内容包含的字符串
http.request.method == POST and ip.src != 11.142.163.186 and frame contains "cnRegistrantQuery" "

7、过滤时间
http.date >= "Tue, 15 Nov 2022 07:05:36 GMT" && http.date <= "Tue, 15 Nov 2022 07:05:37 GMT"

相关推荐
诡异森林。28 分钟前
Docker--Docker网络原理
网络·docker·容器
ALex_zry42 分钟前
Docker Macvlan网络配置实战:解决“network already exists“错误
网络·docker·php
半路_出家ren1 小时前
流量抓取工具(wireshark)
网络·网络协议·测试工具·网络安全·wireshark·流量抓取工具
猿周LV2 小时前
JMeter 安装及使用 [软件测试工具]
java·测试工具·jmeter·单元测试·压力测试
Gazer_S2 小时前
【HTTP/2:信息高速公路的革命】
网络·网络协议·http
李匠20242 小时前
C++ RPC以及cmake
网络·c++·网络协议·rpc
科技小E3 小时前
EasyRTC音视频实时通话嵌入式SDK,打造社交娱乐低延迟实时互动的新体验
大数据·网络
静听夜半雨4 小时前
CANoe入门——3、新建LIN工程及LIN DataBase(LDF文件)的创建
网络·数据库·c++·编辑器
Jackilina_Stone4 小时前
【网工第6版】第5章 网络互联⑧
网络·软考·网工·第5章 网络互联
电鱼智能的电小鱼4 小时前
基于 EFISH-SBC-RK3588 的无人机通信云端数据处理模块方案‌
linux·网络·人工智能·嵌入式硬件·无人机·边缘计算