Wireshark的命令太多,做个笔记
TCP三次握手协议
第一次握手:客户端的应用程序主动打开,并向服务端发出请求报文段。其首部中SYN=1,seq=x。
第二次握手:服务器应用被动打开。若同意客户端的请求,则发回确认报文。其首部中:SYN=1,ACK=1,ack=x+1,seq=y。
第三次握手:客户端收到确认报文之后,通知上层应用进程已建立,并向服务器发出确认报文。其首部ACK=1,ack=y+1。
运算符
比较运算符
英文写法 | C语言写法 | 含义 |
---|---|---|
eq | == | 等于 |
ne | != | 不等于 |
gt | > | 大于 |
lt | < | 小于 |
ge | >= | 大于等于 |
le | <= | 小于等于 |
逻辑运算符
英文写法 | C语言写法 | 含义 |
---|---|---|
and | && | 逻辑与 |
or | | | | 逻辑或 |
xor | ^^ | 逻辑异或 |
not | ! | 逻辑非 |
常用命令
ip.addr == 192.168.1.1 ##只显示源/目的IP为192.168.1.1的数据包
ip.addr == 192.168.1.1 && http.request.method == "GET" ##只显示IP为192.168.1.1的http get数据包
过滤IP地址
ip.addr == 192.168.1.1 ##只显示源/目的IP为192.168.1.1的数据包
ip.src == 192.168.1.1 ##只显示源地址是192.168.1.1的数据包,显示一个网段可以用/16/24
ip.dst == 192.168.1.1 ##只显示目标地址是192.168.1.1的数据包
##注:dst表示过滤目标ip, src表示过滤来源ip, addr则同时过滤两者
not ip.src == 1.1.1.1 ##不显示源IP为1.1.1.1的数据包
ip.src == 1.1.1.1 or ip.dst == 1.1.1.2 ##只显示源IP为1.1.1.1或目的IP为1.1.1.2的数据包
过滤MAC地址
eth.dst == MAC地址 ##过滤目标MAC
eth.src == MAC地址 ##过滤来源MAC
eth.addr == MAC地址 ##过滤来源MAC和目标MAC都等于MAC地址的
过滤端口
tcp.port == 80 ##只显示tcp协议来源和目的端口为80的数据包
tcp.dstport == 80 ##只显示tcp协议的目标端口80
tcp.srcport == 80 ##只显示tcp协议的来源端口80
udp.port == 80 ##只显示udp协议来源和目的端口为80的数据包
tcp.port == 80 or udp.port == 80 ##只显示tcp或udp协议的来源端口80
tcp.port >= 1 and tcp.port <= 80 ##过滤端口范围
http请求方式过滤
http.response == 1 ##http所有的响应包
http.request.method == "GET" ##只显示GET的数据包
http.request.method == "POST" ##只显示POST的数据包
http.response==1 && http.response.code==200 ##响应请求成功的包
http.host == "www.baidu.com" ##只显示百度的数据包
http.host mathes "www.baidu.com|baidu.cn" ##matches可以写多个域名
http.host contains "www.baidu.com" ##contain只能写一个域名
##注:contains和matches,contains过滤包含指定字符串的数据包,matches用于匹配过滤条件中给定的正则表达式
http.request.method ==“GET” && http contains "Host: "
http.request.method == “GET” && http contains "User-Agent: "
http.request.method ==“POST” && http contains "Host: "
http.request.method == “POST” && http contains "User-Agent: "
http contains “HTTP/1.1 200 OK” && http contains "Content-Type: "
http contains “HTTP/1.0 200 OK” && http contains "Content-Type: "