一、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文章来源:https://www.toymoban.com/news/detail-744114.html
过滤多个条件组合时,可以使用逻辑运算符文章来源地址https://www.toymoban.com/news/detail-744114.html
ip.addr == 192.168.1.104 and icmp #显示 IP 地址为 192.168.1.104 的 ICMP 数据包表达式为
到了这里,关于Wireshark网络封包分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!