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

Wireshark 具体某种协议的分析

以下是 Wireshark 针对特定协议的分析示例和详细配置教程,涵盖常见的 HTTP、DNS 和 TCP 协议。每种协议的分析过程略有不同,以下逐一介绍:


1. HTTP 协议分析

HTTP 协议是最常见的网络通信协议之一,用于分析网站请求和响应。

(1) 捕获 HTTP 流量
  1. 启动 Wireshark,选择合适的网络接口。
  2. 使用捕获过滤器只捕获 HTTP 流量:
    port 80
    
  3. 如果是 HTTPS,需要安装服务器私钥或使用浏览器的 TLS 会话密钥解密。
(2) 分析 HTTP 流量
  1. 显示过滤器:捕获完成后,可以使用显示过滤器精确筛选:
    • 只显示 HTTP 请求和响应:
      http
      
    • 只显示 GET 请求:
      http.request.method == "GET"
      
    • 只显示 POST 请求:
      http.request.method == "POST"
      
  2. 查看 HTTP 请求/响应
    • 在数据包列表中找到 HTTP 请求,点击后查看下方的详细信息:
      • Request Line:包含请求方法(如 GET/POST)、URL 和协议版本。
      • Headers:如 Host、User-Agent、Cookie 等。
      • Body:POST 请求的参数或提交数据。
(3) 跟踪 HTTP 会话

右键点击一个 HTTP 数据包,选择 Follow > HTTP Stream,可以看到完整的请求和响应对话,包括:

  • 请求的 URL。
  • 服务器返回的状态码(如 200、404)。
  • 响应内容(HTML 页面、JSON 数据等)。

2. DNS 协议分析

DNS 用于域名解析,将域名转换为 IP 地址。

(1) 捕获 DNS 流量
  1. 启动捕获,设置捕获过滤器为:

    port 53
    

    这将只捕获 DNS 查询和响应数据包。

  2. 打开浏览器访问任意网站,产生 DNS 流量。

(2) 分析 DNS 流量
  1. 使用显示过滤器筛选 DNS 流量:
    dns
    
  2. 在数据包列表中,查看 DNS 查询和响应:
    • 查询(Query):显示客户端请求的域名。
    • 响应(Response):包含解析后的 IP 地址。
    • 常见字段:
      • Transaction ID:标识一次 DNS 请求和响应。
      • Query Name:请求的域名。
      • Answer Section:解析结果的 IP 地址。
(3) 定位 DNS 问题
  • 如果没有响应包,可能是 DNS 服务器不可用。
  • 检查是否有异常的域名请求(如可疑的恶意软件流量)。

3. TCP 协议分析

TCP 是一种面向连接的传输协议,常用于 HTTP、HTTPS 等。

(1) 捕获 TCP 流量
  1. 设置捕获过滤器为:
    tcp
    
  2. 开始捕获,运行一个基于 TCP 的应用程序(如浏览网页、FTP 传输)。
(2) 分析 TCP 数据包
  1. 使用显示过滤器筛选特定的 TCP 流量:
    • 只显示从指定 IP 发出的流量:
      ip.src == 192.168.1.1
      
    • 只显示某个端口的 TCP 流量:
      tcp.port == 443
      
  2. 检查 TCP 三次握手(Three-Way Handshake):
    • SYN:客户端发起连接请求。
    • SYN-ACK:服务器响应连接请求。
    • ACK:客户端确认。
  3. 检查数据包标志位:
    • RST:连接被重置。
    • FIN:连接正常关闭。
    • ACK:确认数据接收。
(3) 跟踪 TCP 会话
  • 右键点击一个 TCP 数据包,选择 Follow > TCP Stream
  • 查看整个会话的通信数据,例如 HTTP 请求的完整报文。
(4) 排查 TCP 问题
  • 丢包和重传
    • 查看数据包是否有 [TCP Retransmission]
  • 连接中断
    • 查看是否存在异常的 RST 标志。

4. 配置 HTTPS 解密(进阶)

HTTPS 流量需要解密才能分析具体内容。

(1) 前置条件
  • 拥有服务器的 SSL/TLS 私钥文件。
  • 或者获取浏览器的会话密钥(通过环境变量 SSLKEYLOGFILE)。
(2) 配置解密
  1. 打开 Wireshark,点击 Edit > Preferences
  2. 选择 Protocols > TLS
  3. (Pre)-Master-Secret log filename 中,指定会话密钥文件路径。
  4. 重新加载捕获的数据包,即可解密 HTTPS 流量。

5. 常见问题排查场景

(1) 网络延迟问题
  • 通过 TCP 流量,计算数据包的往返时间(RTT)。
  • 检查是否有 重传超时
(2) DNS 解析慢
  • 检查 DNS 查询和响应的时间差。
  • 查看是否有多次未响应的查询。
(3) HTTP 请求慢
  • 检查 HTTP 响应时间。
  • 分析是否是服务器处理时间过长导致。
(4) 异常流量
  • 检查是否有大量重复的请求(如 DoS 攻击)。
  • 查看是否存在未知域名的 DNS 请求。

总结

  • 针对不同协议的分析,Wireshark 提供了强大的过滤和解码功能。
  • 常用的过滤器和解码功能可以快速定位问题根因。
  • 如果需要更详细的教程,可以针对具体场景进一步展开!

http://www.kler.cn/a/461488.html

相关文章:

  • 【AUTOSAR 基础软件】Can模块详解(Can栈之驱动模块)
  • 46. Three.js案例-创建颜色不断变化的立方体模型
  • 《解密奖励函数:引导智能体走向最优策略》
  • UE5通过蓝图节点控制材质参数
  • 什么是Redis哨兵机制?
  • C# 设计模式(创建型模式):单例模式
  • 现代网络基础设施中的 TCP 握手之下
  • 【092】基于51单片机水位控制系统【Proteus仿真+Keil程序+报告+原理图】
  • python文件操作相关(excel)
  • 构建代理 IP 池:方法与实践
  • 【YashanDB知识库】如何在备机节点上做备份和恢复
  • 学术主题研究相关10个ChatGPT提示词
  • 护眼屏幕灯市场格局正在重塑:书客屏幕挂灯如何成为办公新宠
  • 开源的Vue低代码表单设计器 form-create-designer v3.2.9 版本发布,新增10多种功能
  • mysql8 从C++源码角度看 客户端发送的sql信息 mysql服务端从网络读取到buff缓存中
  • 基于文生图模型的创新应用
  • 《量子AI:突破量子比特稳定性与容错性的关键瓶颈》
  • Cursor小试2.pdf转图片
  • Mac连接云服务器工具推荐
  • Unreal Engine 5 C++ Advanced Action RPG 三、四章笔记
  • 1177:奇数单增序列
  • vue中修改局部的elmentUI样式
  • Python将两个视频横向的拼接--视频效果对比
  • yolo数据集 - 2130张边坡排水沟堵塞数据集分享 - 无人机采集与数据增强处理
  • 计算机毕业设计Python深度学习美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js
  • KAFKA入门:原理架构解析