wireshark过滤语法总结

做应用识别这一块常常要相应用产生的数据流量进行分析。

抓包採用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的TCPport号在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” 作为keyword。

”host 10.2.2.2″与”src or dst host 10.2.2.2″等价。

Host(s):

可能值: net, port, host, portrange.

默认使用”host”keyword,”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 显示来源或目的TCPport号为25的封包。
tcp.dstport == 25 显示目的TCPport号为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 uppercase
lower(string-field) - converts a string field to lowercase

演示样例

upper(http.request.uri) contains "ONLINE"

wireshark过滤支持比較运算符、逻辑运算符,内容过滤时还能使用位运算。

假设过滤器的语法是正确的,表达式的背景呈绿色。假设呈红色,说明表达式有误。

參考:

wireshark的HELP-Manual Pages-Wireshark Filter

http://blog.csdn.net/yhwxxx/article/details/5643095

http://tieba.baidu.com/p/739516717

时间: 2024-12-26 00:37:00

wireshark过滤语法总结的相关文章

(转)wireshark过滤语法总结

做应用识别这一块经常要对应用产生的数据流量进行分析. 抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后参考.(脑子记不住东西) wireshark进行过滤时,按照过滤的语法可分为协议过滤和内容过滤. 对标准协议,既支持粗粒度的过滤如HTTP,也支持细粒度的.依据协议属性值进行的过滤如tcp.port==53.http.request.method=="GET". 对内容的过滤,既支持深度的

WireShark 过滤语法

1. 过滤IP,如来源IP或者目标IP等于某个IP 例子: ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107 或者 ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP 2. 过滤端口 例子: tcp.port eq 80 // 不管端口是来源的还是目标的都显示 tcp.port == 80 tcp.port eq 2722 tcp.port eq 80 or udp.port eq 80 tcp.dstport

WireShark过滤语法

1.过 滤IP,如来源IP或者目标IP等于某个IP 例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP 2.过滤端 口 例子:tcp.port eq 80 // 不管端口是来源的还是目标的都显示tcp.port == 80tcp.port eq 2722tcp.port eq 80 or udp.port eq 80tcp.dstport == 80 //

转: wireshark过滤规则

转: http://blog.sina.com.cn/s/blog_48a0f2740100ka71.html WireShark过滤语法 1.过 滤IP,如来源IP或者目标IP等于某个IP 例子: ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107 或者 ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP 2.过滤端 口 例子: tcp.port eq 80 // 不管端口是来源的还是目标的都显示 tcp.por

wireshark过滤规则

WireShark过滤语法 1.过 滤IP,如来源IP或者目标IP等于某个IP 例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP 2.过滤端 口 例子:tcp.port eq 80 // 不管端口是来源的还是目标的都显示tcp.port == 80tcp.port eq 2722tcp.port eq 80 or udp.port eq 80tcp.ds

【转】wireshark过滤规则

WireShark过滤语法 1.过滤IP,如来源IP或者目标IP等于某个IP 例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1.107 // 都能显示来源IP和目标IP 2.过滤端 口 例子:tcp.port eq 80 // 不管端口是来源的还是目标的都显示tcp.port == 80tcp.port eq 2722tcp.port eq 80 or udp.port eq 80tcp.dst

Wireshark过滤器语法设置

Wireshark过滤器语法设置 1. 抓包过滤器 BPF语法(Berkeley Packet Filter)--基于libpcap/wincap库,在抓包的过程中过滤掉某些类型的协议,不抓取过滤掉的协议.(建议在流量特别大的情况下使用) 1.1 语法说明 类型Type: host.net.port 方向Dir: src.dst 协议Proto: ether.ip.tcp.udp.http.ftp 逻辑运算符: &&与.||或.!非 1.2 例子 src host 192.168.1.1

【协议分析】Wireshark 过滤表达式实例

Wireshark 过滤表达式实例 1.wireshark基本的语法 字符 \d          0-9的数字 \D          \d的补集(以所以字符为全集,下同),即所有非数字的字符 \w          单词字符,指大小写字母.0-9的数字.下划线 \W          \w的补集 \s          空白字符,包括换行符\n.回车符\r.制表符\t.垂直制表符\v.换页符\f \S          \s的补集 .  除换行符\n外的任意字符. 在Perl中, ".&qu

Wireshark过滤(转)

1.过滤语法(显式过滤器): 也可以点击Analyze菜单并选择Display Filters来创建新的过滤条件. Wireshark实际上提供了便捷的UI操作帮助我们来书写Display Filter,在Display Filter输入框的最右边有个Expression按钮,点击之后可以弹出如下界面: Display Filter的语法本质上是个等是关系描述,我们可以在search当中输入我们感兴趣的协议比如http,再在展开的协议头里选择我们的条件比如 http.host,最后设置Relat