POST

CTF 流量分析:Wireshark 的常用姿势

拿到一个 pcap 包怎么下手?从过滤器到导出对象,梳理 Wireshark 在 CTF 里的常见套路。

网络方向的 CTF 里,最常遇到的题型就是「给一个流量包,找 flag」。这类题基本都在 Wireshark 里完成。它上手不难,但要快速定位到关键数据,还是得熟悉几个功能。

本文只讨论 CTF 靶场和授权环境下的用法。

打开包先干什么

拿到 .pcap / .pcapng,别急着一个个点。先看整体:

  1. Statistics → Protocol Hierarchy:看都有哪些协议、各占多少,能快速判断是 HTTP、DNS、TCP 还是别的;
  2. Statistics → Conversations:看通信双方和流量大小,异常的大流量往往就是目标;
  3. 用过滤器缩小范围。

过滤器是核心

Wireshark 的显示过滤器(display filter)比抓包过滤器好用得多,常用写法:

http                          # 只看 HTTP
http.request.method == "POST"
ip.addr == 192.168.1.10       # 只看某个 IP
tcp.port == 8080
tcp.stream eq 3               # 只看某一条 TCP 流
dns                           # 只看 DNS

tcp.stream eq N 特别有用:右键某个包 → Follow → TCP Stream,就能看到完整的会话内容,很多明文 flag 直接就在这里。

几个高频技巧

导出 HTTP 对象。 File → Export Objects → HTTP,能把传输的文件(图片、压缩包、脚本)一次性导出来。很多题 flag 就藏在下载的文件里。

Follow TCP/UDP Stream。 比逐包看高效得多,尤其是自定义协议,把它当文本流看往往一目了然。

搜索关键字。 Ctrl+F 搜 flag、ctf、{ 之类的字符串。如果是明文传输,一搜就中。

看 TLS 握手。 如果流量是加密的,先确认有没有 key 文件或者能降级成明文;没有的话,这题大概率不是让你解密内容,而是看握手、证书或者流量特征。

USB / 蓝牙流量。 有些题会把 USB HID 数据抓下来,需要手动还原按键。Wireshark 能解析 USB,但要自己写点脚本处理。

tshark 补一刀

服务器上没有图形界面时,tshark 是 Wireshark 的命令行版本,过滤语法一致:

tshark -r capture.pcap -Y "http.request" -T fields -e http.host -e http.request.uri

做批量提取、写脚本时,比手动点界面效率高很多。

常见的坑

包太大卡死。 几百 MB 的包直接开会很慢,可以先用 editcap 切分,或者用 tshark 过滤后再看。

时间戳顺序乱。 可以通过 View → Time Display Format 调整。

抓包位置不对。 如果是在本机抓,可能抓不到目标网段;CTF 里通常给的是已经抓好的包,注意确认网卡和方向。

别只看 HTTP。 有些题走的是 DNS 隧道、ICMP 或自定义 TCP,协议层级看不出来就多翻几个。

小结

Wireshark 的用法可以总结成一句话:先用统计定范围,再用过滤器缩到具体流,最后 Follow Stream 或导出对象看内容。

真正拉开差距的不是记了多少过滤器,而是对协议的理解——知道 HTTP 长什么样、TLS 握手有哪些包、DNS 查询怎么走,看包的时候才会有方向。

👁 - 次浏览

留言

← 返回首页