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

Wireshark:HTTP、MQTT、WebSocket 抓包详细教程

目录

1 预备工作(安装 / 权限 / 驱动)

2 抓包基础设置(开始、保存与注意)

3 常用全局配置(要先打开)

4 捕获过滤器 vs 显示过滤器(快速参考)

5 HTTP 抓包与分析(详细步骤)

5.1 抓取场景

5.2 捕获 / 过滤建议

5.3 查看请求/响应

5.4 导出 HTTP 对象(静态资源、文件)

5.5 tshark / 命令行导出 HTTP 对象

5.6 常见问题

6 MQTT 抓包与分析(详细步骤)

6.1 抓取准备

6.2 捕获与过滤

6.3 查看 PUBLISH payload

6.4 tshark 提取 MQTT 信息(示例)

6.5 设备端日志 + MQTT 抓包结合

6.6 MQTT over WebSocket

7 WebSocket 抓包与分析(详细步骤)

7.1 捕获 / 过滤

7.2 跟踪会话

7.3 二进制数据(JSON / protobuf / MQTT over WS)

7.4 WebSocket over TLS(wss)

7.5 常用操作

8 HTTPS / TLS 解密(浏览器 & 客户端调试常用)

8.1 最简单、常用的方法:Pre-Master Secret 日志(适用于基于 TLS 的客户端,如浏览器)

8.2 移动 App / 原生客户端

8.3 使用私钥解密(仅适用于 RSA key exchange,且服务器使用静态 RSA 私钥)

9 抓移动设备 / IoT 设备(实践技巧)

9.1 手机 App(Android/iOS)

9.2 IoT(ESP32 / 嵌入式)

10 常用示例过滤器

11 常用 tshark(命令行)示例

12 实战流程示例(手机 App 调试一个 POST 登录请求)

13 进阶技巧与自动化

14 常见问题与排查清单

15 快速参考表


1 预备工作(安装 / 权限 / 驱动)

  • 安装 Wireshark(Windows/macOS/Linux)。Windows 勾选 Npcap

  • 以管理员/root 身份运行以取得抓包权限(或在 Linux 加入 wireshark 用户组并允许运行抓包)。

  • 确认目标设备与抓包电脑网络连通(同一 Wi-Fi / 局域网)或能通过端口镜像/网桥看到流量。

  • 在 Wireshark 中选择正确的网卡(Wi-Fi、Ethernet、桥接接口等)。


2 抓包基础设置(开始、保存与注意)

  • 开始:选择网卡 → 点击左上蓝色 ▶(或 Ctrl+E)。

  • 停止:红色 ⏹(或 Ctrl+E)。

  • 保存:File → Save As,格式 .pcapng(建议保留原始完整抓包)。

  • 推荐在开始前设置 Capture Filter(捕获过滤器),减少无用数据:例如只抓 MQTT:port 1883;只抓 HTTP:port 80tcp port 80 or tcp port 443(若不解密 TLS,则不会看到 HTTP 明文)。


3 常用全局配置(要先打开)

  • TCP 重组(非常重要) Edit → Preferences → Protocols → TCP → 勾选 Allow subdissector to reassemble TCP streams(以及 Reassemble out-of-order segments)。

  • HTTP 重组 Edit → Preferences → Protocols → HTTP → 勾选 Reassemble HTTP bodies spanning multiple TCP segments

  • TLS 解密(见第 7 节 HTTPS 解密)


4 捕获过滤器 vs 显示过滤器(快速参考)

  • 捕获过滤器(开始抓包前):基于 BPF(libpcap),用于减少抓取流量。

    • 示例:host 192.168.1.50 and port 1883port 80tcp port 8883

  • 显示过滤器(抓包后筛选):Wireshark 自有语法,更强大。

    • 常用:httpmqttwebsocketip.addr == 192.168.1.10tcp.port == 443


5 HTTP 抓包与分析(详细步骤)

5.1 抓取场景

  • 明文 HTTP(端口 80):能直接看到请求/响应明文。

  • HTTPS(端口 443):需要解密才能查看明文(见第 7 节)。

5.2 捕获 / 过滤建议

  • 捕获过滤器(减噪):

    • 只抓 Web 端口:tcp port 80 or tcp port 443

  • 显示过滤器(分析):

    • 所有 HTTP:http

    • GET 请求:http.request.method == "GET"

    • POST 请求:http.request.method == "POST"

    • 特定主机:ip.addr == 10.0.0.5 and http

    • 包含关键字段(例如 JSON 关键字):frame contains "application/json"frame contains "password"

5.3 查看请求/响应

  • 右键 HTTP 包 → FollowTCP Stream(或 Follow → HTTP Stream),查看一条会话的请求和响应明文。

  • 在 HTTP 包的 Detail 区可展开 Hypertext Transfer Protocol 节点查看 header 与 body 字段。

5.4 导出 HTTP 对象(静态资源、文件)

  • 菜单:File → Export Objects → HTTP,可导出网页上的图片、JS、文件等。

5.5 tshark / 命令行导出 HTTP 对象

# 导出所有 HTTP 对象到 ./http_objects 目录
tshark -r capture.pcapng --export-objects "http,./http_objects"

5.6 常见问题

  • 如果 POST body 没显示完整:检查 TCP 和 HTTP 重组是否开启(第3节)。

  • 若看到 TLS 加密的 TLS Application Data:需要解密或用代理抓明文(见 7 节)。


6 MQTT 抓包与分析(详细步骤)

MQTT 是 IoT 中常用的轻量协议(默认端口 1883 明文,8883 TLS)。Wireshark 对 MQTT 支持很好,能解析 CONNECT、PUBLISH、SUBSCRIBE 等报文。

6.1 抓取准备

  • 如果设备使用明文 MQTT(1883),直接在同一网段抓到流量即可。

  • 若使用 TLS(8883),需做 TLS 解密或在设备/客户端启用 SSL key logging(见第 7 节)或使用 MITM(如在开发阶段改为明文或使用带证书的代理)。

6.2 捕获与过滤

  • 捕获过滤器举例:port 1883

  • 显示过滤器:

    • 所有 MQTT:mqtt

    • PUBLISH 消息:mqtt.msgtype == 3

    • 指定主题:mqtt.topic == "home/lock/123/events"mqtt.topic contains "lock"

    • 指定 QoS:mqtt.qos == 1

    • CONNECT:mqtt.msgtype == 1

    • SUBSCRIBE:mqtt.msgtype =

http://www.dtcms.com/a/485767.html

相关文章:

  • Linux内核架构浅谈36-Linux页帧描述:struct page数据结构的设计与关键成员
  • 道路车辆功能安全标准(FuSa)基础(七)
  • 【Linux系列】解码 Linux 内存地图:从虚拟到物理的寻宝之旅
  • vue+spring boot 利用ffmpeg实现大视频切片
  • 长沙手机网站建设公司wordpress 做笔记
  • Java基于Web3j调用智能智能合约案例
  • 关于联想ThinkCentre M950t-N000 M大师电脑恢复预装系统镜像遇到的一点问题
  • 有关优化网站建设的书籍深圳网络推广方法
  • 招聘网站做竞品分析南昌网站seo多少钱
  • 【实战总结】Docker部署MySQL完整教程:附docker-compose模板与常用命令大全
  • C++ string类的使用
  • 【数据结构】:C 语言常见排序算法的实现与特性解析
  • C语言数据结构:算法复杂度(1)
  • 16km无人机WiFi中继图传模块,高速传输画质高清不卡顿
  • Linux系统C++开发环境搭建工具(二)—— etcd 使用指南
  • AI+大数据时代:如何从架构到生态重构时序数据库的价值?
  • 小小 Postgres,何以替代 Redis、MongoDB 甚至 ES?
  • Win10正式谢幕!附最后更新版本
  • 前端自动翻译插件webpack-auto-i18n-plugin的使用
  • 山东官方网站建设沧州网络推广渠成网络
  • 贺州网站建设公司家装设计需要学什么软件
  • 网站在百度上搜索不到丽水山耕品牌建设网站
  • 漂亮的门户网站dedecms游戏门户网站源码
  • thinkphp2.1网站挂文件国有企业投资建设项目
  • 网站首页的动态视频怎么做的建网站的流程和费用
  • 一些可以做翻译的网站微信小程序制作文档
  • 东莞公司网站开发首页制作教程
  • 河北大名网站建设招聘深圳网站设计首选柚米
  • 网站友链中英文外贸网站模版
  • html5企业网站模版经营一个网站要怎么做