Wireshark 常用显示过滤器手册
admin
2026-10-27 06:16
104人看过
免费
# Wireshark 常用显示过滤器手册
> 说明:**显示过滤器(Display Filter)** 只用来筛选已经抓下来的包(不会影响抓包);和捕获过滤器(Capture Filter)语法完全不一样,不要混淆。
> 语法提示:`==` 等于;`!=` 不等于;`&&` 与;`||` 或;`!` 非;`contains` 包含字符串;`matches` 正则匹配。
## 一、基础IP / 链路层过滤
```wireshark
ip.addr == 192.168.1.100 # 源IP 或 目的IP 是该地址
ip.src == 192.168.1.100 # 源IP
ip.dst == 192.168.1.100 # 目的IP
!ip.addr == 192.168.1.100 # 排除这个IP
ip.addr == 10.0.0.0/8 # CIDR网段
eth.addr == 00:11:22:33:44:55 # MAC地址
eth.src / eth.dst # 源MAC / 目的MAC
```
## 二、TCP / UDP 端口过滤
```wireshark
tcp.port == 80 # 源或目的端口80
tcp.srcport == 8080 # TCP源端口
tcp.dstport == 443 # TCP目的端口
udp.port == 53 # UDP DNS
tcp.flags.syn == 1 # SYN包(握手请求)
tcp.flags.ack == 1 # ACK包
tcp.flags.fin == 1 # FIN 结束连接
tcp.flags.reset == 1 # RST 重置连接(异常断开,安全分析重点)
tcp.analysis.retransmission # TCP重传(网络异常)
tcp.analysis.duplicate_ack # 重复ACK
```
## 三、应用层协议常用过滤
```wireshark
http # 所有HTTP包
http.request # HTTP请求包
http.response # HTTP响应包
http.request.method == "POST" # POST请求
http.request.method == "GET"
http.host == "api.test.com" # HTTP Host头
http.request.uri contains "/login" # URI包含login
http contains "password" # HTTP数据包包含password字符串
tls # TLS/HTTPS流量(wireshark新版,旧版本ssl)
tls.handshake # TLS握手包
tls.alert # TLS告警(连接失败)
dns # 全部DNS
dns.qry.name == "baidu.com" # 查询域名等于baidu.com
dns.qry.name contains ".com" # 查询域名包含字符
dns.flags.response == 1 # DNS响应报文
ftp # FTP
ssh # SSH
smb # SMB文件共享(内网横向渗透重点)
mysql # MySQL数据库流量
redis # Redis
```
## 四、安全运维/应急分析高频过滤器(SOC蓝队最常用)
```wireshark
# 查找异常RST连接
tcp.flags.reset == 1
# 查找HTTP POST上传、webshell相关
http.request.method=="POST" && http.request.uri contains "upload"
# 查找HTTP请求带注入特征(单引号、union、select)
http contains "union select"
http contains "admin'"
# 查找大量DNS查询(域名隧道、C2通信)
dns && dns.flags.response ==0
# 查找SMB(445端口,永恒之蓝、内网横向)
tcp.port ==445
# 查找外部访问3389远程桌面
tcp.dstport ==3389
# 查找SSH暴力破解(大量失败握手)
tcp.port ==22 && tcp.flags.reset==1
# 查找HTTP返回5xx/4xx错误码
http.response.code >=400
```
## 五、数据包长度、内容匹配
```wireshark
frame.len > 1000 # 数据包总长度大于1000字节
tcp.payload contains "cmd" # TCP负载包含字符串
udp.payload contains "xxx"
```
## 六、组合复杂示例(直接复制使用)
```wireshark
# 1. 来自192.168.1.100 的HTTP POST流量
ip.src==192.168.1.100 && http.request.method=="POST"
# 2. 排除本机,只看外网443流量
!ip.addr==127.0.0.1 && tls && tcp.dstport==443
# 3. 查找访问/login接口并且返回200成功
http.request.uri contains "/login" && http.response.code ==200
# 4. 同时匹配多个端口
tcp.port == 80 || tcp.port ==8080 || tcp.port ==443
```
## 七、易踩坑要点
1. **显示过滤器用 `==`;捕获过滤器用 `=` 不用双等号,语法不同,不要混用**
- 捕获过滤器示例:`host 192.168.1.100 and port 80`
2. 字符串匹配:`contains` 大小写不敏感;`==` 精确匹配;`matches` 正则
3. 引号:字符串值需要英文双引号,例如 `"POST"`
4. 颜色规则:可以把RST、SYN、POST等设置颜色,方便快速告警分诊
5. 查看数据包原始payload:`tcp.payload` 为TCP应用层负载
## 八、应急排查速查清单
- 端口扫描:大量`SYN`包,无后续ACK `tcp.flags.syn == 1 && tcp.flags.ack ==0`
- 暴力破解:同一源IP大量连接到22/3389,伴随RST包
- Web攻击:HTTP包包含注入、webshell特征
- C2通信:周期性TLS/DNS出站,长连接心跳
- 数据外带:大量大包向外网传输,POST长报文
版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载或以其他方式使用本站原创内容。