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抓包实战视频

相关推荐
是jin奥2 小时前
Ubuntu 18 安装 nodejs 合适版本
linux·ubuntu·vim
汽车仪器仪表相关领域2 小时前
双组分精准快检,汽修年检利器:MEXA-324M汽车尾气测量仪项目实战全解
大数据·人工智能·功能测试·测试工具·算法·机器学习·压力测试
王夏奇2 小时前
python中的基础知识点-1
开发语言·windows·python
网硕互联的小客服2 小时前
如何彻底删除CentOS自带的postfix服务释放25端口?
linux·运维·centos
叫我辉哥e12 小时前
新手进阶Python:办公看板集成多数据源+ECharts高级可视化
开发语言·python·echarts
天码-行空2 小时前
CentOS 误删 /dev 目录救援方案
linux·运维·centos
小码吃趴菜2 小时前
mysql
linux·运维·服务器
程序员敲代码吗2 小时前
如何从Python初学者进阶为专家?
jvm·数据库·python
YYYing.2 小时前
【计算机网络 | 第八篇】计网之传输层(二)—— TCP的可靠传输与流量控制
网络·网络协议·tcp/ip·计算机网络