Wireshark 抓包实战演示

【点这里】wireshark抓包实战视频

实战场景:分析网页访问过程

我们将分析访问百度首页的完整过程,涵盖 DNS、TCP、HTTP 等协议。

第一步:准备工作

1. 启动

bash 复制代码
# 在终端启动或直接点击图标
sudo wireshark  # Linux可能需要sudo权限

2. 配置捕获设置

推荐配置:

  • 菜单栏捕获选项

  • 勾选"在所有接口上使用混杂模式"

  • 设置"每个数据包的最大字节数"为默认的262144

  • 关键步骤:创建捕获过滤器避免干扰

    复制代码
    # 只抓取DNS、HTTP/HTTPS和与百度的通信
    port 53 or port 80 or port 443 or host www.baidu.com

第二步:开始抓包与分析

1. 开始抓包

bash 复制代码
# 1. 选择正确的网络接口(通常是Wi-Fi或以太网)
# 2. 点击"开始捕获"(蓝色鲨鱼鳍)
# 3. 立即打开浏览器访问:http://www.baidu.com
# 4. 等待页面加载完成后,返回Wireshark点击"停止"

2. 初始过滤与概览

bash 复制代码
# 应用显示过滤器查看关键流量
http or dns or tcp.port == 443

# 或者按对话查看
统计 → 会话 → 查看TCP/UDP对话

观察到的典型流量模式:

No. Time Source Destination Protocol Length Info

1 0.000000 192.168.1.100 8.8.8.8 DNS 86 Standard query A www.baidu.com

2 0.025000 8.8.8.8 192.168.1.100 DNS 102 Standard query response A 110.242.68.4

3 0.026000 192.168.1.100 110.242.68.4 TCP 66 59312 → 80 [SYN]

4 0.056000 110.242.68.4 192.168.1.100 TCP 66 80 → 59312 [SYN, ACK]

5 0.056000 192.168.1.100 110.242.68.4 TCP 54 59312 → 80 [ACK]

6 0.057000 192.168.1.100 110.242.68.4 HTTP 531 GET / HTTP/1.1

...

【点这里】wireshark抓包实战视频

第三步:协议逐层深度分析

bash 复制代码
# 过滤DNS包
dns

# 或精确查找百度查询
dns.qry.name contains "baidu"

分析具体数据包:

请求包分析:

Frame 1: 86 bytes on wire

Ethernet II: 源MAC、目标MAC

Internet Protocol: 源IP(192.168.1.100)、目标IP(8.8.8.8)

User Datagram Protocol: 源端口53 → 目标端口随机高位端口

Domain Name System (query)

Transaction ID: 0x9a1b

Flags: 0x0100 Standard query

Questions: 1

Answer RRs: 0

Authority RRs: 0

Additional RRs: 0

Queries

www.baidu.com: type A, class IN

响应包分析:

Domain Name System (response)

Transaction ID: 0x9a1b # 与请求匹配

Flags: 0x8180 Standard query response, No error

Questions: 1

Answer RRs: 2

Answers:

www.baidu.com: type CNAME, class IN, cname www.a.shifen.com

www.a.shifen.com: type A, class IN, addr 110.242.68.4

2. TCP 三次握手分析

bash 复制代码
# 过滤TCP握手
tcp.flags.syn == 1 and tcp.flags.ack == 0

# 或追踪整个TCP流
右键任意TCP包 → 追踪流 → TCP流

详细分析握手过程:

客户端 SYN

Transmission Control Protocol

Source Port: 59312

Destination Port: 80

Stream index: 0

TCP Segment Len: 0

Sequence number: 0 (relative sequence number)

Acknowledgment number: 0

Flags: 0x002 (SYN)

Window size value: 65535

Calculated window size: 65535

Window size scaling factor: -1 (unknown)

Options: (12 bytes)

Maximum segment size: 1460 bytes

No-Operation (NOP)

Window scale: 6 (multiply by 64)

SACK permitted

服务器 SYN-ACK

Flags: 0x012 (SYN, ACK)

Sequence number: 0

Acknowledgment number: 1 # 确认客户端的SYN

Window size value: 8192

Maximum segment size: 1460 bytes

客户端 ACK

Flags: 0x010 (ACK)

Sequence number: 1

Acknowledgment number: 1 # 确认服务器的SYN

3. HTTP 请求/响应分析

bash 复制代码
# 过滤HTTP请求
http.request.method == "GET"

# 查看完整的HTTP流
右键HTTP包 → 追踪流 → HTTP流

HTTP GET 请求分析:

Hypertext Transfer Protocol

GET / HTTP/1.1\r\n

Host: www.baidu.com\r\n

Connection: keep-alive\r\n

Upgrade-Insecure-Requests: 1\r\n

User-Agent: Mozilla/5.0...Chrome/120.0.0.0\r\n

Accept: text/html,...\r\n

Accept-Encoding: gzip, deflate\r\n

Accept-Language: zh-CN,zh;q=0.9\r\n

\r\n

Full request URI: http://www.baidu.com/

HTTP request 1/1

Response in frame: 8

HTTP 响应分析

Hypertext Transfer Protocol

HTTP/1.1 200 OK\r\n

Date: Wed, 15 Mar 2024 08:00:00 GMT\r\n

Content-Type: text/html;charset=utf-8\r\n

Connection: keep-alive\r\n

Vary: Accept-Encoding\r\n

Cache-Control: private, no-cache, no-store, proxy-revalidate\r\n

Content-Length: 2381\r\n

\r\n

HTTP response 1/1

Time since request: 0.036000000 seconds

Request in frame: 6

Next request in frame: 12

File Data: 2381 bytes

【点这里】wireshark抓包实战视频

第四步:高级分析技巧

发现TCP重传:

bash 复制代码
# 查找重传包
tcp.analysis.retransmission

# 或通过着色规则快速识别
# 黑色背景的包通常是重传

2. 流量统计与可视化

bash 复制代码
# 1. 查看协议分布
统计 → 协议分级

# 2. 查看端点通信情况
统计 → 端点 → IPv4标签页
# 可以看到与哪些IP通信最频繁

# 3. 生成IO图表分析流量模式
统计 → IO图表
# 添加图形:每秒钟数据包数、字节数等

3. 解密HTTPS流量(需配置)

bash 复制代码
# 前提:拥有服务器的私钥或配置了SSLKEYLOGFILE
编辑 → 首选项 → 协议 → TLS
# 在(Pre)-Master-Secret log filename中指定日志文件

第五步:实战场景演练

1:网站访问慢的诊断

bash 复制代码
# 1. 过滤出问题的网站流量
ip.addr == 110.242.68.4

# 2. 检查时间差
# 添加时间列:右键列头 → 列偏好设置 → 添加新列
# 类型:Delta time,显示为秒

# 3. 查找瓶颈
tcp.analysis  # 查看专家信息
统计 → 对话 → 查看哪些连接耗时最长

2:检测异常连接

bash 复制代码
# 1. 查找可疑端口
tcp.port >= 10000 and tcp.port <= 65535
# 查看高位端口的异常连接

# 2. 查找大量SYN包(端口扫描特征)
tcp.flags.syn == 1 and tcp.flags.ack == 0
统计 → 对话 → 排序查看SYN数量

# 3. 查找DNS隧道特征
dns.qry.name.len > 50  # 超长域名
dns.qry.type == 0x10   # TXT记录滥用

3:分析API调用

bash 复制代码
# 1. 过滤特定API路径
http.request.uri contains "/api/"

# 2. 查看JSON响应
右键 → 追踪流 → HTTP流
# 可以查看完整的JSON请求/响应

# 3. 分析API性能
http.time  # 响应时间过滤

第六步:报告生成与保存

bash 复制代码
# 保存过滤后的数据
文件 → 导出特定分组...
# 可以只保存过滤后的包

# 保存统计信息
统计 → 各种统计 → 复制为CSV/保存

2. 标记重要发现

bash 复制代码
# 给重要数据包添加注释
右键包 → 添加分组注释
# 包列表会显示笔记图标

# 使用书签
右键包 → 标记/取消标记分组

3. 生成报告

bash 复制代码
文件 → 导出分组解析结果 → 为纯文本
# 包含所有解析信息

# 或使用tshark命令行生成报告
tshark -r capture.pcap -Y "http" -V > http_analysis.txt

掌握 Wireshark 的精髓可归结为三点:深刻理解网络协议的语言,熟练运用过滤器锁定关键信息,并在真实的抓包实践中反复磨练。

【点这里】wireshark抓包实战视频

相关推荐
B站_计算机毕业设计之家5 分钟前
豆瓣电影数据采集分析推荐系统 | Python Vue Flask框架 LSTM Echarts多技术融合开发 毕业设计源码 计算机
vue.js·python·机器学习·flask·echarts·lstm·推荐算法
lucky-billy8 分钟前
Ubuntu 下一键部署 ROS2
linux·ubuntu·ros2
Thera77712 分钟前
【Linux C++】彻底解决僵尸进程:waitpid(WNOHANG) 与 SA_NOCLDWAIT
linux·服务器·c++
渣渣苏13 分钟前
Langchain实战快速入门
人工智能·python·langchain
阿梦Anmory18 分钟前
Ubuntu配置代理最详细教程
linux·运维·ubuntu
驱动探索者18 分钟前
U盘发展史
网络·cpu·u盘
lili-felicity22 分钟前
CANN模型量化详解:从FP32到INT8的精度与性能平衡
人工智能·python
青春给了代码22 分钟前
基于WebSocket实现在线语音(实时+保存)+文字双向传输完整实现
网络·websocket·网络协议
数据知道25 分钟前
PostgreSQL实战:详解如何用Python优雅地从PG中存取处理JSON
python·postgresql·json
云姜.32 分钟前
线程和进程的关系
java·linux·jvm