5分钟彻底扫除TCP/IP协议学习障碍-wirshark使用详解

在这里插入图片描述

一、wirshark安装

1.安装包下载

二、抓包及抓包过滤器设置

1.wrishark抓包设置

在这里插入图片描述
在这里插入图片描述

2. 捕获过滤器语法:

↑↑↑↑↑↑↑↑点击这里有实例详解↑↑↑↑↑↑↑↑↑↑
Wireshark捕获过滤器是用libpcap过滤语言编写的,这个我们使用的不多,我将有专门一篇博客介绍这个的用法,我们常用的也就过滤ip和端口,下面我们简单的介绍:
语法:
捕获过滤器采用由连词(和/或)连接的一系列基本表达式的形式,可选地在前面加上not
[not] primitive [and|or [not] primitive…]
这个是我们必须要会的

实例 含义
tcp port 23 and host 192.168.0.100 捕获主机和192.168.0.100之间的telnet通信
tcp port 23 and not src host 192.168.0.100 捕获所有源不是192.168.0.100的tcp 23端口流量

——————————————————————————————————————

  • [src|dst] host
    可以筛选主机IP地址或名称。您可以选择在原语之前加上关键字src | dst,以指定您仅对源地址或目标地址感兴趣。如果不存在,则将选择指定地址作为源地址或目标地址出现的数据包。

  • ether [src|dst] host
    允许您过滤以太网主机地址。您可以选择在关键字ether和host之间包含关键字src | dst, 以指定您仅对源地址或目标地址感兴趣。如果不存在,则将选择在源地址或目标地址中出现指定地址的数据包。

  • gateway host
    可以筛选将主机用作网关的数据包。也就是说,以太网源或目标是主机,但源IP和目标IP地址都不是host

  • [src|dst] net [{mask }|{len }]
    过滤网络号,抓取你感兴趣的网络号

  • [tcp|udp] [src|dst] port
    用于筛选TCP和UDP端口号。可以选择在此原语之前加上关键字src | dst和tcp | udp ,可以指定仅对源或目标端口以及TCP或UDP数据包感兴趣。关键字tcp | udp必须出现在src | dst之前。

  • less|greater
    过滤指定长度的数据包

  • ip|ether proto 对以太网协议过滤
    实例

ether proto 0x0806  
抓取以太网的arp报文(ether表示以太网头部,proto表示以太网头部proto字段值为0x0806)
  • ether|ip broadcast|multicast
    允许过滤以太网或IP广播或多播
    ——————————————————————————————————
    这是wrishark给我们的一些直接选用的抓包过滤规则,我们常规使用已经够了,也可以自定义添加
    在这里插入图片描述
    根据上面我们设置完成后 ,我们继续
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三、显示过滤器设置

1.简单比较表达式

英文符号 数学符号 含义 实例
eq == 等于 ip.src==192.168.0.1
ne ! = 不等 ip.src!=192.168.0.1
gt > 大于 frame.len > 20
lt < 小于 frame.len < 128
ge >= 大于等于 frame.len ge 0x100
le <= 小于等于 frame.len <= 0x20
contains 无符号 sip.To contains “a1762”
matches ~ 包含 http.host matches "tianyao.(com
bitwise_and & tcp.flags & 0x02

注意

  • 英文符号和数学符号可以混合使用;
  • 整数都可以使用十进制,八进制或十六进制表达;
  • mac地址可以用 “:” “- ” “.”三种连接符号任意一种表示,如eth.dst == ff-ff-ff-ff-ff-ff
  • ip地址也可以写一段 如显示192.168.1 C类网络中的所有数据包:ip.addr == 192.168.1.0./24
  • IPV6我们也有类似写法:ipv6.addr == ::1

**实例解释说明:**上表看明白的可以忽略忽略

实例 说明
ip.src==192.168.0.1 显示源IP是192.168.0.1
ip.src!=192.168.0.1 不显示源IP是192.168.0.1
frame.len > 20 显示frame长度大于20 的包
frame.len <128 显示frame长度小于128 的包
sip.To contains “a1762” SIP To-header 头部中包含“ a1762”的所有数据包
http.host matches "tianyao.(com site)" 显示http协议host头部包含tianyao.com或者tianyao.site的包
frame.len ge 0x100 显示frame长度大于等于256的包(0x100 ,十六进制,相当于256)
tcp.flags & 0x02 显示包含tcp.flags字段且设置为0x02(SYN位置)的数据包

2.组合表达式

英文符号 数学符号 含义 实例
and && ip.src==10.0.0.5 and tcp.flags.fin
or II ip.scr= =10.0.0.5 or ip.src= =192.1.1.1
xor ^^ 异或 tr.dst[0:3]= =0.6.29 xor tr.src[0:3] = = 0.6.29
not not llc

3.切片运算

在标签后,您可以放置​​一对用逗号分隔的范围说明符列表的方括号[]。
eth.src [0:3] == 00:00:83
使用n:m格式指定单个范围。在这种情况下,n是起始偏移量,m是指定范围的长度。

eth.src [1-2] == 00:83
上面的示例使用nm格式指定单个范围。在这种情况下,n是开始偏移,m是结束偏移。

eth.src [:4] == 00:00:83:00
上面的示例使用:m格式,它采用从序列开头到偏移m的所有内容。相当于0:m

eth.src [4:] == 20:20
上面的示例使用n:格式,该格式包含从偏移量n到序列末尾的所有内容。

eth.src [2] == 83
上面的示例使用n格式指定单个范围。在这种情况下,将选择序列中偏移量为n的元素。这相当于n:1。

eth.src [0:3,1-2,:4,4:,2] ==
00:00:83:00:83:00:00:83:00:20:20:83

注意:
显示过滤器
{80 443 8080}中的tcp.port
相当于
tcp.port = = 80 || tcp.port = = 443 || tcp.port = = 8080
但是,显示过滤器
{443 4430…4434}中的tcp.port
不等于
tcp.port == 443 || (tcp.port> = 4430 && tcp.port <= 4434)
这是因为当任何字段与过滤器匹配时比较运算符都将满足,因此,源端口为56789且目标端口为端口80的数据包也将与第二个过滤器匹配,因为它56789 >= 4430 && 80 <= 4434为true。相反,隶属运算符针对范围条件测试单个字段。

四、预告

进一步讲解wrishark使用,我将使用wrishark分析TCP\IP协议栈。分13篇,更新完成整个TCP/IP协议分析

序号 名称
1 Ethernet协议分析
2 ARP协议分析
3 IP协议分析
4 ICMP协议分析
5 DHCP协议分析
6 DNS协议分析
7 TFTP协议分析
8 TCP协议分析
9 Tlnet协议分析
10 SSH协议分析
11 HTTP协议分析
12 FTP协议分析
13 SMTP协议分析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章