[工具使用] wireshark常用过滤命令

184 0
Honkers 2025-5-26 14:05:55 来自手机 | 显示全部楼层 |阅读模式

wireshark抓包介绍

有99%的网络故障都是可以通过通用故障排除流程来解决的。
只有当常规手段无法查明网络故障时才抓包进行分析。
抓包分析也不是万能的,无法看出网络拓扑是怎样的,路由是怎样走的,哪根网线断了。

单机单点:

只抓本机网络数据包

单机多点:

必须有一台可管理交换机,在交换机上配置端口镜像功能,将其他端口上的流量都复制到抓包主机所连端口,这样就能在一台主机上抓去其他主机甚至全部网络流量的网络数据包

双机并行:

是在特定网络设备,比如防火墙的前 后端 各部署一个抓包主机同时抓包,然后进行比对分析,看数据包在经过特定的网络设备时,是否存在异常

wireshark常见列

Time

Time(时间)列:从第2个数据包开始,都是相对于第1个数据包的时间
时间是可以切换成绝对时间的,但建议用默认设置。

回包

这两个箭头,表示一个发包,一个回包。

数据报对应网络模型

wireshark基本操作

  1. 打开软件
  2. 选择网卡
  3. 即开始抓包,

结束抓包

再次开始抓包

wireshark常用过滤命令

https://cloud.tencent.com/developer/article/1618433
一般比较常用的就几个:

  1. # 过滤指定ip地址
  2. ip.addr==xxx.xxx.xxx.xxx
  3. # 过滤指定tcp端口
  4. tcp.port=xxx
  5. # 过滤指定udp端口
  6. udp.port==xxx
复制代码

我一般会先用具体协议过滤个大概,比如tcp、udp、ssh、ftp、icmp、ssl、http、smtp等

一、过滤协议

  • tcp
  • udp
  • arp
  • icmp
  • http
  • smtp
  • ftp
  • dns
  • ssl
  • ssh

二、过滤IP

  1. ip.src eq ${IP} or ip.dst eq ${IP}
  2. # 或
  3. ip.addr eq IP
复制代码

eq也可以用==代替
"不等于"怎么表达?测试!=不行,得用not xxyy,例如not tcp.port3389 && not ip.addr10.135.71.54 && not tcp.port80(tcp端口不等于3389且tcp端口不等于22且地址不等于10.135.71.54)
再比如
!ssl 或者 not ssl
!(arp.src192.168.1.1) and !(arp.dst.proto_ipv4192.168.1.243)

三、过滤端口

  1. # 过滤tcp端口==443
  2. tcp.port eq 443
  3. # 过滤tcp目标端口==80 或 tcp源端口==80
  4. tcp.dstport == 80 or tcp.srcport == 80
  5. # 过滤udp端口==53
  6. udp.port eq 53
复制代码

四、过滤方向

关键字解释
src
dst目的地
src and dst源 and 目的地
src or dst源 or 目的地
srcport源端口
dstport目的地端口
srcport and dstport源端口 and 目的地端口
srcport or dstport源端口 or 目的地端口

五、过滤http

①过滤http模式

  1. # 过滤请求方法为HEAD的数据包
  2. http.request.method == "HEAD"
  3. # 过滤请求方法为GET的数据包
  4. http.request.method == "GET"
  5. # 过滤请求方法为POST的数据包
  6. http.request.method == "POST"
复制代码

②模糊匹配字符串

http字符串过滤,这个字符串可以在Server部分,在URI部分,在域名部分等等

  1. # 找到所有请求的路径 uri包含 xxx 的 HTTP 请求
  2. http.request.uri contains "xxx"
  3. # 过滤包含 error 的 HTTP 请求或响应数据包
  4. http contains "xxx"
复制代码

六、tcp stream过滤

  1. tcp.stream eq $streamindex
复制代码

七、过滤rst

可以用这个条件找异常

  1. # 找到所有被主机拒绝的连接请求
  2. rst: tcp.flags.reset == 1 and tcp.ack == 0
复制代码

例如

  1. # 找到符合ip地址条件的,所有被主机拒绝的连接请求
  2. ip.addr==10.1.2.35 && ip.addr==115.159.131.24 && tcp.flags.reset == 1
复制代码

  1. # 捕获多播地址和广播地址
  2. # 捕获MAC地址最低位为1的数据包
  3. ## 在以太网协议中,MAC地址的最低位为1时,表示该地址为多播地址或广播地址。
  4. eth[0] & 1
复制代码

常用示例:

个人实际应用中遇到的一些分析场景。


分析DSCP值

在Wireshark中,您可以使用以下过滤器来筛选包含特定DSCP值的数据包:

  1. ip.dsfield.dscp==xx
复制代码

其中xx是您要筛选的DSCP值。

  1. # 显示tcp数据包,并且其IP包头的dscp值不为0
  2. !(ip.dsfield.dscp == 0) && tcp
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行