Wireshark零基础入门到实战(一)基础篇

阅读: 评论:0

Wireshark零基础入门到实战(一)基础篇

Wireshark零基础入门到实战(一)基础篇

文章目录

    • 1 认识Wireshark的界面
      • 1.1 初识Wireshark
      • 1.2 过滤器
    • 2 Wireshark的图形显示
      • 2.1 查看发包速度:I/O图表
      • 2.2 查看TCP往返时间
      • 2.3 数据流图:统计 -> 流量图
    • 3 Wireshark的高级特性
      • 3.1 手动修改协议类型
      • 3.2 跟踪TCP流
      • 3.3 统计数据包长度
      • 3.4 专家信息
    • 4 Wireshark的命令行模式

1 认识Wireshark的界面

1.1 初识Wireshark

这里我使用WLAN抓包如下所示:

我们以一个http协议为例,分析每一层字段的含义,首先是物理层

然后是数据链路层和网络层

下面来看传输层TCP各字段的含义

1.2 过滤器

一次捕获的数据包有很多,通过添加过滤器可以快速筛选出我们想要的包。过滤器分为捕捉过滤器(CaptureFilters)和显示过滤器(DisplayFilters)。

捕获过滤器

捕获过滤器在wireshark开始捕获数据包之前,只捕获符合条件的数据包,不记录不符合条件的数据包。

捕获过滤器语法:

ProtocalDirectionHost(s)ValueLogical OperationsOther Expression
tcpdst10.1.1.180andtcp dst 10.1.1.1 3289
  • Protocol(协议)
    可能的值: ether, fddi, ip, arp, rarp, decnet, tcp and udp等。如果没有特别指明是什么协议,则默认使用所有支持的协议

  • 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)"不同。

捕获过滤器例子
显示目的TCP端口为3128的包

tcp dst port 3128

显示来源IP地址为10.1.1.1的包

ip src host 10.1.1.1

显示目的或来源IP地址为10.1.2.3的包

host 10.1.2.3

显示来源为UDP或TCP,并且端口号在2000至2500范围内的包

src portrange 2000-2500

显示除了icmp以外的所有包

not icmp

显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的包

src host 10.7.2.12 and not dst net 10.200.0.0/16

显示源IP为10.4.1.12或源网络为10.6.0.0/16,目的TCP 端口号在200至10000之间,并且目的位于网络 10.0.0.0/8内所有包

(src host 10.4.1.12 or scr net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8

捕获广播流量

broadcast

显示过滤器

显示过滤器在wireshark捕获数据包之后,从已捕获的所有数据包中显示出符合条件的数据包,隐藏不符合条件的数据包。
显示过滤表达示在工具栏下方的“显示过滤器”输入框输入即可生效

Protocal.String1.String1Comparison OperatorValueLogical OperationsOther Expression
tcp.passive.ip==80xor
  • Protocol(协议)
    位于OSI模型第2至7层的协议,如:IP、TCP、DNS等

  • String1,String2(可选项)
    协议的子类

  • Comparison Operator(比较运算符)
    可以使用6种比较运算符

    英文写法C语言写法含义
    eq==等于
    ne!=不等于
    gt>大于
    lt<小于
    ge>=大于等于
    le<=小于等于
  • Logical Operations(逻辑运算符)

    英文写法C语言写法含义
    and&&逻辑与
    or||不逻辑或
    xor^^逻辑异或
    not!逻辑非

逻辑异或:当且仅当其中的一个条件满足时,这样的结果才会被显示在屏幕上

显示过滤器例子

显示SNMP或DNS或ICMP封包

snmp || dns || icmp

显示来源或目的IP地址为10.1.1.1的封包

ip.addr == 10.1.1.1

显示来源不为10.1.2.3或目的不为10.4.5.6的包

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6

显示来源或目的TCP端口号为25的封包

tcp.port == 25

显示目的TCP端口号为25的封包

tcp.dstport == 25

显示包含TCP标志的封包

tcp.flags

显示包含TCP SYN标志的封包

tcp.flags.syn == 1

排除arp流量

!arp

文本管理流量(telnet或ftp)

tcp.port == 23 || tcp.port == 21

也可以直接将看到的条件作为筛选器,选中条件右键 -> 作为过滤器 -> 选中

就获得了过滤器:tcp.flags == 0x018

两种过滤器的区别:

捕捉过滤器:用于控制捕捉数据的数量,以避免产生过大的日志文件。
显示过滤器:对捕获结果进行筛选。

2 Wireshark的图形显示

2.1 查看发包速度:I/O图表

统计 -> I/O 图表可以统计发包速度与时间的关系

统计结果如下,横坐标是时间,纵坐标是接收包的速率,我这里展示了三种包速率图。分别是所有的包,长度小于150的包,超时重传的包。

可以使用线,点,柱状等样式表示,可以设置不同的颜色,便于查看。

根据需要设置筛选器,查看需要分析的包,如:

tcp.analysis.flags && !tcp.analysis.window_update:tcp有问题的数据包,但是不包括窗口更新的数据包
tcp.analysis.duplicate_ack:重发的确认包
tcp.analysis.lost_segment:丢失的数据包
ansmission :重传的数据包

2.2 查看TCP往返时间

统计 -> TCP流图形 -> 吞吐量

图中点击点可以直接找对对应的包。可以看到往返时间都在0.05s以内。

2.3 数据流图:统计 -> 流量图

可以清楚了看到两个主机沟通,比如tcp三次握手,http请求下发,tcp连接断开等。

3 Wireshark的高级特性

3.1 手动修改协议类型

我们抓的包Wireshark都会帮助我们识别是什么协议,如果手动分析发现协议识别错了(比较少见),也可以手动修改协议类型,选中识别错误的包,右键 -> Decode As… 就可以手动修改了

3.2 跟踪TCP流

选择一个数据包,右键 -> 跟踪流 -> TCP 流,可以跟踪一个TCP的

可以看到这是一个GET请求,通过跟踪TCP流可以看到两个主机之间这个TCP连接做了什么。

3.3 统计数据包长度

统计 -> 分组长度

长度在 1280-2559 之间的数据包属于较长的数据包,一般用于传输数据,长度较小的数据包一般用于保持协议的控制序列。40-79长度的一般是用于tcp控制的数据包。

3.4 专家信息

分析 -> 专家信息

这里分为四类信息,含义如下:

  • Error:数据包里面,或者解析器解析出现的错误
  • Warning:不正常通讯中的异常数据包
  • Note:正常通讯中的异常数据包
  • Chat:网络通讯的基本信息

常见的信息含义如下:

  • Previous segment(s) not captured (common at capture start):数据包丢失,期望的数据包被跳过的时候,警告会出现。

  • This frame is a (suspected) out-of-order segment:接收的数据包没有按顺序出现

  • Duplicate ACK (#1):没有收到期望的序号,发送的重复的ACK

  • This frame is a (suspected) fast retransmission:数据包出现了丢失的情况,出现收到了重复的ACK,或者重传计时器超时,数据重传了。

4 Wireshark的命令行模式

除了图形界面,也可以使用命令行模式,安装目录下 表示命令, tshark.html 是对命令行用法的解释。

这里只开个头,知道有命令行的用法,用到的时候再学习。

读取文件,过滤GET信息

< -r D:learn抓包http.pcapng  | grep GET

统计信息

< D:learn抓包http.pcapng

指定筛选器进行筛选

< -r D:learn抓包1.pcapng -Y "ip.addr=="113.219.230.80" # -r表示读取文件

统计重传信息

< -n -q -r D:learn抓包1.pcapng  -z "io,stat,0,ansmission"

学完了基础篇,下一篇,我们学习Wireshark零基础入门到实战(二)协议篇

本文发布于:2024-01-29 07:14:41,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170648368413606.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:基础   实战   入门   Wireshark
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23