学习黑客抓包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 中,过滤是分析的第一步。

在这里插入图片描述

![在这里插入图片描述](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 自定义等进阶功能,为网络流量分析和故障排查提供了全方位、可视化且可自动化的解决方案

### 回答1: Wireshark是一款广泛使用的网络协议分析工具,它可以轻松地完成DNS抓包的功能。 首先,我们需要打开Wireshark软件,并选择我们所需要的网卡接口进行捕获。一旦开始抓包,我们就可以看到所有的网络流量,包括DNS流量。 然后,我们可以使用过滤器对DNS流量进行筛选。在Wireshark的过滤器中,我们可以输入“dns”或“udp.port == 53”,这样就可以只显示DNS流量。我们还可以根据需要进一步过滤查询或响应数据包。 当Wireshark捕获到DNS流量时,它会将数据包展示在屏幕上。我们可以浏览数据包中的各个字段,例如查询类型、查询内容、响应IP地址等,这些信息对于我们分析网络问题非常有用。 最后,我们可以将捕获到的数据包保存下来,以便日后分析和排查问题。 总的来说,使用Wireshark完成DNS抓包非常简单,只需要开启捕获,设置过滤器并浏览数据包即可。对于网络管理员和安全工程师来说,这是非常有用的一项技能。 ### 回答2: Wireshark是一款网络分组捕获和分析工具,它可以捕获网络上各种协议数据包,其中包括DNS(Domain Name System,域名系统)协议。通过使用Wireshark工具,我们可以完成DNS抓包的操作。 要完成DNS抓包,首先需要启动Wireshark工具,并选择要抓取的网络接口。在Wireshark的图形界面中,点击“Capture”菜单,选择“Interfaces”选项,然后选择要抓取的网络接口,并单击“Start”按钮开始捕获数据包。 当Wireshark开始捕获数据包时,我们需要进行一些设置,以便过滤出DNS数据包。在Wireshark的“Capture Filter”窗口中,我们可以输入过滤规则,比如“dns”,然后单击“Apply”按钮应用过滤规则。 接下来,我们就可以看到捕获到的DNS数据包了。在Wireshark的主窗口中,通过选择“DNS”协议过滤器,我们可以查看所有的DNS数据包。对于每个数据包,我们可以查看详细的信息,包括源IP地址、目的IP地址、DNS查询、DNS响应等。 通过对DNS数据包的抓包和分析,我们可以了解到DNS查询和响应的详细过程,并可以用这些信息进行网络故障排查和性能调优等工作。 ### 回答3: Wireshark是一款流行的开源网络分析工具,可以用于抓取网络流量并分析其中的各种协议。其中,DNS(Domain Name System)是一种重要的网络协议,用于将域名解析为IP地址。 以下是用Wireshark完成DNS抓包的步骤: 1. 下载并安装Wireshark软件; 2. 启动Wireshark,并选择需要监听的网络接口; 3. 在过滤器中输入“dns”,然后点击“Start capturing”按钮开始抓包; 4. 在Wireshark左侧的包列表中找到包含DNS流量的数据包; 5. 双击该数据包打开详细信息; 6. 在详细信息中找到“Domain Name System (response)”部分,可以看到域名和相应的IP地址; 7. 在“Queries”部分可以看到DNS查询请求的详细信息。 通过以上步骤,我们可以使用Wireshark轻松地抓取DNS流量,并看到DNS查询和响应的详细信息。对于网络管理员和安全人员来说,这非常有用。比如,当我们遇到域名解析问题时,用Wireshark抓包可以帮助我们分析问题的原因;同时,DNS协议也可能被黑客攻击,用Wireshark可以帮助我们分析和监测这些攻击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海尔辛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值