资讯动态

从零拆解attack18.pcapng:流量分析实战与攻击链还原

发布时间:2026/10/17 5:06:46 来源:尧图企业网站定制
第一次在竞赛环境里看到“attack18.pcapng”这个文件名多数中职选手的第一反应是愣住一个看起来只是“抓包结果”的文件凭什么占几百分等你真正把里面的数据包一层层剥开才会意识到这其实是整套流量分析题的浓缩版——从扫描探测、弱口令爆破到 Web 漏洞利用、恶意文件落地最后再到隐藏通信和关键信息提取攻击链完整得像一部剧本。而你要做的就是扮演一名安全分析师用 Wireshark 或命令行工具把这些证据串起来把藏在流量里的答案抠出来。本文就围绕 attack18.pcapng 这类数据包分析题从文件格式认知、信息搜集手段、攻击特征识别、实操流水线到问题排查完整拆一遍。无论你是准备中职网络安全竞赛的选手还是刚接触流量分析、想知道“拿到一个 pcap 到底该怎么办”的入门者这篇都能直接作为参考手册用。内容不绕弯子按实战顺序来。1. 拿到 attack18.pcapng先搞清楚自己在面对什么1.1 pcapng 和 pcap 有什么区别很多初学者会忽略文件容器本身的信息但竞赛题不会无缘无故给你一个 pcapng 而不是 pcap。pcapngPacket Capture Next Generation是新一代抓包格式相比老式的 pcap它支持多接口同时抓包、更丰富的元数据比如接口名称、时间精度、丢包统计还能保留更多的数据链路信息。简单的理解pcap 是旧版胶卷pcapng 是带 EXIF 信息的数码照片数据本身之外附带了更多现场线索。attack18.pcapng 这个文件名里“attack”已经提示了题目方向而数字 18 一般只是序号或场景编号不必过度解读。真正需要关注的是文件有多大、包含多少个包、跨了多长时间。用 Wireshark 打开后先看右下角的状态栏包数量和文件大小一下就能看到。如果是一个几十 MB 到几百 MB 的包说明流量不是单次请求而是一整个攻击过程的记录——这个判断直接影响后续策略你不能用“看几个包”的思维去解必须借助统计功能和过滤表达式。1.2 竞赛为什么偏爱数据包分析题数据包分析几乎是网络安全竞赛里性价比最高的题型之一。它不像二进制逆向那样需要深厚的汇编基础也不像 Web 攻防那样需要大量漏洞利用经验核心考察的是“能不能在噪声里发现异常信号”。而这种能力恰好是安全运维、蓝队分析、应急响应中最实用的技能。竞赛里的流量分析题通常有两种形态。一种是给你完整攻击流量让你还原攻击者的行为和最终结果比如“攻击者使用了什么工具”“读取了哪个文件”“flag 是什么”。另一种是给你恶意软件通信流量让你分析回连地址、传输内容、密钥参数等。attack18.pcapng 属于前一种更偏事件复盘。训练这种题真正练的不是点鼠标而是建立一套从“全貌到细节”的排查方法论。1.3 环境准备连工具都不会装后面都是空谈工具不需要多但一定要熟练。首选的图形化分析工具是 Wireshark安装时建议把 tshark 也勾上因为处理大文件、批量提取字段时命令行比鼠标点选高效得多。再配合一个十六进制查看工具能用记事本看文本的也可以用以及一个可以解压、识别文件类型的工具备用。操作系统的选择上Windows 已经够用但如果你能熟练使用 Linux 终端tshark 和文本处理管道的组合会让你在竞赛里快人一步。我在实际带训中反复和选手强调图形界面负责“看懂”命令行负责“提数”两者缺一不可。遇到几百兆的大包时Wireshark 的界面可能会卡顿而 tshark 加过滤条件做统计几秒钟就能出结果。平时练习就应该两套工具混着用不要到了考场才临时抱佛脚。2. 先看统计再谈解密信息搜集阶段的三个抓手拿到包之后最忌讳的就是从头到尾一个一个包翻这样既慢又容易错过重点。正确顺序是先看宏观再看微观。Wireshark 的“统计”菜单就是为这个准备的。2.1 协议分级统计一眼看出流量的大盘打开 Statistics - Protocol Hierarchy这张表会按协议层级列出每种协议的包数量和占比。对 attack18.pcapng 这种攻击流量你会看到 TCP 占了绝大部分HTTP 的数量也不少DNS 可能偶尔冒头。不要小看这个动作它会直接告诉你接下来的重点方向。如果表格里 HTTP 请求数量很大说明这是传统的 Web 攻击流量接下来要去 HTTP 层找线索。如果看到大量 TLS说明攻击者用了加密通道这会大幅提升分析难度你需要把思路转向“证书信息”“TLS 握手特征”等间接线索。如果 DNS 的包数异常多而且查询的域名看起来非常随机就要警惕是不是通过 DNS 做数据外带。协议分级统计就像菜市场门口的大盘价牌先看价再决定买什么。2.2 通信端点与会话视图锁定双方身份Statistics - Conversations 和 Endpoints 提供的是“谁和谁在通信”的视角。在 Conversations 的 TCP 标签页里把表格按数据包数量或传输字节数排序排在最前面的通常是主要通信关系攻击者 IP 打向靶机 IP。这里有一个很实用的小技巧双击某条会话Wireshark 会自动设置过滤表达式只显示这对 IP 之间的流量。攻击流量里通常是一个外部 IP 反复访问靶机的某个端口。锁定这对地址之后后续所有分析都在这个过滤视图下进行画面会清爽很多。另外如果发现有某个 IP 同时连接了大量不同端口这多半是扫描行为可以在表格里看到目标端口号的分布规律。2.3 Expert Info 与追踪流不读正文也能发现异常Wireshark 的 Expert Information右下角小气泡图标或 Analyze 菜单会自动标注异常TCP 重传、重复 ACK、连接重置、HTTP 错误状态码等。这些信息在攻击分析里很有价值。比如大面积的 TCP RST 可能意味着端口扫描被拒HTTP 401 不断出现则指向暴力破解。当你锁定了某个可疑请求右键 - Follow - TCP Stream或者 HTTP Stream就能看到完整的会话内容。HTTP 流量尤其适合这种查看方式因为请求头和响应体一目了然。攻击者提交了什么参数、页面返回了什么内容全部连续显示比一个个包翻方便得多。这也是“解密”攻击行为最主要的手段。3. 从流量特征识别攻击类型attack18 里的常见套路竞赛流量分析题的“剧本”往往围绕几种经典攻击展开。通过大量的数据包特征你能反推攻击链路。这一节把最常见的攻击类型与其流量特征对应起来讲实际分析时可以先做匹配再深挖细节。3.1 扫描探测流量里的“敲门声”攻击第一步通常是扫描。特征非常明显同一源 IP 在短时间内向靶机的多个端口发送 SYN 包且这些包的目的端口递增或呈规律变化。过滤 SYN 包可以用tcp.flags.syn 1 and tcp.flags.ack 0如果看到的响应包大多带 RST 标志说明端口关闭如果是 SYNACK说明端口开放。竞赛题往往希望你根据扫描结果判断“攻击者探测到了哪些服务”然后接着分析后续利用。另一种扫描是 HTTP 路径爆破特征是一连串 GET 请求不断变换路径返回码大多是 404。看到这种模式基本可以判断攻击者正在寻找后台入口或者备份文件。到这一步你要做的不是一个个看 404 响应而是找那少数几个返回 200 的路径——那才是攻击者真正感兴趣的入口。3.2 弱口令爆破与登录绕过攻击者扫描到登录页面后最常见的行为是尝试弱口令。流量特征表现为大量 HTTP POST 请求指向同一个 URL请求体里包含 username 和 password 字段且密码取值高度重复响应状态码在不断变化比如先是 200 回显“登录失败”最后突然出现 302 跳转或者 200 且响应长度变长。分析时可以右键某条 POST 请求Follow HTTP Stream 查看提交的参数。竞赛里这类流量经常会把密码明文放进去直接看就能发现字典规律。有些题会在数据包里留下攻击者使用的字典片段或者工具指纹比如 User-Agent 字段是某个知名爆破工具的名字这也是一个给分点。3.3 Web 漏洞利用注入、上传与命令执行如果攻击者过了登录这一关接下来基本就是利用 Web 应用漏洞。SQL 注入的特征体现在 URL 参数或 POST 参数里单引号、union select、sleep、information_schema 等关键字会频繁出现。过滤时可以检索http.request里的参数或者直接在显示过滤器里搜这些关键字例如http.request and frame contains union文件上传漏洞的特征则是 POST 请求中出现了文件上传的 multipart 格式而且 Content-Disposition 里的 filename 往往带着不常见的扩展名比如 .php、.jsp、.phtml。如果能从 Wireshark 的导出对象里把上传的文件导出来再用文件识别工具看它的真实类型基本上就还原了 webshell 落地的过程。命令执行漏洞的特征更明显请求参数里出现cmd、exec、whoami等关键字或者 URL 编码后的命令字符串比如%77%68%6f%61%6d%69解码后是 whoami。流量分析中遇到这类内容要毫不犹豫地解码并记录它往往是后续获取 flag 的关键证据。3.4 隧道与隐蔽通信藏在正常协议里的“暗语”攻击者拿到权限后有可能不再走 HTTP而是把数据封装到 DNS、ICMP 这类通常不会被人注意的协议里。DNS 隧道的特征是大量 DNS 查询的域名前缀非常长由随机字符组成而且同一时间段的查询数量暴增响应里 TXT 记录的内容不是普通文本而是 Base64 或十六进制编码的字符串。ICMP 隧道的特征则是ICMP echo 请求的 payload 不再是固定长度的字符串而是带有明显二进制数据且请求与响应的 payload 长度往往不一致。分析这类流量时把“看起来异常”的协议单独过滤出来导出 payload 后做 Base64 解码或十六进制转储经常能直接还原出被传输的文件内容。这也是“深入解密”这个标题里最值得花时间练习的部分。3.5 从加密流量中还原信息看不了正文就看“旁证”现在不少攻击流量会启用加密竞赛题也开始加入 TLS 流量。碰上 HTTPSWireshark 默认只能看到握手过程正文全是密文。但你不要急着放弃可以从几个“旁证”入手看 TLS 握手时的 Client Hello里面的 SNI 字段会暴露访问的域名看证书信息证书签发者、有效期可能与攻击者的工具相关看加密流量前后的明文交互比如某个下载行为先通过 HTTP 完成再切换成 HTTPS那么下载文件的信息可能已经在明文里出现。如果题目额外提供了 TLS 密钥文件比如 keylog 文件那就可以在 Wireshark 里配置解密。配置路径是 Preferences - Protocols - TLS - 添加 RSA key 或 keylog 路径。这一步属于加分操作平时练习要专门做一遍免得考场上找不到菜单。4. 实操过程复盘从 attack18 到答案的完整流水线有了前面的方法论这一节用一条完整的分析链路把“怎么一步步做”串起来。以我多年带赛的经验把这套流程走一遍绝大多数流量分析题都能拿上分。下面按顺序拆解每个环节都有可复制的操作。4.1 第一步过滤表达式框定事件窗口打开 pcapng 之后先看统计再定窗口。假如从协议分级里发现 HTTP 流量集中在某几分钟内就把显示过滤器设定为时间窗口加协议比如frame.time 2024-05-11 09:15:00 and frame.time 2024-05-11 09:20:00 and http这么一过滤攻击主过程立刻浮出水面。这样做的好处是排除背景流量干扰。另一个常用过滤是只保留 IP 对ip.addr 192.168.1.10 and ip.addr 10.10.10.5。把分析范围缩小到攻击者与靶机之间再配合 http.request 和 http.response你就能按时间顺序梳理出攻击者的操作序列。4.2 第二步统计排序锁定重点请求在过滤后的视图里用 Statistics - HTTP - Requests 查看所有 HTTP 请求的列表表格会直接列出方法、URL、请求状态。按请求数量降序排列前面几行往往就是爆破请求按响应长度排序异常大的响应又往往是文件下载或页面包含敏感内容。如果这一步用的是 tshark可以命令式提取效率更高tshark -r attack18.pcapng -Y http.request -T fields -e http.host -e http.request.method -e http.request.uri -e http.response.code | sort | uniq -c | sort -nr | head -50这一串命令的作用是把请求的域名、方法、URI 和状态码提出来做统计排序。看到哪个 URI 出现次数特别多基本就锁定了攻击焦点。4.3 第三步追踪流还原攻击细节锁定可疑请求后Follow TCP Stream 逐条查看会话内容。这里有一个习惯很重要每一个关键发现都要记录到笔记里包括时间戳、源目 IP、请求参数、响应特征。竞赛时间紧张回头复核全靠笔记。比如在某条 HTTP 会话里看到攻击者 POST 了一段 PHP 代码代码里出现 base64 编码的字符串就可以复制出来在本地解码。解码结果通常是下一步利用的脚本或命令。这个环节经常隐藏第一个 flagflag 可能直接出现在响应页面的 HTML 注释里或者藏在某个文件名中。4.4 第四步提取对象与还原文件攻击过程中的恶意文件和工具是重要得分点。Wireshark 的 File - Export Objects - HTTP能把 HTTP 会话中传输的文件全部列出来按大小排序后重点看那些内容类型异常的条目。导出的文件先用文件命令看真实类型。竞赛里的常见套路是把一个压缩包伪装成图片或者把可执行文件伪装成文本。改扩展名后解压或运行分析工具检测往往能得到攻击者下载的工具或者 flag 所在的加密压缩包。如果压缩包有密码再回头找流量里是否出现密码字符串——攻击者经常会把密码写进命令参数里或者通过某条明文 HTTP 请求传输。这一步也对“判断题目的终点”至关重要。流量分析题的最后一道填空往往是“攻击者最终读取的 flag 文件内容”而这个文件内容要么在响应正文里直接出现过要么需要你还原出加密容器后解出。做提取时务必完整避免只导出部分文件导致解不开。5. 常见问题与排查技巧实录带选手训练这么多年数据包分析踩过的坑基本都见过。这一节挑出最高频的问题整理成实战排查经验能帮你少走很多弯路。5.1 显示过滤器写了没效果怎么排查最常见的手误是把写成或者把协议名写错比如tcp.port80。Wireshark 里过滤器语法错误时输入框会变红这时候先看语法提示。另一个高频问题是大小写协议名建议小写字段名里有些布尔值要写成小写比如tcp.flags.syn 1写成大写 SYN 就可能不识别。还有一种情况是过滤表达式本身没问题但结果为空——这是因为没有先确认字段值是否存在。建议先用 统计菜单里的字段列表或者在某个包上右键看详细信息里的字段名确认后再写过滤。遇到大文件操作卡顿可以临时用 tshark 处理不必死磕图形界面。5.2 面对加密流量抓不到重点怎么办竞赛里如果出现大量 TLS 流量不要慌。先看 SNI 和证书旁证这条思路在前面已经说过关键是平时要练出手感。另一个容易疏漏的点是很多加密 Web 流量里会夹杂少量明文 HTTP 请求这种请求往往用于重定向或者资源加载里面同样带着路径信息。如果题目给了解密密钥记得在协议设置里启用 TLS 解密但要注意 Wireshark 版本和密钥格式的匹配度。老版本菜单在 SSL 标签下新版本在 TLS 标签下菜单名称不同容易找不到。实在解不开密文时检查一下流量里有没有另外的明文通道比如 FTP、TFTP 或者邮件协议攻击者往往不会把鸡蛋放在一个篮子里。5.3 时间戳、乱序和丢包干扰判断抓包文件是虚拟化的不代表网络完全无损。TCP 重传、乱序、重复 ACK 在文件中很常见。看到这些标记时第一反应不应该是“有攻击”而是“这是正常网络抖动还是扫描导致”。解决方法是按时间聚类看整体行为而不是被单个异常包带偏。比如端口扫描时大量 SYN 包会引发大量 RST 响应这些响应可能与重传混在一起。心法就是先看包数量和会话列表的整体规律再回头看个别包细节。如果看到一个 TCP 流既有重传又有明文敏感内容那重传只是干扰项内容才是得分点。5.4 独家心得从摔坑到拿分的关键习惯最后分享几个我从大量实战中总结出的习惯看起来不起眼但对得分效果立竿见影。第一始终维护“时间线”。把攻击者的每一步按时间顺序记录包括扫描时间、爆破时间、利用时间、回连时间。竞赛评分往往盯着关键时间点而流动的线索更容易被遗忘。第二养成“先导出后分析”的习惯。Header 里看到的任何可疑文件、可疑参数值都先导出或者复制到本地不要指望 Wireshark 的临时显示可以随查随用。关闭文件再打开后之前的追踪流视图会丢但导出的文件不会丢。第三不忽略小协议。很多人只看 HTTP 和 TCP把 DNS、ICMP、ARP 全忽略。但 attack 系列这种题目恰恰喜欢在小协议里藏彩蛋。每次花几秒看一眼协议分级确认小协议里没有异常再继续深挖大协议。第四脚本化辅助分析。学一点 tshark 加 grep、awk 的组合用法你会发现很多图形界面做不到的批量提取在命令行里一行就能完成。比如提取所有 HTTP 响应中包含 flag 相关字样的数据包tshark -r attack18.pcapng -Y http.response -T fields -e tcp.stream -e http.file_data | grep -i flag这类操作在竞赛里非常实用平时可以多练几遍形成肌肉记忆。坦白说数据包分析不是靠天赋的题型它更接近一门“手艺”。只要把工具用熟、把常见攻击的特征记牢、把分析流程固化成自己的习惯哪怕第一次接触 attack18.pcapng 这种文件你也能在有限时间里梳理出完整的攻击链条。多找几份类似的流量文件反复练从“看到包就头疼”到“看一眼统计就知道大概剧情”这个过程会比你想的更短。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑