学习黑客抓包wireshark

Wireshark 实用技巧 🚀🔍

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

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

📄 目录

  1. 🕵️‍♂️ 捕获过滤 vs 显示过滤
  2. 🎨 Profiles & 颜色规则
  3. 🔄 Follow Stream(会话追踪)
  4. 📊 IO Graph & Flow Graph
  5. 🧠 专家信息(Expert Info)
  6. 🗃️ 导出 & 保存数据包
  7. 💻 Tshark CLI 自动化
  8. 🚀 进阶小技巧
  9. 🏁 总结

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 会话,查看端到端数据流。

  1. 选中数据包 → Analyze → Follow → TCP StreamHTTP Stream
  2. 在流窗口内,可切换请求/响应,对话内容一览无余

场景示例:重组 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.commentpkt_comment 即可将评论内容或布尔值展示为新列 。
  • 标记关键报文 :使用中键点击或 Edit → Mark/Unmark Selected 标记报文,使其高亮并便于快速导航 。

8.6 时间偏移 & 时区校正

  • 设置时间参考点 :通过 Edit → Set Time ReferenceCtrl+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 自定义等进阶功能,为网络流量分析和故障排查提供了全方位、可视化且可自动化的解决方案

相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习