当前位置: 首页 > news >正文

Wireshark 学习笔记(二)

Wireshark 学习笔记 (二)

数据包操作

统计|摘要

统计

此菜单提供多种统计选项,可供调查,帮助用户了解流量范围、可用协议、端点和会话等宏观情况,以及一些特定协议的详细信息,如 DHCP、DNS 和 HTTP/2。

解析地址

此选项通过提供解析地址及其主机名的列表,帮助分析师识别捕获文件中可用的 IP 地址和 DNS 名称。请注意,主机名信息来自捕获文件中的 DNS 应答。
Wireshark - resolved addresses

协议分级

此选项将捕获文件中的所有可用协议分解,并帮助分析师根据数据包计数和百分比以树状视图查看协议。因此,分析师可以查看端口和服务的整体使用情况,并专注于感兴趣的事件。
Wireshark - protocol hierarchy

会话

对话表示两个特定端点之间的流量。此选项提供五种基本格式的对话列表;以太网、IPv4、IPv6、TCP 和 UDP。因此,分析师可以识别所有对话和事件中感兴趣的接触端点。 您可以使用 "统计 --> 对话" 菜单查看此信息。

Wireshark - conversations

端点

端点选项与会话选项类似。唯一的区别是此选项为单个信息字段(以太网、IPv4、IPv6、TCP 和 UDP)提供唯一信息。因此,分析师可以在捕获文件中识别唯一的端点,并将其用于感兴趣的事件。 您可以使用 "统计 --> 端点" 菜单查看此信息。

Wireshark 还支持将 MAC 地址解析为人类可读格式,使用 IEEE 分配的制造商名称。请注意,此转换通过 MAC 地址的前三个字节完成,并且仅适用于已知的制造商。在查看以太网端点时,您可以通过端点窗口左下角的 "名称解析" 按钮激活此选项。

Wireshark - endpoints

名称解析不仅限于 MAC 地址。Wireshark 还提供了 IP 和端口号名称解析选项。然而,这些选项默认情况下是禁用的。如果您想使用这些功能,需要通过"编辑 --> 首选项 --> 名称解析"菜单来启用它们。一旦您启用了 IP 和端口号名称解析,您将在数据包列表窗格中看到解析的 IP 地址和端口号,同时也能够在"会话"和"端点"菜单中查看解析的名称。

Wireshark - name resolution settings

端点菜单视图,包含名称解析:

Wireshark - name resolution view

除了名称解析外,Wireshark 还提供 IP 地理位置映射功能,帮助分析师识别源地址和目标地址。但此功能默认未启用,需要补充数据,如 GeoIP 数据库。目前,Wireshark 支持 MaxMind 数据库,最新版本的 Wireshark 已配置 MaxMind DB 解析器。然而,您仍需要 MaxMind DB 文件,并通过 "编辑 --> 首选项 --> 名称解析 --> MaxMind 数据库目录" 菜单向 Wireshark 提供数据库路径。下载并指定路径后,Wireshark 将自动在匹配的 IP 地址的 IP 协议详细信息下提供 GeoIP 信息。.

Wireshark - geoip details

端点与地理位置视图。

Wireshark - geoip map view

统计|协议详情

IPv4和IPv6

到目前为止,几乎所有选项都提供了包含两个版本 IP 地址的信息。统计菜单有两个选项用于缩小包含特定 IP 版本的统计信息。因此,分析师可以在单个窗口中识别并列出与特定 IP 版本相关联的所有事件,并使用它来查看感兴趣的事件。您可以使用 "统计 --> IPvX 统计" 菜单来查看这些信息。

Wireshark - ipv4 and ipv6 statistics

DNS

此选项将捕获文件中的所有 DNS 数据包分解,并帮助分析师根据数据包计数器和 DNS 协议的百分比在树形视图中查看结果。因此,分析师可以查看 DNS 服务的整体使用情况,包括 rcode、opcode、class、查询类型、服务以及查询统计信息,并使用它来查看感兴趣的事件。您可以使用 "统计 --> DNS" 菜单来查看这些信息。

Wireshark - dns statistics

HTTP

此选项将捕获文件中的所有 HTTP 数据包分解,并帮助分析师根据数据包计数器和 HTTP 协议的百分比以树状视图查看结果。因此,分析师可以查看 HTTP 服务的整体使用情况,包括请求和响应代码以及原始请求。您可以使用“统计 --> HTTP”菜单查看这些信息。

Wireshark - http statistics

数据包过滤|基本原理

数据包过滤

Wireshark 中有两种类型的过滤器。虽然它们使用相似的语法,但用于不同的目的。

捕获过滤器 这种类型的过滤器用于仅保存流量的一部分。它在捕获流量之前设置,并且在捕获过程中不可更改。
显示过滤器 这种类型的过滤器用于通过减少可见数据包的数量来调查数据包,并且在捕获过程中可以更改。

注意: 您不能在捕获流量时使用显示过滤器表达式,反之亦然。

捕获过滤器语法

这些过滤器使用字节偏移、十六进制值和掩码,并结合布尔运算符,初看时不容易理解/预测过滤器的目的。基础语法如下:

  • 范围(Scope): 主机、网络、端口和端口范围。
  • 方向(Direction): 源、目的、源或目的、源和目的,
  • 协议(Protocol): 以太网、无线、IP、IPv6、ARP、RARP、TCP 和 UDP。
  • 捕获端口 80 流量的示例过滤器:tcp port 80

您可以从这里和这里了解更多关于捕获过滤器语法的内容。快速参考可以在 "捕获 --> 捕获过滤器" 菜单下找到。

Wireshark - capture filters

显示过滤器语法

这是 Wireshark 最强大的功能。它支持 3000 种协议,并允许在协议分解下进行数据包级别的搜索。官方的“ 显示过滤器参考 ”提供了所有支持的协议分解,用于过滤。

  • 捕获端口 80 流量的示例过滤器:tcp.port == 80

Wireshark 具有一个内置选项(显示过滤器表达式),用于存储所有支持的协议结构,以帮助分析师创建显示过滤器。我们稍后将介绍“显示过滤器表达式”菜单。现在让我们了解显示过滤器操作的基础知识。快速参考可以在 "分析 --> 显示过滤器" 菜单下找到。

Wireshark - display filters

比较运算符

English C 语言风格 描述 示例
eq == 等于 ip.src == 10.10.10.100
ne != 不相等 ip.src != 10.10.10.100
gt > 大于 ip.ttl > 250
lt < 小于 ip.ttl < 10
ge >= 大于或等于 ip.ttl >= 0xFA
le <= 小于或等于 ip.ttl <= 0xA

注意: Wireshark 在过滤时支持十进制和十六进制值。你可以根据将要进行的搜索使用任何你想要的格式.

逻辑表达式

英文 C 语言风格 描述 示例
adn && 逻辑与 (ip.src == 10.10.10.100) AND (ip.src == 10.10.10.111)
or | 逻辑或 (ip.src == 10.10.10.100) OR (ip.src == 10.10.10.111)
not ! 逻辑非 !(ip.src == 10.10.10.222)注意: 使用 !=value 已不推荐;使用它可能导致结果不一致。建议使用 !(value) 样式以获得更一致的结果。

数据包过滤工具栏

过滤工具栏是您创建和应用显示过滤器的地方。它是一个智能工具栏,可以帮助您轻松创建有效的显示过滤器。在开始过滤数据包之前,这里有一些建议:

  • 数据包过滤器使用小写定义。
  • 数据包过滤器具有自动补全功能,用于分解协议细节,每个细节都由一个“点”表示。
  • 数据包过滤器具有以下的三色表示方法。
绿色 有效的过滤器
红色 无效的过滤器
黄色 警告过滤器。这个过滤器可以工作,但它不可靠,建议用有效的过滤器替换它。

Wireshark - filter colours

Wireshark - toolbar features

数据包过滤|协议过滤器

协议过滤器

Wireshark 支持 3000 种协议,并通过过滤协议字段来允许包级调查。

IP过滤器

IP 过滤器帮助分析师根据数据包的 IP 层信息(OSI 模型的网络层)来过滤流量。这是 Wireshark 中最常用的过滤器之一。这些过滤器会过滤网络级信息,如 IP 地址、版本、生存时间、服务类型、标志和校验和值。

常见的过滤器在给定的表格中显示。

过滤器 描述
ip 显示所有 IP 数据包。
ip.addr == 10.10.10.111 显示包含 IP 地址 10.10.10.111 的所有数据包。
ip.addr == 10.10.10.0/24 显示包含 10.10.10.0/24 子网中 IP 地址的所有数据包。
ip.src == 10.10.10.111 显示所有源自 10.10.10.111 的数据包
ip.dst == 10.10.10.111 显示所有发送到 10.10.10.111 的数据包
ip.addr vs ip.src/ip.dst 注意:ip.addr 过滤流量时不考虑数据包方向,而 ip.src/ip.dst 则根据数据包方向进行过滤。

Wireshark - ip filters

TCP和UDP过滤器

TCP 过滤器帮助分析师根据数据包中的协议级信息(OSI 模型的传输层)来过滤流量。这些过滤器会过滤传输协议级信息,如源端口和目标端口、序列号、确认号、窗口大小、时间戳、标志、长度和协议错误。

过滤器 描述 过滤器 表达式
tcp.port == 80 显示所有端口为 80 的 TCP 数据包 udp.port == 53 显示所有端口为 53 的 UDP 数据包
tcp.srcport == 1234 显示所有从端口 1234 发起的 TCP 数据包 udp.srcport == 1234 显示所有从端口 1234 发起的 UDP 数据包
tcp.dstport == 80 显示所有发送到端口 80 的 TCP 数据包 udp.dstport == 5353 显示所有发送到端口 5353 的 UDP 数据包

Wireshark - tcp and udp filters

应用层协议过滤器|HTTP和DNS

应用层协议过滤器帮助分析师根据数据包中的应用层协议信息(OSI 模型的第 4 层)过滤流量。这些过滤器根据协议类型过滤特定应用信息,如有效载荷和关联数据。

过滤器 描述 过滤器 描述
http 显示所有 HTTP 数据包 dns 显示所有 DNS 数据包
http.response.code == 200 显示所有包含 HTTP 响应码 "200" 的数据包 dns.flags.response == 0 显示所有 DNS 请求
http.request.method == "GET" 显示所有 HTTP GET 请求 dns.flags.response == 1 显示所有 DNS 响应
http.request.method == "POST" 显示所有 HTTP POST 请求 dns.qry.type == 1 显示所有 DNS "A" 记录

Wireshark - http and dns filters

显示过滤器表达式

如前所述,Wireshark 具有内置选项(显示过滤器表达式),用于存储所有支持的协议结构,以帮助分析师创建显示过滤器。当分析师无法回忆特定协议所需的过滤器,或不确定过滤器可分配的值时,显示过滤器表达式菜单提供了一个易于使用的显示过滤器构建指南。它位于“分析 --> 显示过滤器表达式”菜单下。

不可能记住每种协议的显示过滤器所有细节。每种协议可以有不同的字段,并且可以接受各种类型的值。显示过滤器表达式菜单显示了所有协议字段、接受的值类型(整数或字符串)以及预定义值(如果有)。请注意,掌握创建过滤器和学习协议过滤器字段需要时间和练习。

Wireshark - display filter expressions

高级过滤

过滤器:"contains"

过滤器 包含
类型 比较操作符
描述 在数据包中搜索值。它是区分大小写的,并提供与“查找”选项类似的功能,通过专注于特定字段。
示例 查找所有 "Apache" 服务器。
工作流程 列出所有 HTTP 数据包,其中数据包的 "服务器" 字段包含 "Apache" 关键字。
用法 http.server contains "Apache"

Wireshark - contains operator

过滤器:"匹配"

过滤器 matches
类型 比较操作符
描述 搜索正则表达式的模式。它不区分大小写,复杂的查询有误差范围。
示例 查找所有 .php 和 .html 页面。
工作流程 列出所有 HTTP 数据包,其中数据包的 "host" 字段匹配关键词 ".php" 或 ".html"。
使用 `http.host matches ".(php

Wireshark - matches operator

过滤器:"in"

过滤器 in
类型 设置成员资格
描述 在特定范围/范围内搜索某个值或字段。
示例 查找所有使用端口 80、443 或 8080 的数据包。
工作流程 列出所有 TCP 数据包,其中数据包的 "端口" 字段值为 80、443 或 8080。
使用 tcp.port in {80 443 8080}

Wireshark - in operator

过滤器:"upper"

过滤器 大写
类型 函数
描述 将字符串值转换为大写。
示例 查找所有 "APACHE" 服务器。
工作流程 将所有 HTTP 数据包的"服务器"字段转换为大写,并列出包含"APACHE"关键字的数据包。
使用 upper(http.server) contains "APACHE"

Wireshark - upper operator

过滤器:"lower"

过滤器 小写
类型 函数
描述 将字符串值转换为小写。
示例 查找所有 "apache" 服务器。
工作流程 将所有 HTTP 数据包的"服务器"字段信息转换为小写,并列出包含"apache"关键字的数据包。
使用 lower(http.server) contains "apache"

Wireshark - lower operator

过滤器:"string"

过滤器 字符串
类型 函数
描述 将非字符串值转换为字符串。
示例 查找所有奇数编号的帧。
工作流程 将所有“帧编号”字段转换为字符串值,并列出奇数编号的帧。
使用 string(frame.number) matches "[13579]$"

Wireshark - string operator

书签和过滤按钮

过滤器工具栏有一个过滤器书签部分,用于保存用户创建的过滤器,这有助于分析师通过几次点击重新使用喜欢的/复杂的过滤器。与书签类似,您可以创建过滤器按钮,只需单击一次即可应用。

创建和使用书签。

Wireshark - bookmarks and filtering buttons

创建和使用显示过滤器按钮。

Wireshark - creating a filter button

个人资料

Wireshark 是一款多功能工具,帮助分析师进行深入的数据包分析。正如我们在会议室中所讨论的,要分析特定感兴趣的事件,需要配置多个选项。每次调查案例都需要重新更改配置,这需要不同的着色规则和过滤按钮。这就是 Wireshark 配置文件发挥作用的地方。您可以为不同的调查案例创建多个配置文件,并按需使用。您可以使用 "编辑 --> 配置文件" 菜单或 "状态栏右下角 --> 配置文件" 部分来创建、修改和更改配置文件设置。

Wireshark - profiles

http://www.wxhsa.cn/company.asp?id=1838

相关文章:

  • 鸿蒙应用开发从入门到实战(三):第一个鸿蒙应用
  • Litctf2025 Write-up
  • DFS算法(递归)
  • 博客园出海记
  • vue3 - pinia状态管理库
  • 做会议海报就是在淘汰老实人
  • ubuntu24.04安装mysql5.7.42
  • 易基因:Cell封面:中国科学家杨学勇/黄三文m6A-seq等揭示同义突变通过表观转录调控机制决定生物性状|顶刊突破
  • 一文看懂Deepspeed:用ZeRO训练大模型原理解析及参数含义解释
  • AC-DC整流器双闭环控制MATLAB/Simulink仿真
  • 新娘化妆 造型 美甲 护肤 资料合集
  • rabbitMQ-基础day1 - a
  • 实用指南:Nginx反向代理与负载均衡部署
  • C# Avalonia 13- MoreDrawing - BlurEffects
  • 【IEEE出版】第三届算法、图像处理与机器视觉国际学术会议(AIPMV2025)
  • C++ - 了解STL的数据容器
  • 收费详情
  • bluetoothctl UUIDs
  • ANOLIS8安装配置ldap账号登录
  • 实用指南:小程序非主页面的数据动作关联主页面的数据刷新操作
  • 【光照】[光照模型]是什么?以UnityURP为例
  • 从知识管理困境到高效协同:Gitee Wiki如何重塑研发团队的知识体系
  • PHP数组去重和集合有什么关系
  • kkFileView4.4.0 安装与使用
  • ubuntu22挂载windows server2019的共享文件夹
  • PHP数组去重适用于哪些场景
  • 下载视频
  • 常用Linux配置
  • m1max可以装windows系统很卡吗
  • 1 | 移动语义:浅拷贝,深拷贝和引用拷贝,左值和右值