wireshark过滤语法总结[通俗易懂]

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

大家好,又见面了,我是你们的朋友全栈君。

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

抓包采用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.comhttp封包。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158499.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • autoconf环境搭建

    autoconf环境搭建curl-Ohttp://mirrors.kernel.org/gnu/m4/m4-latest.tar.gztar-xzvfm4-latest.tar.gzcdm4-latest.tar.gz./configure–prefix=/usr/localmakesudomakeinstallcd..curl-Ohttp://mirrors.kernel

    2022年6月3日
    26
  • 浏览器javascript 下载m3u8视频合成mp4

    浏览器javascript 下载m3u8视频合成mp4m3u8download.jsdownloadm3u8URLtomp4下载m3u8视频合成一个完整的mp4源码:https://github.com/ccjy88/m3u8download.js功能m3u8downloader是在chrome浏览器中运行的html和js,用于下载m3u8视频。当视频链接比如是https://test-streams.mux.dev/x36xh…

    2022年5月3日
    197
  • 记录一次maven JVM 调优

    记录一次maven JVM 调优记录一次mavenJVM调优前言记录一次无(摸)聊(鱼)的GC调优过程,本着学以致用、务实求真的精神,看了《深入理解Java虚拟机》中作者对自己的开发ideeclipse工具做了JVM调优,觉得很有意思。感觉这个确实是可以用自己的知识来提升开发效率,所以就有了这次的玄学调优之旅,文中如果有错误,希望能够指出,非常感谢。优化背景我本人目前有个工作上的项目,编译的时间大概需要30多秒,这次的目标就是从JVM的层面折腾、优化编译速度,那么就开始吧编译时间基准线优化前的编译时间,先

    2022年5月14日
    48
  • sdk e qq(E+)

    1.说明:教程属于官方E聊SDK-简介(1)进入官网进入管理台SDK版本:v1.01技术交流QQ群:4716889372.简介:E聊SDK是一套适用于PC端,移动端的即时通讯解决方案,源代码开放。E聊整合了即时通讯的基础能力,使用E聊,您可以让您的应用快速接入即时聊天的功能。E聊现已适配PCWeb,移动Web,Android,iOS等平台。3.系统架构:3.1各模块介绍E聊服务器:提供了基础的消息转发功能,用户管理、群组管理等功能;E聊管理台:向E聊服务器申请接入

    2022年4月18日
    68
  • Vue刷新当前页面几种方式

    Vue刷新当前页面几种方式问题:最近些日子项目中突然碰到了一个需求,再完成编辑操作之后需要进行页面刷新,通过实验有如下几种姿势可以解决需求中的问题,下面进行简单总结如下。姿势一:this.$router.go(0)这个姿势是利用了history中前进和后退的功能,传入0刷新当前页面。但是有一个问题就是页面整个刷新过程中会白屏,严重影响用户的体验感,效果不好。this.$router.go(0)姿势二:location.reload()这个姿势是利用了直接使用刷新当前页面的方法。但是同样存在有一个问题就是页

    2022年10月16日
    2
  • TK-MyBatis 分页查询「建议收藏」

    TK-MyBatis 分页查询「建议收藏」记tkMybatis查询出一个 List集合该集合已经做好了一层分页Page封装即查询出的list使用类型判断instanceofPage为true但是,中途不明白这是一个带分页的集合,把查询出的结果集又做了一层封装需要返回的对象类型为GoodsCategoryDTO,代码如下:   //商品集合        List<GoodsCategory…

    2022年6月1日
    200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号