学习黑客抓包wireshark

发布于:2025-05-11 ⋅ 阅读:(11) ⋅ 点赞:(0)

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 中,过滤是分析的第一步。

在这里插入图片描述

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b3b9f87065d743749f2bfe42427f7d46.png

类型 位置 示例 作用
捕获过滤 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 安装与版本校验

  • 使用系统包管理器安装:

    # Debian/Ubuntu
    sudo apt update && sudo apt install tshark
    # CentOS/RHEL
    sudo yum install wireshark-cli
    

    (HackerTarget.com) (Opensource.com)

  • 校验版本与帮助信息:

    tshark -v      # 查看版本号
    tshark -h      # 显示帮助选项
    

    (Wireshark)

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

  • 实时抓包并保存到文件:

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

    (CellStream, Inc.)

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

    tshark -i eth0 \
      -b filesize:1000 -b files:5 \
      -w /path/to/rotating.pcap
    

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

7.3 过滤与导出

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

    tshark -i eth0 -f "tcp port 80"
    

    (Active Countermeasures)

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

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

    (Anto ./online)

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

    tshark -r capture.pcap \
      --export-objects http,/tmp/extracted_http \
      -q
    

    (jalblas.com)

7.4 脚本化示例

  • 简单 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 调用示例:

    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 定时任务:

    # 每小时执行一次脚本
    0 * * * * /usr/local/bin/tshark_capture.sh
    

    (树莓派论坛)

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

    ./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 自定义等进阶功能,为网络流量分析和故障排查提供了全方位、可视化且可自动化的解决方案


网站公告

今日签到

点亮在社区的每一天
去签到