做应用识别这一块经常要对应用产生的数据流量进行分析。
抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后参考。(脑子记不住东西)
wireshark进行过滤时,按照过滤的语法可分为协议过滤和内容过滤。
对标准协议,既支持粗粒度的过滤如HTTP,也支持细粒度的、依据协议属性值进行的过滤如tcp.port==53、http.request.method=="GET"。
对内容的过滤,既支持深度的字符串匹配过滤如http contains "Server",也支持特定偏移处值的匹配过滤如tcp[20:3] == 47:45:54。
wireshark有两种过滤器:
捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。
显示过滤器(DisplayFilters):用于在捕捉结果中进行详细查找。
捕捉过滤器在抓抱前进行设置,决定抓取怎样的数据;显示过滤器用于过滤抓包数据,方便stream的追踪和排查。
捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤也支持内容过滤。
两种过滤器它们支持的过滤语法并不一样。
捕捉过滤器--捕捉前依据协议的相关信息进行过滤设置
语法: Protocol Direction Host(s) Value Logical Operations Other expression
例子: tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128
示例:
(host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8
捕捉IP为10.4.1.12或者源IP位于网络10.6.0.0/16,目的IP的TCP端口号在200至10000之间,并且目的IP位于网络 10.0.0.0/8内的所有封包。
字段详解:
Protocol(协议):
可能值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果没指明协议类型,则默认为捕捉所有支持的协议。
注:在wireshark的HELP-Manual Pages-Wireshark Filter中查到其支持的协议。
Direction(方向):
可能值: src, dst, src and dst, src or dst
如果没指明方向,则默认使用 “src or dst” 作为关键字。
”host 10.2.2.2″与”src or dst host 10.2.2.2″等价。
Host(s):
可能值: net, port, host, portrange.
默认使用”host”关键字,”src 10.1.1.1″与”src host 10.1.1.1″等价。
Logical Operations(逻辑运算):
可能值:not, and, or.
否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。
“not tcp port 3128 and tcp port 23″与”(not tcp port 3128) and tcp port 23″等价。
“not tcp port 3128 and tcp port 23″与”not (tcp port 3128 and tcp port 23)”不等价。
显示过滤器--对捕捉到的数据包依据协议或包的内容进行过滤
1.协议过滤语法
语法: Protocol . String 1 . String 2 Comparison operator Value Logical Operations Other expression
例子: http request method == "POST" or icmp.type
string1和string2是可选的。
依据协议过滤时,可直接通过协议来进行过滤,也能依据协议的属性值进行过滤。
按协议进行过滤:
snmp || dns || icmp 显示SNMP或DNS或ICMP封包。
按协议的属性值进行过滤:
ip.addr == 10.1.1.1
ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
ip.src == 10.230.0.0/16 显示来自10.230网段的封包。
tcp.port == 25 显示来源或目的TCP端口号为25的封包。
tcp.dstport == 25 显示目的TCP端口号为25的封包。
http.request.method== "POST" 显示post请求方式的http封包。
http.host == "tracker.1ting.com" 显示请求的域名为tracker.1ting.com的http封包。
tcp.flags.syn == 0×02 显示包含TCP SYN标志的封包。
2.内容过滤语法
2.1深度字符串匹配
contains :Does the protocol, field or slice contain a value
示例
tcp contains "http" 显示payload中包含"http"字符串的tcp封包。
http.request.uri contains "online" 显示请求的uri包含"online"的http封包。
2.2特定偏移处值的过滤
tcp[20:3] == 47:45:54 /* 16进制形式,tcp头部一般是20字节,所以这个是对payload的前三个字节进行过滤 */
http.host[0:4] == "trac"
过滤中函数的使用(upper、lower)
upper(string-field) - converts a string field to uppercaselower(string-field) - converts a string field to lowercase示例
upper(http.request.uri) contains "ONLINE"
wireshark过滤支持比较运算符、逻辑运算符,内容过滤时还能使用位运算。
如果过滤器的语法是正确的,表达式的背景呈绿色。如果呈红色,说明表达式有误。
分享到:
相关推荐
以下是一些关于Wireshark过滤语法的关键知识点: 1. **过滤IP**: - `ip.src eq 192.168.1.107` 或 `ip.dst eq 192.168.1.107`:这两个表达式分别用来过滤来源IP和目标IP为指定IP地址的数据包。`ip.addr eq 192....
以下是对标题和描述中提到的Wireshark过滤语法的详细解释: 1. **过滤IP地址**: - `ip.src eq 192.168.1.107`:过滤源IP地址为192.168.1.107的包。 - `ip.dst eq 192.168.1.107`:过滤目标IP地址为192.168.1.107...
Wireshark过滤器是网络分析工具Wireshark中的一个重要特性,它允许用户高效地筛选和查看网络通信数据。Wireshark是一款开源的网络封包分析软件,广泛用于网络故障排查、安全审计和协议开发等领域。通过使用过滤器,...
Wireshark 过滤器语法包括检查字段或协议的存在性、比较运算符、逻辑运算符和字符串匹配等。用户可以根据需要编写复杂的过滤器表达式,以便在 Wireshark 和 TShark 中快速地查找和分析数据包。 1. 检查字段或协议的...
本文将详细介绍Wireshark过滤语法的各种用法。 1. **IP过滤**: - `ip.src eq 192.168.1.107` 或 `ip.dst eq 192.168.1.107`:过滤出源IP或目标IP为指定地址的包。 - `ip.addr eq 192.168.1.107`:同时显示源IP和...
Wireshark是一款强大的网络封包分析软件,常被网络管理员用于网络故障排查、性能分析以及安全审计。...在使用时,注意检查过滤表达式的语法,确保过滤器输入框显示绿色表示过滤规则有效。如果输入错误,框会变为红色。
### Wireshark过滤规则详解 #### 一、概述 Wireshark是一款强大的网络封包分析软件,它能够捕捉网络中的数据包,并通过多种过滤规则帮助用户进行数据分析。本篇文章主要介绍如何利用Wireshark设置过滤规则,特别是...
### Wireshark捕获过滤器与显示过滤器详解 #### 捕获过滤器与显示过滤器概述 在使用Wireshark进行网络分析时,如何有效地筛选出关注的数据包至关重要。由于Wireshark能够捕获大量的网络数据,如果没有合适的过滤...
5. **源码开发**:为了创建自定义过滤器,需要熟悉Wireshark的开发环境,包括其C语言API和过滤器语法。"process_info.c"和"process_info.h"的代码可能涉及注册新的过滤器函数,解析进程信息,并在Wireshark的显示...
### Wireshark过滤规则及使用方法详解 #### 一、Wireshark简介与过滤规则的重要性 Wireshark是一款广泛使用的网络封包分析软件,能够实时捕捉网络封包,并且能够详细展示每一层的协议内容。它支持多种网络协议,如...
在Wireshark中,捕获过滤器是至关重要的功能,它允许用户在数据包捕获过程中过滤不必要的流量,从而提高分析效率。以下是关于捕获过滤器的详细解释: 1. **BPF (Berkeley Packet Filter) 语法**: BPF是用于...
在深入探讨Wireshark语法之前,我们先了解其两大核心过滤器:捕捉过滤器(Capture Filters)和显示过滤器(Display Filters)。 **捕捉过滤器** 主要用于在数据捕获阶段筛选网络流量,以减少不必要的数据量,防止...
1. **设置过滤语法**:在Wireshark的过滤器输入框中输入相应的过滤规则。 2. **应用过滤器**:点击“Apply”按钮,查看筛选后的数据包列表。 3. **截图保存**:对筛选结果进行截图,用于记录实验过程和结果。 ### ...
在实际操作中,通常需要结合Wireshark的显示过滤器语言(Display Filter Language)来构建复杂的过滤表达式,这需要对网络协议和Wireshark的语法有深入理解。 总的来说,理解和熟练使用Wireshark的无线专用过滤器是...
显示过滤器的表达式规则遵循特定的语法规范,包括协议、字符串、比较运算符和逻辑运算符等。 捕获过滤器则是在数据包被Wireshark捕获之前就进行过滤,只捕获符合特定条件的数据包,从而减少不必要的数据处理量。在...
本实验将通过 Wireshark 分析 ARP 协议,掌握 Wireshark 软件简单的过滤语法,了解ARP 的工作原理,并学会利用 Wireshark 抓包分析 ARP 协议。 一、ARP 协议的基本思想 ARP 协议的基本思想是解决同一个局域网上...
在这个“wireshark_winpcap_filter_learning.zip”压缩包中,包含了一份关于WinPCap过滤器和Wireshark过滤表达式的教程,旨在帮助用户深入理解如何高效地使用这两款工具。 `winPcap.chm`是WinPCap的帮助文档,它...
Wireshark是一款强大的网络协议分析器,被广泛用于网络故障排查、网络安全分析和软件开发等领域。...通过熟练掌握其功能和过滤语法,用户可以深入洞察网络通信,提升问题解决效率,保障网络系统的稳定和安全。