ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Wireshark流量分析实战:从pcap统计到VoIP录音还原的完整路径

Wireshark流量分析实战:从pcap统计到VoIP录音还原的完整路径 很多人拿到一个 pcap 文件的第一反应是双击打开 Wireshark然后盯着满屏蓝绿交错的报文发呆完全不知道下一步该干什么。在 CTF 流量分析题目里这是最常见的卡壳姿势——明明 flag 就在包里翻了一个小时就是找不到。我见过太多选手栽在这一步不是不会用工具而是缺少一条清晰的解题主线先看什么、再查什么、最后恢复什么每一步都要有明确目的。这篇文章打算把流量分析基础这件事讲透。它面向的是刚接触 CTF 流量分析、或者工作中遇到抓包需求但不知道如何下手的人。内容覆盖三个层次一是拿到流量包之后如何建立全局认知二是从协议层到应用层的常见分析路径三是从 HTTP、DNS、VoIP 等高频题型中提取 flag 的具体手法。尤其是 VoIP 这类容易被忽略的协议很多人不知道流量里还能还原出通话录音而这也正是近年比赛里反复出现的考点。1. 拿到 pcap 之后的固定动作统计信息不是摆设1.1 三个统计工具帮你两分钟判断题目类型流量分析题目的第一步永远是打开 Statistics 面板而不是一条条点开报文。Wireshark 的 Statistics 菜单下有三个高频入口Protocol Hierarchy协议分层、Conversations会话、Endpoints端点。Protocol Hierarchy 会告诉你这个包里 DNS 占多大比例、TCP 占多大比例、有没有 HTTP、有没有 SIP、有没有 USB 甚至蓝牙流量。这一步基本决定了解题方向——一旦看到 SIP 和 RTP 占了一大部分这就是 VoIP 录音题看到大量 HTTP 交互就去翻对象导出看到协议分层里出现奇怪的私有协议就要考虑是不是自定义协议分析。Conversations 和 Endpoints 用于定位通信双方。在有攻击场景的流量包里先看谁和谁在通信、哪个 IP 收发了大量数据往往能直接锁定可疑主机。有些题目会在私网段里模拟出几十台设备的流量但真正的 flag 传输只在某一对上发生通过收发字节数排序就能快速筛出来。我习惯把 Endpoints 按 Bytes 列降序排列数据量最反常的那条链路大概率就是题眼。1.2 统计信息的命令行替代tshark 让分析可复用如果流量包很大或者你需要在终端环境里复现分析过程Wireshark 图形界面的统计功能就有点不够看了。这时候用 tshark 会更顺手# 查看协议分层 tshark -r capture.pcap -q -z io,phs # 查看 TCP 会话统计 tshark -r capture.pcap -q -z conv,tcp # 查看 HTTP 请求 tshark -r capture.pcap -Y http.request -T fields -e http.request.method -e http.host -e http.request.uri这三条命令覆盖了大多数场景下的统计需求。-q 是安静模式不逐包打印-z 后面跟统计模块-Y 是显示过滤器-T fields 指定输出字段。把命令存成一个 shell 脚本以后拿到新包直接跑一遍比每次开 GUI 点鼠标高效得多。尤其在打比赛的高压环境下键盘操作永远比鼠标快。1.3 为什么“先统计”比“先找 flag”更可靠直接按 CtrlF 搜 flag 字符串这种方法在极少数送分题里能奏效但大部分流量包里的 flag 不会以明文形式出现在包的某个角落里。更常见的情况是flag 被拆成多段放在 DNS 查询里、被编码后写在图片文件的尾部、或者藏在 VoIP 通话录音里。不先建立全局认知搜索就无从谈起。统计信息的价值在于帮你划定搜索范围——知道这包流量主要由什么协议构成才能决定下一步用哪个菜单、哪类过滤器。2. 抓包工具与命令行姿势选对工具分析就成功了一半2.1 Wireshark、tshark、tcpdump 的三者定位很多初学者把这三个工具当成同一件事其实它们的分工完全不同。tcpdump 负责被动抓包适合在无法安装图形界面的服务器上长期采集流量tshark 是 Wireshark 的命令行版本负责对已有 pcap 做离线分析和过滤Wireshark 则是最终的人工检视工具负责在图形界面里完成交互式分析、流重组和对象导出。实际比赛里我很少用 tcpdump 抓包因为题目会直接给 pcap但日常工作中它仍是首选采集工具。一条最常见的抓包命令是sudo tcpdump -i eth0 -s 0 -w dump.pcap-s 0 表示抓完整包不加这个参数时默认只抓 68 字节的头部对分析毫无意义。加 -w 写入文件之后 tcpdump 就不再输出到终端避免大流量时丢包。2.2 显示过滤器这十几条够覆盖九成题目Wireshark 的过滤器分为捕获过滤器和显示过滤器初学者最容易搞混。捕获过滤器在抓包时生效语法偏底层显示过滤器在分析时生效写法更贴近协议字段。做题时主要用显示过滤器这里列出我验证过的高频表达式http.request || http.response只看 HTTP 交互tcp.port 80 || tcp.port 8080按端口查找ip.addr 10.0.0.8只看某个 IP 的流量frame contains flag在原始帧数据里搜关键字>
返回列表