Wireshark网络封包分析

一、Wireshark简介

Wireshark是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口(现在普遍使用的是Npcap),直接与网卡进行数据报文交换。

Npcap是一个网络数据包抓包工具,是WinPcap的改进版;它支持NDIS6技术、“只允许管理员Administrator”访问Npcap、与WinPcap兼容或并存两种模式;支持Windows平台的回环数据包采集和发送。

二、Wireshrk抓包模式

1、以太网卡的工作模式

以太网卡在正常情况下只接收单播包(MAC 地址与自己相匹配的数据帧),广播包,属于自己的组播包。网卡完成收发数据包的两种工作模式:

  • 混杂模式:不管数据帧中的目的地址是否与自己的地址匹配,都接收下来
  • 非混杂模式:只接收目的地址相匹配的数据帧,以及广播数据包和组播数据包

2、单播、组播、广播的概念

  • 单播:是在一个单个的发送者和一个接受者之间通过网络进行的通信
  • 组播:它允许把所发消息传送给所有可能目的地中的一个经过选择的子集,即向明确指出的多种地址输送信息
  • 广播:在网络中只有一个单一的通信信道,由这个网络中所有的主机所共享

三、Wireshark的简单使用

介绍一个使用Wireshark工具抓取ping命令操作的示例

1、打开Wireshark 4.0.3,主界面如下:

2、选择想要抓取数据的网卡,勾选WLAN网卡(这里需要根据各自电脑网卡使用情况选择)。点击开始,启动抓包

3、Wireshark启动后,Wireshark处于抓包状态中

 4、执行需要抓包的操作,如在cmd窗口下执行ping www.baidu.com

 5、操作完成后相关数据包就抓取到了。为避免其他无用的数据包影响分析,可以通过在过滤栏设置过滤条件进行数据包列表过滤,获取结果如下。

说明:ip.addr == 14.119.104.189 and icmp

表示只显示ICPM协议且源主机IP或者目的主机IP为14.119.104.189的数据包(协议名称icmp要小写)

数据包列表区中不同的协议使用了不同的颜色区分

四、Wireshark分析常用操作

1、调整数据包列表中时间戳显示格式。调整方法为视图 -->时间显示格式

2、添加显示列

想要在数据列表中显示某一个字段,可以将这个数据字段添加至显示列中。左键选中想要添加为列的字段,右键选择“应用为列”

五、Wireshark界面功能介绍

Wireshark 的主界面包含6个部分:

  • 菜单栏:用于调试、配置
  • 数据包字节:数据包对应的字节流,二进制
  • 数据包详情:数据包的详细数据
  • 数据包列表:核心区域,每一行就是一个数据包
  • 显示过滤器:指定过滤条件,过滤数据包
  • 工具栏:常用功能的快捷方式

  • 显示过滤器:用于设置过滤条件进行数据包列表过滤

  • 数据包列表:显示捕获到的数据包,每个数据包包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息

  •  数据包详细信息, 在数据包列表中选择指定数据包,在数据包详细信息中会显示数据包的所有详细信息内容。数据包详细信息面板是最重要的,用来查看协议中的每一个字段。各行信息分别为
  • Frame:物理层的数据帧概况
  • Ethernet II:数据链路层以太网帧头部信息
  • Internet Protocol Version 4:互联网层IP包头部信息
  • Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
  • Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
  • 其中每一层与OSI参考模型的对应关系

  • Wireshark捕获到的TCP包中的每个字段与TCP报文格式的对应关系 

六、Wireshark过滤器使用

我们在捕获数据包时,会面对大量的数据包,可能不能快速找到自己需要的数据包,这个时候就需要使用过滤器来过滤自己需要的数据包。Wireshark中自带两种类型的过滤器,分别是抓包过滤器和显示过滤器

  • 抓包过滤器:就是抓取前设置过滤规则。捕获过滤器是在抓包之前设置一定的规则,在抓包的过程中只抓取符号规则的数据包,用于减少原始数据包捕获的数量。只需要输入过滤语句就可以进行相关过滤抓包
  • 显示过滤器:就是在数据包分析时进行过滤数据使用。通过过滤器可以筛选出想要分析的内容。包括按照协议过滤、端口和主机名过滤、数据包内容过滤

1、抓包过滤器,也称为捕获过滤器

抓包过滤器在抓包前使用,它的过滤有一个基本的语法格式:BPF语法格式

1)、BPF语法

BPF(全称 Berkeley Packet Filter),中文叫伯克利封包过滤器,它有四个核心元素:类型、方向、协议和逻辑运算符。

  • Type(类型):host(主机)、net(网段)、port(端口)
  • Dir(方向):src(源地址)、dst(目标地址)
  • Proto(协议):ether、ip、tcp、udp、http、icmp、ftp等
  • 逻辑运算符:&&(与)、||(或) 、!(非)

2)、协议过滤

直接在抓包过滤框中直接输入协议名即可

3)、IP过滤

dst host 192.168.1.104                #抓取目的 IP 为 192.168.1.104 的数据包
src host 192.168.31.1                 #抓取源 IP 为 192.168.31.1 的数据包
host 49.69.160.56                     #捕获 IP 地址为 49.69.160.56 的数据包

4)、端口过滤

port 53                               #仅捕获 DNS(端口53)的数据包
src port 80                           #仅捕获 源端口为 80 的数据包
dst port 80                           #仅捕获 目的端口为 80 的数据包
src portange 2000-2500                #捕捉来源为 UDP 或 TCP,且端口范围在 2000-2500 范围内的数据包

5)、逻辑运算符:&&(与)、||(或)、!(非)

ip host 60.207.246.216 && icmp        #捕获主机 IP 地址为 60.207.246.216 的 ICMP 数据包
tcp || udp                            #抓取 TCP 或者 UDP 协议的数据包
src host 49.69.160.56 && port 443     #抓取所有源 IP 为 49.69.160.56 并且与 443 端口有关的数据包
!brocast                              #不抓取广播包

2、显示过滤器

显示过滤器是在抓包开始之后设置的规则,用于查看符合规则的数据包

1)、语法结构

显示过滤器的语法包含五个核心元素:IP、端口、协议、比较运算符和逻辑运算符。

  • IP地址:ip.addr、ip.src、ip.dst
  • MAC过滤:eth.src、eth.dst
  • 端口:tcp.port、tcp.srcport、tcp.dstport、tcp.flag.syn、tcp.flag.ack
  • 协议:tcp、udp、http、icmp等
  • 比较运算符:>、<、==、>=、<=、!=
  • 逻辑运算符:and(两个条件同时满足)、or(其中一个条件被满足)、not(没有条件被满足)、xor(有且仅有一个条件被满足)

2)、协议过滤

直接在Filter框中直接输入协议名即可。注意:协议名称需要输入小写。

3)、端口过滤

tcp.port == 80               #显示 TCP 协议源端口或者目的端口为 80 的数据包
tcp.srcport == 80            #显示 TCP 协议的源主机端口为 80 的数据包
tcp.dstport == 80            #显示 TCP 协议的目的主机端口为 80 的数据包
udp.port eq 4569             #显示来源或目的UDP端口号为4569的封包
tcp.dstport == 25            #显示目的TCP端口号为25的封包
tcp.flags                    #显示带有TCP标志的封包
tcp.flags.syn eq Ox02        #显示带有TCP SYN标志的封包

4)、 IP过滤

ip.src == 192.168.1.104       #显示源 IP 地址为 192.168.1.104 的数据包
ip.dst == 192.168.1.104       #显示目的 IP 地址为 192.168.1.104 的数据包列表
ip.addr == 192.168.1.104      #显示源 IP 地址或目的 IP 地址为 192.168.1.104 的数据包

5)、Http模式过滤

http.request.method=="GET"    #只显示HTTP GET方法的数据包

6)、逻辑运算符为 :and / or / not

过滤多个条件组合时,可以使用逻辑运算符

ip.addr == 192.168.1.104 and icmp    #显示 IP 地址为 192.168.1.104 的 ICMP 数据包表达式为
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值