wireshark过滤规则及使用方法腾讯云开发者社区

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

Wireshark 基本语法,基本使用方法,及包过滤规则:

例子:

或者

Linux上运行的wireshark图形窗口截图示例,其他过虑规则操作类似,不再截图。

截图示例:

提示: 在Filter编辑框中,收入过虑规则时,如果语法有误,框会显红色,如正确,会是绿色。

例子:

过滤端口范围

例子:

tcp

udp

arp

icmp

smtp

ftp

dns

msnms

ip

ssl

oicq

bootp

等等

排除arp包,如!arp 或者 not arp

太以网头过滤

less than 小于 < lt

小于等于 le

等于 eq

大于 gt

大于等于 ge

不等 ne

例子:

eth —> ip or arp —> tcp or udp —> data

例子:

// GET包

// POST包

// 响应包

一定包含如下

Content-Type:

———————————————–

tcp[20]表示从20开始,取1个字符

tcp[20:]表示从20开始,取1个字符以上

注: 些两虚线中的内容在我的wireshark(linux)上测试未通过。

————————————————–

tcp[20:8]表示从20开始,取8个字符

tcp[offset,n]

udp[8:3]==81:60:03 // 偏移8个bytes,再取3个数,是否与==后面的数据相等?

udp[8:1]==32 如果我猜的没有错的话,应该是udp[offset:截取个数]=nValue

例子:

判断upd下面那块数据包前三个是否等于0x20 0x21 0x22

我们都知道udp固定长度为8

udp[8:3]==20:21:22

判断tcp那块数据包前三个是否等于0x20 0x21 0x22

tcp一般情况下,长度为20,但也有不是20的时候

tcp[8:3]==20:21:22

如果想得到最准确的,应该先知道tcp长度

matches(匹配)和contains(包含某字符串)语法

udp contains 7c:7c:7d:7d 匹配payload中含有0x7c7c7d7d的UDP数据包,不一定是从第一字节匹配。

————————————–不理解Begin————————————————————————————

例子:

得到本地qq登陆数据包(判断条件是第一个包==0x02,第四和第五个包等于0x00x22,最后一个包等于0x03)

0x02 xx xx 0x00 0x22 … 0x03

如何拼写过虑条件???

udp[11:2]==00:00 表示命令编号为00:00

udp[11:2]==00:80 表示命令编号为00:80

得到msn登陆成功账号(判断条件是”USR 7 OK “,即前三个等于USR,再通过两个0x20,就到OK,OK后面是一个字符0x20,后面就是mail了)

正确

————————————-不理解End–————————————————————————————-

注意:DHCP协议的检索规则不是dhcp/DHCP, 而是bootp

以寻找伪造DHCP服务器为例,介绍Wireshark的用法。在显示过滤器中加入过滤规则,

msnms && tcp[23:1] == 20 // 第四个是0x20的msn数据包

msnms && tcp[20:1] >= 41 && tcp[20:1] <= 5A && tcp[21:1] >= 41 && tcp[21:1] <= 5A && tcp[22:1] >= 41 && tcp[22:1] <= 5A

msnms && tcp[20:3]==”USR” // 找到命令编码是USR的数据包

msnms && tcp[20:3]==”MSG” // 找到命令编码是MSG的数据包

如何判断数据包是含有命令编码的MSN数据包?

2)数据这段前三个是大写字母,如:

tcp[20:1] >= 41 && tcp[20:1] <= 5A && tcp[21:1] >= 41 && tcp[21:1] <= 5A && tcp[22:1] >= 41 && tcp[22:1] <= 5A

3)第四个为0x20,如:tcp[23:1] == 20

4)msn是属于TCP协议的,如tcp

MSN Messenger 协议分析

MSN 协议分析

更详细的说明

<<wireshark过滤表达式实例介绍>>

Wireshark 主界面的操作菜单中英对比

类似正则表达式的规则。

1、wireshark基本的语法字符

\d 0-9的数字

\D \d的补集(以所以字符为全集,下同),即所有非数字的字符

\w 单词字符,指大小写字母、0-9的数字、下划线

\W \w的补集

\s 空白字符,包括换行符\n、回车符\r、制表符\t、垂直制表符\v、换页符\f

\S \s的补集

. 除换行符\n外的任意字符。 在Perl中,“.”可以匹配新行符的模式被称作“单行模式”

.* 匹配任意文本,不包括回车(\n)? 。 而,[0x00-0xff]* 匹配任意文本,包括\n

[…] 匹配[]内所列出的所有字符

[^…] 匹配非[]内所列出的字符

—————————————————————————————-

2、定位字符 所代表的是一个虚的字符,它代表一个位置,你也可以直观地认为“定位字符”所代表的是某个字符与字符间的那个微小间隙。

^ 表示其后的字符必须位于字符串的开始处

$ 表示其前面的字符必须位于字符串的结束处

\b 匹配一个单词的边界

\B 匹配一个非单词的边界

—————————————————————————————-

3、重复描述字符

{n} 匹配前面的字符n次

{n,} 匹配前面的字符n次或多于n次

{n,m} 匹配前面的字符n到m次

? 匹配前面的字符0或1次

+ 匹配前面的字符1次或多于1次

* 匹配前面的字符0次或式于0次

—————————————————————————————-

4、and or 匹配

and 符号 并

or 符号 或

例如:

tcp or udp

—————————————————————————————-

5、wireshark过滤匹配表达式实例

5.1、搜索按条件过滤udp的数据段payload(数字8是表示udp头部有8个字节,数据部分从第9个字节开始udp[8:])

udp[8]==14 (14是十六进制0x14)匹配payload第一个字节0x14的UDP数据包

udp[8:2]==14:05 可以udp[8:2]==1405,且只支持2个字节连续,三个以上须使用冒号:分隔表示十六进制。 (相当于 udp[8]==14 and udp[9]==05,1405是0x1405)

udp[8:3]==22:00:f7 但是不可以udp[8:3]==2200f7

udp[8:4]==00:04:00:2a,匹配payload的前4个字节0x0004002a

而udp contains 7c:7c:7d:7d 匹配payload中含有0x7c7c7d7d的UDP数据包,不一定是从第一字节匹配。

udp[8:4] matches “\\x14\\x05\\x07\\x18″

udp[8:] matches “^\\x14\\x05\\x07\\x18\\x14″

5.2、搜索按条件过滤tcp的数据段payload(数字20是表示tcp头部有20个字节,数据部分从第21个字节开始tcp[20:])

tcp[20:] matches “^GET [ -~]*HTTP/1.1\\x0d\\x0a”

tcp[20:] matches “^GET (.*?)HTTP/1.1\\x0d\\x0a”

tcp[20:] matches “^GET (.*?)HTTP/1.1\\x0d\\x0a[\\x00-\\xff]*Host: (.*?)pplive(.*?)\\x0d\\x0a”

tcp[20:] matches “^GET (.*?)HTTP/1.1\\x0d\\x0a[\\x00-\\xff]*Host: “

tcp[20:] matches “^POST / HTTP/1.1\\x0d\\x0a[\\x00-\\xff]*\\x0d\\x0aConnection: Keep-Alive\\x0d\\x0a\\x0d\\x0a”

检测SMB头的smb标记,指明smb标记从tcp头部第24byte的位置开始匹配。

tcp[24:4] == ff:53:4d:42

检测SMB头的smb标记,tcp的数据包含十六进制ff:53:4d:42,从tcp头部开始搜索此数据。

tcp contains ff:53:4d:42

tcp matches “\\xff\\x53\\x4d\\x42″

检测tcp含有十六进制01:bd,从tcp头部开始搜索此数据。

tcp matches “\\x01\\xbd”

检测MS08067的RPC请求路径

tcp[179:13] == 00:5c:00:2e:00:2e:00:5c:00:2e:00:2e:00

THE END
0.巧记标点符号的用法二、标点符号使用方法名称符号用法说明 句号 1、用于陈述句的末尾。例如,北京是中华人民共和国的首都。 2、用于语气舒缓的祈使句末尾。例如,请您稍等一下。 问号 1、用于疑问句的末尾。例如,他叫什么名字? 2、用于反问句的末尾。例如,难道你不了解我吗? jvzquC41yy}/onnrkct/ew49r4mgh<
1.电脑上冒号怎么打使用电脑打冒号方法详解电脑上冒号怎么打,如何使用电脑打冒号,接下来由IT百科小编为您详细介绍。 1、通过按下键盘的“Shift+冒号”键,打出冒号。 2、以搜狗输入法为例,在中文状况下,直接打出冒号的拼音,弹出的选项当选择冒号便可。 3、以搜狗输入法为例,鼠标右键单击搜狗输入法的“键盘”图标,弹出的菜单选择“标点符号”,之后弹出的jvzquC41i0vdqwqkpg4dqv3ep1~03?9413<54@7880nuou
2.Java中Lambada表达式中双冒号::使用总结java两个冒号Java 中Lambada表达式中双冒号 ::使用总结 本文介绍了Java8中引入的双冒号运算符(::)作为方法引用的特性,展示了如何使用它简化代码并引用静态方法、实例方法、构造方法和数组构造。同时,强调了方法引用仅适用于函数式接口,并提供了多个使用场景的示例。 一、前言 双冒号运算操作符是类方法的句柄,lambda表达式的一种简写 表达式jvzquC41dnuh0lxfp0tfv8PgxktDjns423?0c{ykenk0fnyckny03<=445;22
3.8种方法来正确使用英文标点方法4 正确使用冒号与分号 下载PDF文件 1 在连接两个相互独立又相互关联的分句时使用分号。使用分号的方法与句号类似,又有些许差异。分号用于两个相对简单且独立的分句之间,注意,如果这两个分句字数较多且成分复杂,还是应该使用句点(句号)。 以下是正确使用分号的范例: People continue to worry about the futurejvzquC41|j4xktnjqy4dqv4'G8+BF.F5'G=&C:*CG'K5'KI'DH+F9.>6'C>&GA*:D'H2'N;';8+99.J8'C6&:@*G9'>3'K>
4.小学语文标点符号的使用方法标点符号虽小,却是语文学习的“隐形地基”——用对了能让句子通顺流畅、表意清晰,用错了则可能让意思完全跑偏。今天就结合小学语文课本重点和常见错误案例,带大家系统掌握标点符号的使用方法,帮孩子打好语文基础。 一、先搞懂:为什么标点符号比想象中重要?jvzquC41yy}/srszwg9777hqo1lbppkc16:6:<<0jvsm
5.Python格式化输出字符串(输出字符串+数字的几种方法)2.2.2.2 位数与进制转换(注意不要忽略冒号) 2.3 f-string格式化 3. 参考 1. 介绍 字符串格式化输出是python非常重要的基础语法。 格式化输出:内容按照一定格式要求进行输出。 2. 方法 2.1 使用占位符%输出 python2.6版本之前,使用%格式化字符串沿用的是C语言的输出格式。 jvzquC41dnuh0lxfp0tfv8vsa774;;6341gsvrhng1jfvjnnu173;;=972=
6.小学语文标点符号使用方法大全小学语文标点符号使用方法大全 摘要:本文专为小学生家长和语文老师打造,系统梳理了小学阶段必须掌握的12种标点符号用法。从基础的句号、逗号到易错的引号、破折号,每个标点都配备"用法口诀+错误案例+正确示范",并结合语文课本实例和家庭辅导场景,帮孩子彻底搞懂标点符号的"脾气"。文末还附赠3个趣味练习方法,让标点学习告jvzquC41yy}/srszwg9777hqo1lbppkc16957?=0jvsm
7.公文写作中这些标点,你用对了吗?附件说明是为了说明公文带有附件时,公文附件的顺序号和对应的名称。常见的错误用法有以下两种:一是“附件”二字后没有使用冒号(全角字符),如“附件1.×××”,应改为“附件:1.×××”。二是附件名称后使用标点符号,如“附件:2.×××;”。附件名称后不标注标点符号,应改为“附件:2.×××”。 jvzquC41yy}/3;8930io1;5441641:61CTZJ3?98;7:85;59;7:30|mvon