wireshark抓包简易入门

2023-10-30

一、前言

由于分析需要一个MQ的问题,生产者发送MQ,MQ basic.ack 一直失败,所以想通过抓包工具看 下具体发生了什么,分析下原因。

找到一篇非常nice的文章,故转载,收藏一波

原文地址:手把手教你用 wireshark 抓包_MClink的博客-CSDN博客_wireshark抓浏览器包不少人觉得抓包是一个很高级的东西,感觉涉及到了网络的知识,相信不少从业互联网行业的人对抓包是没有概念的,做web开发的同学可能比较熟悉使用 chrome 的开发者面板来进行抓包,但是对于 wireshark 或者是 tcpdump 这类的工具却并不熟悉,本篇文章就可以让你快手上手 wireshark 的基础使用,话不多说,快来体验吧1.下载 wireshark 软件  工欲善其事必先利其器,没有工具咋干活嘞,wireshark 的下载是十分简单的,这里我推荐使用腾讯软件中心的安.https://blog.csdn.net/qq_38378384/article/details/105959008

二、下载 wireshark 软件

       工欲善其事必先利其器,没有工具咋干活嘞,wireshark 的下载是十分简单的,这里我推荐使用腾讯软件中心
的安装包,这个平台包括了大多数常用的软件,且安全无毒,企鹅爸爸还是做了一件好事的,下载wireshark
这是个十分强大的工具,跟fiddler 不同的是,他几乎可以抓到所有类型的包,例如 TCP , UDP, ICMP, HTTP 等,而 fiddler 只能抓取 HTTP 的包
  

三.wireshark 的基础面板介绍

在这里插入图片描述
2.1 网卡接口列表
     

      我们可以看到,wireshark 的面板其实是十分简洁的,其中网卡列表就是选择你要抓取的包实际走的是哪个网卡接口,一般来说我们下面三种:

  •  以太网 :直接连接网线的一般选这个
  • WLAN : 电脑接 WiFi 的一般选这个
  • Adapter for loopback traffic capture:: 迂回路线,就是本机自己的网络,抓的是 127.0.0.1 的包

2.2 捕获过滤器(前置过滤器)

      用于减少抓取的报文体积,使用 BPF 语法,功能相对有限,主要是是过滤的作用,网络世界的包太多太杂,如果没有过滤器,很难找到我们真正想要的包,后面我再讲解相关的语法规则,这里我们暂时跳过

3.来一起愉快的抓包


以抓取我的小站的 http 报文为例

首先,我们需要简单了解一些基础的网络知识,

  • http所使用的的端口为 80,https 所使用的的端口为 443
  • http 通讯之前需要经历 TCP三次握手来建立连接,https 则是 三次握手 + ssl 握手
  • 因为https 的报文是经过加密的,如果需要抓到解密后的报文,需要特别配置 wireshark,这个后面讲解
  • http 的报文主要包括 header 头部和 body 体,以一行空行进行分割
  • http 的请求方式主要有八种,其中最为常见的是 GET ,POST ,OPTION,HEADER
  • http 协议在七层模型的最上层,属于应用层协议,基于 TCP/IP 协议上实现
  • 上面这些是一些十分基础的概念,了解了这些我们就可以愉快的抓包,电脑上时刻都在和外界通信,如果我们需要拿到我们需要的包,那么就必须要进行过滤,捕获过滤器就可以帮我们简单实现过滤效果

首先,在捕获过滤器中填写:host www.mclink.xyz (博主以前玩的域名,证书过期了所以可以用来抓http的包)
说明我们要抓取的是基于这个域名下通讯的,然后选中你要捕获的网络接口,例如我的电脑是直接接的网线,所以选的是以太网,然后点击上面工具栏的 捕获 - 开始(或者是快捷键 Ctrl + E )

点击开始是这样的:

 此时,软件已经在捕获host 为 www.mclink.xyz 的报文了,我们可以看到,左上角是可以暂停抓包的,如果有一些不需要的包存在,那么可以暂停,然后点最左边的重新捕获,可能会弹出下面的提示:

 

 

也就是说,我们是可以保存抓包的结果的,一般来说,如果没有需要,就选择继续不保存,
开始捕捉后,打开浏览器,地址栏输入:www.mclink.xyz ,然后就可以看到下列的内容,如果不想看到多余的其他包,抓到需要的包后可以点击停止抓包

在这里插入图片描述

 

其中,time 这个默认值捕获开始经过的秒数,如果想改成带日期的,可以在 视图-时间显示格式 来对应选择自己想要的格式
source 代表的是包的源ip地址,destinations 是目标ip地址,一般来说,这时候源ip就是你的公网ip,目标ip就是我的服务器公网ip,我们可以看到,一开始有三个 tcp 的报文(如果你见到了多个三次握手的报文,不要惊奇,这是正常的,浏览器为了效率,会发起多次握手),这是在进行三次握手来建立连接,三次握手的详细图我放在下面给你们作为参考

在这里插入图片描述

 

(图片来源于极客时间)
三次握手的原理看似简单,也就是来自两端的一来一回确认,第一次客户端发送 SYN 报文 给服务端 说老大我想和你玩,然后服务端 发送回一个 SYN/ACK 报文,说 好的小弟我陪你玩,然后客户端 再发送 ACK 包 给服务端说 谢谢老大愿意和我玩,然后两个人就可以愉快的玩耍了,但其实细究,三次握手还有很多可以深究的地方,例如 SYN 攻击 等,这里我暂时不细说,后面出有关 TCP 协议相关的文章再和大家一起分享哈哈哈。

经历了三次握手,我们可以简单认为已经双方已经确认了一个通讯链路,这个连接可以是长连接也可以是短连接,这点我们先不纠结,在这里还不是重点哈,我们可以看到,在第四个客户端请求报文中,发送了一个 GET 请求请求获取资源,然后服务端响应了一个 404 的报文,说明没有找到资源,这是一个最为简单的请求案例了,只包含了握手和一来一回的两个请求,却也是一个较为完整的案例

4.配置 wireshark 解析 https 请求

原理:配置 chrome 浏览器 DEBUG 日志中的握手信息生成密钥,wireshark 获得对称加密密钥对密文进行解密

4.1 配置 Chrome 输出 DEBUG 日志:

在这里插入图片描述
4.2 在 wireshark 中配置解析 DEBUG 日志

 在这里插入图片描述


5. 报文结构

在这里插入图片描述

上面的分别对应了

  • 帧 (数据链路层)
  • 以太网 (mac 层,基于Mac 地址通讯)
  • ipv4 (网络层)
  • tcp (传输层)
  • http (应用层)
  • 内容(数据内容)

我们知道,网络是有层次结构的,主要是分为 物理层,数据链路层,网络层,传输层,应用层。 在每一层,对 “包” 的描述都是不同的。

在这里插入图片描述

 

(图片来源于极客时间)
比特流(bit)<=> 帧 (frame)<=> 包 (packet)<=> 报文 (sequence) <=> 数据

这个软件会帮我们解析报文,并且拆分成各层的结构给我们查看,也就是说,我们可以看到在每一层中数据的大致样貌,在网络中,可以没上层,但是必须有下层,这一点可以用电梯来记忆,上下电梯都是必须顺序上去,顺序下来,不可能会跳过中间的某一层。在每一层中,会加上(或者去除)属于该层的额外补充数据(头部或者尾部),之所以网络需要分层,也是有原因的

分层的好处: 例如升级 HTTP2.0 时,应用层在升级,但是网络层却没有影响

分层的坏处:主要是网络传输,可能会造成数据的延迟,可以使用Intel的dpdk来绕过内核中的处理流程,这个包是一个用户态驱动和数据结构及算法的套件

在网络学习中,抓包是必不可少的一项技能,通过抓包分析数据在每一层中的变化以及数据结构和内容,有利于我们深入解决相关问题,后面我会出更多和网络相关的文章,和大家一起探索网络世界。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wireshark抓包简易入门 的相关文章

  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 将 HTTP 请求映射到 HTTP 响应

    如果我向同一服务器发出多个 HTTP Get 请求 并且每个请求都获得 HTTP 200 OK 响应 我如何使用 Wireshark 判断哪个请求映射到哪个响应 目前看起来好像发出了一个 http 请求 并且很快收到了下一个 HTTP 20
  • 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)

    接触过线程安全的同学想必都使用过synchronized这个关键字 在java同步代码快中 synchronized的使用方式无非有两个 通过对一个对象进行加锁来实现同步 如下面代码 synchronized lockObject 代码 对
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 网络安全基础知识面试题库

    1 基于路由器的攻击手段 1 1 源IP地址欺骗式攻击 入侵者从外部传输一个伪装成来自内部主机的数据包 数据包的IP是 内网的合法IP 对策 丢弃所有来自路由器外端口 却使用内部源地址的数据包 1 2 源路由攻击 入侵者让数据包循着一个不可
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    深入解析统一身份认证 介绍 原理和实现方法 导语 统一身份认证是什么 统一身份认证的原理 统一身份认证的实现 结语 导语 随着互联网的发展和各种在线服务的普及 用户在不同的应用和平台上需要进行多次身份验证 为了简化用户的登录和减少重复操作
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学
  • Windows 8 Phone 客户端证书 HTTPS 身份验证

    我正在尝试使用我正在开发的 Windows 8 Phone 应用程序中的客户端证书访问安全的 HTTPS 服务器 这根本不起作用 这让我尝试从标准 Web 浏览器访问 HTTPS 服务器 但它也不起作用 我不知道 Internet Expl
  • 使用 libwireshark 以编程方式获取 Wireshark 功能

    如果我想编写一个使用 Wireshark 功能的脚本 我会使用 tshark 我听说还有一个 libwireshark 可以在用 C 编写程序时使用 但是我一生都找不到any其文档 我尝试隔离wireshark源树中的库代码 但似乎代码组织
  • 如何从wireshark复制捕获的数据包的十六进制数据

    这是例子 这是捕获的数据包数据 00000000 00 6e 0b 00 n 00000004 4d 5a e8 00 00 00 00 5b 52 45 55 89 e5 81 c3 81 MZ REU 00000014 12 00 00
  • 跟踪 XWindow 协议

    是否可以使用工具跟踪 XWindow 协议 我认为wireshark将是一个很好的框架来承载这样的想法 但似乎没有支持 为了实现这个目标应该做什么 Wiresharkdoes具有剖析X Window协议的能力 但是 您首先必须能够捕获 X
  • 使用wireshark或其他工具绘制RTT直方图

    我有一个小型办公室网络 但我遇到了巨大的互联网链接延迟 我们有一个简单的网络拓扑 一台配置为运行 ubuntu 服务器 10 10 的路由器的计算机 2 个网卡 一个连接互联网 另一个连接办公室网络 和一个连接 20 台计算机的交换机 我在
  • pyshark - 来自 TCP 数据包的数据

    有没有办法使用 pyshark 获取 TCP 数据包的有效负载 我正在尝试比较多个 TCP 流中不同数据包的数据部分 但我找不到获取数据包数据的方法 pkt tcp data似乎不存在 如果您使用的是 pcap 文件 则在使用以下命令读取该
  • IE 未在 TLS 相互身份验证中发送客户端证书

    我正在尝试与第三方 API 建立 TLS 相互身份验证 客户端证书配置良好 当我尝试通过 Chrome 访问端点 url 时 它工作正常 Chrome 要求在消息框中确认证书 当我这样做时 页面会显示其内容 当我尝试使用 IE 执行同样的操
  • 捕获文件似乎在数据包中间被缩短 - 如何防止此错误?

    在我的应用程序中 我打开 Tshark 进程并开始捕获 当我想完成捕获时 我会终止 Tshark 进程 因此有时捕获文件已损坏 当我尝试打开此文件时 我收到错误捕获文件似乎在数据包中间被剪短 如何防止此错误有没有更好的方法来关闭 Tshar
  • 设计 EAP-TLS 客户端问候消息

    我正在尝试设计第一个启动 EAP TLS 握手的数据包 这是我的数据包目前的样子 我通过用相应的信息手动填充 C 中的缓冲区来设计 EAP 部分 我使用 OpenSSL 导出的 TLS 部分如图所示在这个问题中 https stackove

随机推荐

  • c语言分支结构程序设计教学设计 赛课,《分支结构程序设计》教学设计.doc

    分支结构程序设计 教学设计 潮州市饶平县华侨中学 邮编515700 张远航 Email zyuanhang 教学分析与教学设计思路 一 教学对象分析与教学设计 本教案适用于高中二年级学生 这一阶段的学生具备一定的数学基础和具有一定的比较 归
  • 利用python编程,制作自己的游戏“外挂”!

    Python简介及应用领域 Python是一种解释型脚本语言 可以应用于以下领域 Web 和 Internet开发 科学计算和统计 人工智能 教育 桌面界面开发 软件开发 后端开发 网络爬虫 编程用的好 不仅可以提高工作效率 还能让玩游戏变
  • FastAPI学习(二)——FastAPI+Jinjia2模板渲染网页(跳转返回渲染页面)

    文章目录 一 简单实现 1 依赖库安装 2 建立目录 3 item html文件代码 4 main py文件代码 5 浏览器输入 二 借用bootstrap模板 1 目录结构与名称 2 index html代码 3 main py代码 4
  • 值得收藏 Modbus RTU 协议详解

    值得收藏 Modbus RTU 协议详解 目录 值得收藏 Modbus RTU 协议详解 Modbus是什么 Modbus分类 Modbus通讯过程 Modbus RTU协议数据帧结构 功能码01 读线圈状态 功能码02 读离散量输入 功能
  • matlab 锐化降噪,matlab 图形锐化 滤波

    help imread help fspecial imfilt 帮助稳定中有较多的示例 fspecial 函数 功能 产生预定义滤波器 格式 H fspecial type H fspecial gaussian n sigma 高斯低通
  • 精密全波整流电路

    精密全波整流电路 单运放型 利用单运放构成的精密全波整流电路主要有两种 一种称之为 T 型 另一种称为 型 T 型精密全波整流电路的原理图如下 图1 T型精密全波整流电路 上面电路中 R1 R3 2 R2 当输入为正电压时 D1 导通D2截
  • HarmonyOS“一次开发,多端部署“优秀实践——玩机技巧,码上起航

    随着终端设备形态日益多样化 分布式技术逐渐打破单一硬件边界 一个应用或服务 可以在不同的硬件设备之间按需调用 互助共享 让用户享受无缝的全场景体验 作为应用开发者 广泛的设备类型也能为应用带来广大的潜在用户群体 一个应用要在多类设备上提供统
  • 【vscode安装以及c++环境配置】

    TOC vscode安装以及c 环境配置 VScode安装 安装vscode vscode官方下载 C 环境配置 安装c 环境 MinGw官方下载网址 下载版本选择 Architecture 如果电脑系统是64位就选x86 64 如果电脑系
  • 论文笔记之CentripetalNet

    提出使用向心偏移来对同一实例中的角点进行配对 此外又设计了一个 corner star deformable convolution network 十字星可变形卷积网络来适应corner特征 CVPR2020接收 论文地址 https a
  • 斐波那契数列的两种解题思路:递归VS迭代

    一 问题描述 要求输入一个整数n 请你输出斐波那契数列的第n项 二 算法分析 给出一系列斐波拉契数列 0 1 1 3 5 8 13 21 通过观察 很容易发现 1 n 0 1 f n f n 1 f n 2 n gt 1 三 算法设计 递归
  • 如何将数据从Activity返回到Fragment——onActivityResult

    一段时间没有写了 背景是这样的 MainActivity中启动Fragment Fragment启动OtherActivity 在OtherActivity中的数据需要返回到Fragment中 关于数据是怎么传输的 可以看这里 传送门 An
  • spring-boot-configuration-processor问题

    spring boot configuration processor问题 配置 application yml 时没有关联提示 配置好的属性提示 Cannot resolve configuration property xxxx 解决方
  • 【Mybatis】mysql插入记录后返回自增主键id的方法和注意事项

    插入记录后返回自增主键id mapping文件的insert标签中加入如下标签 指明主键名 keyProperty 执行方式 order 为新增完再返回执行 因为只有插入完成后获取的id才是最新的 返回值是Integer类型 也就是新增后返
  • Log4j2注入漏洞(CVE-2021-44228)万字深度剖析(四)—漏洞修复原理(2.15.0-RC1、2.15.0、2.16.0)

    系列文章 2 15 0之前版漏洞相关文章 Log4j2注入漏洞 CVE 2021 44228 万字深度剖析 一 开篇与基础知识 Log4j2注入漏洞 CVE 2021 44228 万字深度剖析 二 漏洞原理 Log4j2注入漏洞 CVE 2
  • 卡尔曼滤波学习笔记

    Kalman Filter 直观理解 1 描述 2 例子 适用范围 1 线性系统 2 噪声服从高斯分布 相关公式 1 原始公式 2 预测公式 3 更新公式 4 初值赋予 5 总结 应用例子 代码实现 公式理解 1 协方差矩阵的理解 1 1
  • 火柴棍等式

    描述 给你n根火柴棍 你可以拼出多少个形如 A B C 的等式 等式中的A B C是用火柴棍拼出的整数 若该数非零 则最高位不能是0 用火柴棍拼数字0 9的拼法如图所示 注意 1 加号与等号各自需要两根火柴棍 2 如果A B 则A B C与
  • qt---收音机多柱进度条实现

    1 底层用普通进度条 实现进度显示 2 放置label 背景图 放置柱状 垂直线 线条透明 3 设置为透明状态
  • Pinia 是否可以代替 Vuex ?

    文章目录 一 介绍 二 对比 Pinia 与 Vuex 对比 三 使用 1 安装 2 注册 3 创建单个 store 4 组件内引用 5 更新 store 数据的4种方式 1 直接修改特定的值 2 利用 patch 批量修改 3 利用 pa
  • git 修改远程仓库

    查看当前远程仓库 git remote v 修改远程仓库 git remote set url origin
  • wireshark抓包简易入门

    一 前言 由于分析需要一个MQ的问题 生产者发送MQ MQ basic ack 一直失败 所以想通过抓包工具看 下具体发生了什么 分析下原因 找到一篇非常nice的文章 故转载 收藏一波 原文地址 手把手教你用 wireshark 抓包 M