生命之风的低语
Whispers in the Wind of Life.

学习黑客抓包wireshark

2025-12-17 01:59:58

Wireshark 实用技巧 🚀🔍

短短几分钟,掌握 Wireshark 全能分析利器!💡

风格:吴恩达式清晰解说,配表 + emoji,入门到进阶。

📄 目录

🕵️‍♂️ 捕获过滤 vs 显示过滤

🎨 Profiles & 颜色规则

🔄 Follow Stream(会话追踪)

📊 IO Graph & Flow Graph

🧠 专家信息(Expert Info)

🗃️ 导出 & 保存数据包

💻 Tshark CLI 自动化

🚀 进阶小技巧

🏁 总结

1. 🕵️‍♂️ 捕获过滤 vs 显示过滤

在 Wireshark 中,过滤是分析的第一步。

类型

位置

示例

作用

捕获过滤

Capture 选项

port 80

限制抓包内容,减少磁盘/内存消耗

显示过滤

显示过滤栏

ip.addr==192.168.1.1 && http

只展示符合条件的数据包,快速定位

捕获过滤在抓包前生效,可显著降低数据量

显示过滤在抓包后使用,可灵活组合条件,多用逻辑操作符 &&、||

2. 🎨 Profiles & 颜色规则

利用 Profiles 和颜色,一键切换场景、提高可读性。

Profiles: 创建不同分析场景(如 HTTP 分析、TCP 时序)配置文件,快速加载偏好设置

颜色规则: 通过 View → Coloring Rules,高亮关键协议或异常数据包

功能

作用

Profile 新建

快速加载自定义列、过滤、颜色等配置

颜色规则设置

一目了然地标记不同协议或异常报文

3. 🔄 Follow Stream(会话追踪)

快速还原 TCP/HTTP 会话,查看端到端数据流。

选中数据包 → Analyze → Follow → TCP Stream 或 HTTP Stream

在流窗口内,可切换请求/响应,对话内容一览无余

场景示例:重组 HTTP 请求,快速提取敏感信息或调试 API 交互

4. 📊 IO Graph & Flow Graph

可视化统计,洞察流量趋势和通信结构。

IO Graph: Statistics → IO Graphs,绘制流量随时间波动图,监测泛洪攻击或带宽瓶颈

Flow Graph: Statistics → Flow Graph,展示主机间的包交换序列,直观捕获重传和分片情况

图表类型

用途

IO Graph

流量趋势、带宽监控

Flow Graph

通信流程、重传/分片可视化

5. 🧠 专家信息(Expert Info)

自动化发现异常报文,减少手动分析时间。

在菜单栏选择 Analyze → Expert Information

分级展示 Notes/Warnings/Errors,快速定位可能的网络异常或协议错误

6. 🗃️ 导出 & 保存数据包

按需导出分析结果,便于分享与归档。

保存过滤后数据包: File → Export Specified Packets(Save displayed packets)

导出对象: File → Export Objects → HTTP/TCP,提取文件、图片等

Tshark 是 Wireshark 的命令行版本,能够在无 GUI 环境下完成抓包、过滤、统计和导出等操作,并且支持与脚本或定时任务无缝结合来实现自动化监控和批量分析。以下内容将从安装、基础用法到脚本化示例和定时执行,循序渐进地介绍如何在生产和研发环境中高效利用 Tshark。

7. 💻 Tshark CLI 自动化

7.1 安装与版本校验

使用系统包管理器安装:

bash

复制代码

# Debian/Ubuntu

sudo apt update && sudo apt install tshark

# CentOS/RHEL

sudo yum install wireshark-cli

(HackerTarget.com) (Opensource.com)

校验版本与帮助信息:

bash

复制代码

tshark -v # 查看版本号

tshark -h # 显示帮助选项

(Wireshark)

7.2 基本抓包命令 & 环形缓存

实时抓包并保存到文件:

bash

复制代码

tshark -i eth0 -w /path/to/output.pcap

(CellStream, Inc.)

使用环形缓冲(Ring Buffer)控制文件大小与数量:

bash

复制代码

tshark -i eth0 \

-b filesize:1000 -b files:5 \

-w /path/to/rotating.pcap

上例生成 5 个每个 1 MB 的循环文件,可防止单文件过大 (Wireshark) (LabEx)

7.3 过滤与导出

捕获时使用 BPF 过滤器减少数据量:

bash

复制代码

tshark -i eth0 -f "tcp port 80"

(Active Countermeasures)

读取已有文件并应用显示过滤器:

bash

复制代码

tshark -r capture.pcap -Y "http.request && ip.src==192.168.1.10"

(Anto ./online)

导出特定对象(例如 HTTP 文件、DICOM):

bash

复制代码

tshark -r capture.pcap \

--export-objects http,/tmp/extracted_http \

-q

(jalblas.com)

7.4 脚本化示例

简单 Bash 脚本:

bash

复制代码

#!/bin/bash

OUTDIR="/var/log/tshark-$(date +%Y%m%d_%H%M%S)"

mkdir -p "$OUTDIR"

# 抓取 5 分钟

timeout 300 tshark -i eth0 -w "$OUTDIR/out.pcap"

# 生成 CSV 报表

tshark -r "$OUTDIR/out.pcap" \

-T fields -e frame.number -e ip.src -e ip.dst -e frame.len \

> "$OUTDIR/summary.csv"

(Wireshark问答) (Stack Overflow)

Python 调用示例:

python

复制代码

import subprocess, datetime

filename = f"capture_{datetime.datetime.now():%Y%m%d_%H%M%S}.pcap"

cmd = ["tshark","-i","eth0","-a","duration:60","-w",filename]

subprocess.run(cmd)

(Stack Overflow)

7.5 集成与定时执行

使用 cron 定时任务:

cron

复制代码

# 每小时执行一次脚本

0 * * * * /usr/local/bin/tshark_capture.sh

(树莓派论坛)

在 CI/CD 或监控平台中调用,结合邮件/告警系统:

bash

复制代码

./tshark_capture.sh && \

mail -s "Tshark 报告" ops@example.com < summary.csv

(LabEx)

以上即为在无 GUI 环境中使用 Tshark 进行抓包与分析,并将其脚本化、定时执行的实践指南。希望能帮助你在服务器、容器或自动化测试中轻松部署网络监控与取证流程。

8. 🚀 进阶小技巧

以下为若干实战中鲜为人知但非常实用的技巧,帮助你在高阶分析中游刃有余。

8.1 自定义列 & 导出 CSV

快速添加任意字段为列 :在 Packet Details 窗格中,右键点击任意字段并选择 "Apply as Column" 即可将其变成一列展示,大大简化繁琐筛选工作 。

导出列数据为 CSV :使用 File → Export Packet Dissections → As CSV 将当前列数据导出为 CSV 文件,便于后期数据处理和报表制作 。

8.2 TLS/SSL 解密

加载 (Pre)-Master Secret 日志 :在 Edit → Preferences → Protocols → TLS 中设置 (Pre)-Master-Secret log filename 即可对支持 Diffie-Hellman 的 TLS 会话进行解密。

使用 RSA 私钥解密:在相同 Preferences 界面可加载服务器私钥,仅支持 RSA 密钥交换场景,适用于历史遗留系统 。

8.3 Lua 脚本 & 自定义 Dissector

快速扩展协议解析 :借助 Lua 脚本,你可在 $HOME/.wireshark/plugins 路径下放置 .lua 文件,实现对自定义协议的精准解析 。

示例调用 :通过 dissector:call(buf(offset):tvb(), pkt, tree) 即可链式解析子协议,轻松处理复杂报文结构。

8.4 合并 & 比较多个抓包文件

命令行合并 :使用 mergecap -w merged.pcap input1.pcap input2.pcap 可按时间戳顺序将多个文件合并 。

GUI 合并 :在 Wireshark 中打开首个文件后,通过 File → Merge 或拖拽其他文件至窗口即可交互式合并 。

对比分析 :借助 editcap -A timestamp1 -B timestamp2 等工具截取特定时间段进行差异比对 。

8.5 Packet Comment & Marking

添加 & 展示注释 :右键报文列表选择 Packet Comment... (Ctrl+Alt+C)进行注释,可在 pcapng 文件中持久保存 。

显示注释列 :新增自定义列,字段选择 frame.comment 或 pkt_comment 即可将评论内容或布尔值展示为新列 。

标记关键报文 :使用中键点击或 Edit → Mark/Unmark Selected 标记报文,使其高亮并便于快速导航 。

8.6 时间偏移 & 时区校正

设置时间参考点 :通过 Edit → Set Time Reference (Ctrl+T)可将选中报文设为时间 0 点,其后所有报文以相对时间显示 。

整体时间偏移 :使用 Edit → Time Shift... (Ctrl+Shift+T)为所有报文批量应用固定或线性偏移,可用于校正时钟漂移或同步多机抓包 。

切换时间格式 :在 View → Time Display Format 中灵活切换绝对时间、年天时间、相对时间等视图,满足不同场景需求 。

8.7 远程 & 实时捕获

远程抓包 :Wireshark 支持通过 sshpipe 、RPCAP(Remote Packet Capture Protocol)对远程设备抓包,结合 Capture Options → Remote Interfaces 配置即可实时分析。

管道输入 :在 Linux 中可利用 ssh user@host tcpdump -w - 'port 80' | wireshark -k -i - 直接抓取并分析远程流量,省去文件中转步骤 。

以上 7 大进阶小技巧,将让你的 Wireshark 使用更加灵活高效。快打开抓包文件逐条实践吧!

9.🏁 总结

一句话总结: Wireshark 从灵活的捕获/显示过滤、Profiles 与颜色规则、会话追踪、图表可视化、专家信息,到 Tshark 命令行自动化及 Lua 自定义等进阶功能,为网络流量分析和故障排查提供了全方位、可视化且可自动化的解决方案