1. HTTP抓包例子
案例:本地向 http://192.168.40.134:31204/some-api,如何过滤?
http and ip.addr == 192.168.40.134 and tcp.port == 31204
语句分析:
- http 表示我只需要http的包
- ip.addr 表示只要源ip或者目标ip地址中包含192.168.40.134
- tcp.port 表示只要源端口或者目标端口中包含31204
2. 为什么我写的表达式总是不对呢?😂
很多时候,你写的表达式背景色变成红色,说明表达式错误了,例如下图:http and ip.port == 31204
写出ip.port这个语句,往往是对传输协议理解不清晰。😅
ip是网络层的协议,port是传输层tcp或者udp中使用的。例如你写tcp.port == 80,udp.port ==3000这样是没问题的。但是port不能跟在ip的后面,如果你不清楚怎么写,你可以选择wireshark的智能提示。
智能提示会提示所有可用的表达式。
3. 常用过滤表达式
一般我们的过滤都是基于协议,ip地址或者端口号进行过滤的,
3.1. 基于协议的过滤
直接输入协议名进行过滤
3.2. 基于IP地址的过滤
3.3. 基于端口的过滤
基于端口的过滤一般就两种
- tcp.port == xxx
- udp.port == xxx
3.4. 基于host的过滤
4. 比较运算符支持
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
ip.addr == 192.168.2.4
5. 逻辑运算符
- and 条件与
- or 条件或
- xor 仅能有一个条件为真
- not 所有条件都不能为真
ip.addr == 192.168.2.4 and tcp.port == 2145 and !tcp.port == 3389
6. 只关心某些特殊的tcp包
tcp.flags.fin==1 只过滤关闭连接的包
tcp.flags.syn==1 只过滤建立连接的包
tcp.flags.reset==1 只过滤出tcp连接重置的包
7. 统计模块
7.1. 查看有哪些IP
Statistics -> endpoints
7.2. 查看那些IP之间发生会话
Statistics -> Conversations
7.3. 按照协议划分
8. 最后
在会使用上述四个过滤方式之后,就可以自由的扩展了
🏄🏄🏄🏄🏄🏄 ⛹️♀️⛹️♀️⛹️♀️⛹️♀️⛹️♀️⛹️♀️ 🏋️🏋️🏋️🏋️🏋️🏋️
http.request.method == GET # 基于http请求方式的过滤
ip.src == 192.168.1.4