20253912 2025-2026-2 《网络攻防实践》实验三
20253912 2025-2026-2 《网络攻防实践》实验三报告
1. 知识点梳理与总结
本次实验围绕“网络嗅探、协议分析与流量取证”展开,核心任务不是单纯学会抓包,而是学会把网络中的原始数据包还原为可解释的通信过程、可识别的攻击行为和可复盘的安全结论。若说第一次作业解决的是“实验环境怎么搭起来”,第二次作业解决的是“目标有哪些资产、开放了什么服务、存在哪些漏洞”,那么本次第三次实验进一步解决的就是:当网络中真的发生访问、认证、扫描与攻击行为时,如何通过流量证据把这些过程看清楚、讲明白、还原出来。
从知识结构上看,本次实验涉及三个层面的内容:
- 网络嗅探(Sniffing):通过
tcpdump、Wireshark 等工具捕获网络中实际传输的数据包; - 协议分析(Protocol Analysis):对 TCP、HTTP、TELNET、ICMP、UDP 等协议字段进行解释,理解连接建立、数据传输与异常探测行为;
- 取证还原(Traffic Forensics):从 pcap 文件中识别攻击源、目标主机、扫描特征、开放端口、工具类型和操作系统指纹,形成完整攻击画像。
1.1 网络嗅探与协议分析的基本认识
网络嗅探本身是一种中性技术。它既可以用于网络管理、性能排障、安全审计和数字取证,也可能被攻击者用于窃取明文账号口令、观察网络结构和定位脆弱服务。是否安全,取决于使用场景和授权边界。放到本次课程环境里,它的价值主要体现在两个方面:
- 观察真实通信过程:例如浏览器访问网站时,到底访问了哪些服务器、建立了哪些连接;
- 识别异常与攻击行为:例如明文 TELNET 登录、半开放扫描、操作系统探测、异常 TCP 标志位探测等。
协议分析则是在“抓到包”的基础上继续追问:这些包代表什么行为?是谁发给谁?为什么会出现这样的标志位和响应关系?只有理解了协议层逻辑,抓包工具的输出才不再是零散字符,而能转化成有安全意义的分析结论。
1.2 tcpdump 与 Wireshark 的分工
本次实验同时使用了 tcpdump 与 Wireshark,这两类工具的风格和定位并不相同。
- tcpdump 更适合做命令行下的快速抓取与初筛,优点是轻量、高效、便于远程环境与终端场景使用;
- Wireshark 更适合做图形化深度分析,优点是显示过滤器丰富、协议解析细、可直接追踪 TCP 流并查看会话内容。
从专业角度看,二者可以理解为:
tcpdump偏向 Traffic Capture / Quick Triage(抓取与快速初筛)- Wireshark 偏向 Deep Protocol Inspection(深度协议解析)
这也是本次实验的一个重要思路:先用轻量工具定位问题,再用图形化工具深挖细节。
1.3 BPF 过滤与显示过滤的意义
抓包最大的难点通常不是“抓不到”,而是“抓到了太多”。因此过滤能力本身就是抓包分析的核心基本功。
- 在
tcpdump中,常用的是 BPF(Berkeley Packet Filter)过滤表达式,例如通过地址、端口、协议类型、标志位来减少噪声; - 在 Wireshark 中,常用的是 Display Filter(显示过滤器),例如
telnet、icmp、tcp.flags.syn == 1 && tcp.flags.ack == 0等,用于围绕具体问题精确筛选证据。
也就是说,过滤器并不是“附加技巧”,而是整个分析效率的关键。没有过滤思路,面对成千上万条报文时就很容易陷入“看得很累但什么也没看出来”的状态。
1.4 明文协议的安全问题:以 TELNET 为例
TELNET 是典型的历史遗留远程登录协议,它最大的安全问题是:默认不对用户名、口令及交互内容进行加密。
这意味着:
- 用户输入的认证信息可能以明文形式直接出现在网络流量中;
- 同一网段内若存在被动嗅探者,就可能恢复登录用户名甚至密码;
- 对攻击者来说,TELNET 既是远程管理入口,也可能是口令窃取的风险点;
- 对防守者来说,TELNET 流量是非常典型的“高风险明文协议”证据。
本次实验中,通过 Wireshark 的“追踪 TCP 流(Follow TCP Stream)”可以直接看到 guest 用户名的明文传输过程,这种现象非常直观地说明了:为什么现代系统中 SSH 要替代 TELNET。一个理论概念,只有在抓包窗口里被看见之后,才真正变得有现实感。
1.5 端口扫描、主机探测与操作系统识别
第三次实验不再只是像第二次作业那样主动对靶机“发起扫描”,而是转向从已有流量证据中“识别别人做过什么扫描”。这意味着分析视角发生了变化:
- 第二次作业更偏向 主动侦察(Active Reconnaissance)
- 第三次实验更偏向 被动观察与取证(Passive Observation / Forensics)
在本次 listen.pcap 分析中,重点识别了以下几类行为:
- 主机存活探测:通过 ICMP Echo Request / Echo Reply 判断目标是否在线;
- TCP SYN 半开放扫描:通过 SYN → SYN+ACK / RST 的交互判断端口开放状态;
- 异常标志位扫描:例如 Xmas Scan 所使用的 FIN、PSH、URG 组合;
- 操作系统探测:通过探测包特征、协议栈行为或
p0f被动指纹识别结果推测系统类型。
这说明,网络流量不仅能告诉我们“发生了通信”,还能够告诉我们“通信背后的意图是什么”。
1.6 与往次作业的关联性讨论
如果把三次实验放在同一条课程实践链路中看,它们并不是彼此孤立的,而是逐步递进的关系。
(1)与第二次作业的联系:从“主动发现”走向“被动还原”
第二次作业主要围绕网络信息收集、资产识别、Nmap 扫描和 Nessus 漏洞评估展开,重点在于回答:
- 目标有哪些资产;
- 开放了哪些端口;
- 跑了哪些服务;
- 存在哪些风险点。
而本次第三次实验则更进一步,开始回答:
- 网络中真实产生了哪些通信;
- 这些通信在数据包层面是什么样子;
- 攻击者是如何一步步进行探测和侦察的;
- 能否从抓到的流量里反推出攻击主机、工具类型和系统特征。
也就是说,第二次作业偏向“我去看目标”,第三次实验偏向“我去看别人怎么看目标”。两者合起来,才真正构成了攻防中的双重视角:既会主动侦察,也会被动取证。
(2)本次作业在三次实验链路中的位置
如果把三次实验串起来,可以概括为:
第一次作业:搭环境
第二次作业:做侦察与攻击面分析
第三次作业:看流量、做协议分析与攻击取证
这三部分共同构成了一条完整的课程实践路线:
- 先有实验拓扑与可控网络;
- 再对目标做资产识别与漏洞评估;
- 最后回到流量证据层面,对访问行为、认证过程和扫描活动进行分析与复盘。
因此,第三次实验实际上是对前两次作业的一次“向底层协议与安全证据下沉”的深化。
1.7 知识拓扑图
下图对本次实验涉及的知识体系进行了结构化整理:

2. 实验过程及重点解析
2.1 使用 tcpdump 嗅探 Web 访问流量
本环节的目标是:在访问网站首页时,通过抓取本机发出的 HTTP 连接建立报文,分析浏览器实际访问了多少个 Web 服务器,以及这些服务器的 IP 分别是什么。
2.1.1 关键命令与作用
实验使用的抓包思路是围绕 HTTP 连接建立过程进行观察。原理上,浏览器访问 Web 服务器时,首先要向目标发起 TCP 连接。如果只关注连接建立阶段的关键报文,就可以避免后续大量页面内容传输带来的噪声。
这种思路本质上是在做 Connection Initiation Observation(连接建立阶段观察)。它的优势是:
- 能快速看到访问目标是谁;
- 不会被大量应用层数据干扰;
- 适合回答“访问了哪些服务器”这一类问题。
2.1.2 图示解释与专业化说明

图示解释: 上图展示的是 tcpdump 抓到的实时连接发起流量。每一行都代表一条满足过滤条件的报文记录,从中可以观察到本机在访问网页时,并不是只与单一目标主机建立连接,而是同时与多个不同的 IP 发生通信。
这说明一个现代网页的加载过程通常不是“浏览器访问一个站点 = 只访问一台服务器”,而更可能涉及:
- 主页面服务器;
- 静态资源分发节点(CDN);
- 第三方统计或脚本服务;
- 图标、样式表、广告或跳转资源所在服务器。
从专业术语上说,这反映的是 多源资源加载(Multi-Origin Resource Loading) 和 内容分发机制(Content Delivery Mechanism)。因此,同一次网页访问中出现多个目标 IP,是现代 Web 访问的正常现象,而不是抓包异常。
为了让报告更完整,可以在这一部分补充一个分析结论:
抓包看到的“多个目标 IP”,本质上体现的是现代网页服务的分布式交付特征,而不是单一服务器结构。
2.2 Wireshark 嗅探 TELNET 登录过程
这一部分是本次实验中最有安全教育意义的一环,因为它把“明文协议不安全”这个概念从书本里的抽象定义,变成了可以直接看到的事实。
2.2.1 连接场景与实验意义
本环节使用终端连接 BBS 服务,并在 Wireshark 中对相关流量进行抓取分析。重点不是“成功登录某个站点”,而是借这个过程观察一个典型明文协议在网络中的传输形态。

图示解释(图 2-1): 该图展示的是终端中发起 TELNET 登录的场景。它代表的是一次真实的应用层认证过程,也是后续抓包分析的“事件源头”。从实验方法上讲,这一步相当于人为制造一个可被观察的网络会话,为后续 Wireshark 中的过滤、定位和流重组提供对象。
2.2.2 原始数据包序列的含义

图示解释(图 2-2): 这张图展示了 Wireshark 中捕获到的原始 TELNET 报文序列。初看之下,列表中是大量重复、零碎的数据包,但从协议角度看,这正是 TELNET 这种交互式明文协议的典型特征:
- 用户每输入一个字符,客户端通常都会立即发送一次;
- 服务端接收后又会回显该字符;
- 因此一个用户名往往会在流量中“成对出现”。
这种“逐字符交互 + 回显”机制说明,TELNET 并不是把完整登录信息打包后再一次性发送,而是在用户键入过程中就不断把字符暴露到网络中。
从安全角度说,这意味着即使只是被动嗅探,也足以恢复出完整输入过程。
2.2.3 TCP 流重组与明文恢复

图示解释(图 2-3): 这张图是执行“追踪 TCP 流(Follow TCP Stream)”后的结果,也是整个环节最关键的证据图。因为在这个窗口中,原本分散在多个数据包中的字符被重组为连续的双向会话内容,登录输入过程被完整还原出来。
这里最值得强调的有三点:
-
红蓝颜色区分了两个方向的数据流
一般来说,一种颜色表示客户端发送的数据,另一种颜色表示服务端返回的数据,这样可以更清楚地区分“我输入了什么”和“服务器回显了什么”。 -
用户名之所以出现重复,不是输入了两遍,而是输入 + 回显
例如输入g时,会先有一条客户端发给服务器的g,紧接着又有一条服务端回显的g,所以在重组视图中会看到成对字符。 -
若输入的是普通账号口令,密码同样可能被恢复
这正是 TELNET 最危险的地方:认证信息在网络层面没有被加密保护。
从专业术语上说,这一步完成的是 TCP Stream Reassembly(TCP 流重组) 与 Credential Recovery in Cleartext Protocol(明文协议认证信息恢复)。
如果要在报告里用一句更直白的话总结,就是:
这张图证明了:只要协议本身不加密,抓到包就有可能看到用户名和密码。
2.3 离线数据包取证分析(listen.pcap)
这一部分从“实时看流量”转向“离线审计 pcap 文件”,更接近安全运维、应急响应和数字取证的实际工作方式。
2.3.1 确定攻击源与目标主机
在打开 listen.pcap 后,首先要做的不是立刻判断“用了什么扫描”,而是先识别通信双方中谁更像攻击者、谁更像被扫描目标。一般来说:
- 对多个端口持续主动发起探测的一方,更可能是攻击机;
- 对这些探测作出响应的一方,更可能是目标主机或蜜罐主机。

图示解释: 这张图展示的是经过过滤后保留下来的关键响应报文。从流量关系中可以看出,攻击机与目标机之间存在明显的端口试探模式。
在分析逻辑上,这一步完成的是 Source / Destination Role Identification(攻击源与目标角色识别)。只有先分清“谁在扫谁”,后面的开放端口统计、工具识别和系统判断才有依据。
2.3.2 通过 SYN+ACK 判断开放端口
在 TCP 扫描场景中,若攻击机向某端口发送 SYN,目标主机返回 SYN+ACK,则通常意味着该端口处于开放状态;若返回 RST,则通常意味着端口关闭。
因此,过滤出目标主机返回的 SYN+ACK 报文,是判断开放端口最直接的方法之一。

图示解释: 过滤后屏幕上留下来的这些报文,并不是普通的业务通信,而是目标主机对探测请求作出的“端口开放确认”。
从这些响应端口可以归纳出目标机的开放服务,如 SSH、TELNET、HTTP、MySQL 等。这里要强调的不仅是“列出端口”,更要指出这些端口背后的安全意义:
- 22/SSH:远程管理入口,若存在弱口令或配置错误则风险较高;
- 23/TELNET:明文协议,风险显著;
- 80/HTTP:Web 攻击入口,常与文件上传、弱口令、组件漏洞等相关;
- 3306/MySQL:数据库暴露,一旦未授权或弱认证,风险极大。
也就是说,这一步本质上完成的是 Port State Verification(端口状态验证) 和 Service Exposure Assessment(服务暴露面评估)。
2.3.3 识别扫描方式与工具特征
在原始 pcap 中,攻击者往往不会只做一种动作,而是会把主机存活探测、端口扫描、系统识别等动作串联起来。因此在分析时不能满足于“看到 SYN 包就只说是 SYN 扫描”,而应该建立一个更完整的扫描画像。
本次实验中,可以从流量中识别出以下几类特征:
- ICMP 探测:说明攻击者先判断目标是否在线;
- 大量仅带 SYN 的探测报文:说明存在典型的 TCP SYN 半开放扫描;
- 异常 TCP 标志位组合:说明存在特殊探测方式,如 Xmas Scan;
- 系统探测相关行为:说明扫描行为不仅停留在端口层面,还在尝试识别目标操作系统。
从取证角度看,这一步的重点不是背命令,而是理解对应关系:
ICMP往往对应主机发现;SYN → SYN+ACK / RST往往对应端口扫描;- 特殊标志位组合往往对应规避型探测;
- 指纹特征包或协议栈差异往往对应系统识别。
2.3.4 p0f 被动指纹识别的意义

图示解释: 上图展示的是 p0f 对 listen.pcap 进行分析后的结果。p0f 的特点是:它不主动向目标发包,而是通过分析已有流量中的 TTL、窗口大小、DF 标志位等协议栈特征,推断主机可能的操作系统类型。
这种方式的专业名称是 Passive OS Fingerprinting(被动式操作系统指纹识别)。
它的优势在于:
- 隐蔽性高,不会因为主动探测而惊动目标;
- 适合离线 pcap 分析;
- 可以作为 Nmap 主动识别结果的补充证据。
实验中能够推断攻击机系统为 Linux 2.6.x,说明即使不直接接触攻击者主机,仅凭流量痕迹也能还原出较多背景信息。这正体现了流量取证的价值所在。
3. 学习中遇到的问题及解决
3.1 问题一:面对大量数据包时,容易“看花眼”
问题表现:
打开 Wireshark 后,屏幕上充满了不同地址、不同协议和不同方向的数据包,起初很难判断哪些和实验目标真正相关。
原因分析:
抓包不是“看得越多越好”,而是必须围绕问题建立过滤思路。如果没有目标导向,抓到的数据越多,分析反而越混乱。
解决方法:
我开始有意识地先问自己“我要找什么”,再去写过滤器。例如:
- 找 TELNET 认证过程,就先用
telnet; - 找 SYN 扫描,就观察
tcp.flags.syn == 1 && tcp.flags.ack == 0; - 找开放端口,就看
SYN+ACK; - 找主机探测,就看
icmp。
收获:
这让我认识到,真正重要的不是工具界面有多复杂,而是自己有没有明确的问题意识。
3.2 问题二:明明抓到了流量,但一开始不太会“讲清楚图里发生了什么”
问题表现:
看着截图能大概知道这是 TELNET、这是扫描、这是 p0f 结果,但一开始写报告时容易停留在“图里有什么”,而说不清“图说明了什么安全含义”。
原因分析:
这是因为只停留在“现象描述”层面,没有把它和协议原理、攻击意图、安全风险连接起来。
解决方法:
写每张图时,我开始尝试按三个层次去解释:
- 图里看到了什么现象;
- 这个现象在协议层面意味着什么;
- 这个现象在安全分析上说明了什么问题。
收获:
这样写以后,报告就不再只是“贴图 + 说明文字”,而是真正带有分析逻辑。
3.3 问题三:容易把取证分析理解成“找一个答案”
问题表现:
在分析 listen.pcap 时,最开始很容易想尽快得出一个结论,比如“这是 SYN 扫描”,然后就不再继续挖下去。
原因分析:
这种思路更像是在做选择题,而不是做安全取证。真正的取证分析应该尽量还原完整的攻击过程,而不是满足于找到一个局部特征。
解决方法:
我后来调整了思路,不再只盯着一个过滤器,而是分别从 icmp、tcp、异常标志位、指纹结果等多个维度交叉观察,再把它们拼成一个连续过程。
收获:
我逐渐体会到,取证分析不是“找最先看到的那个特征”,而是“尽可能完整地复原攻击者做了哪些动作”。
4. 学习感悟与体会
做完这次实验,我最大的感受是:网络里的很多事情,其实都藏在数据包里。
以前总觉得抓包是一件很“高手”的事,界面上密密麻麻的数据看着就头大。但这次真正做下来以后,我发现它并不是玄学。只要你知道自己在找什么,抓包其实就像看监控录像:
你不是每一帧都要研究,而是先找到关键时间点、关键人物、关键动作,再把线索串起来。
这次最让我震撼的,还是 TELNET 那一部分。以前老师说“明文协议不安全”,我知道这个结论,但感受并不深。直到我在 Wireshark 里看到自己输入的用户名被清清楚楚地还原出来,那种感觉一下就不一样了。它让我真正明白:
不加密不是“理论上危险”,而是真的会被别人看见。
另外,通过 listen.pcap 的分析,我也第一次比较完整地体会到“网络取证”是什么感觉。攻击者虽然没有站在我面前,但他发出的 SYN 包、ICMP 探测、异常标志位、系统指纹,其实都像是在现场留下的脚印。顺着这些脚印,居然真的可以一步步判断出他在扫谁、怎么扫、扫到了什么、甚至可能用的是什么系统。这个过程特别像侦探破案,很有成就感。
还有一点体会特别深:
工具很重要,但原理更重要。
Wireshark 很强,tcpdump 很方便,p0f 很有意思,但如果不懂 TCP 三次握手、不懂为什么 SYN+ACK 代表开放端口、不懂为什么 TELNET 会明文传输,那这些工具就只是“会用”,而不是“会分析”。这次实验让我慢慢意识到,网络安全不是比谁装的软件多,而是比谁更能把现象和原理对应起来。
如果用一句最通俗的话总结这次实验,我会说:
前两次作业让我学会了怎么搭环境、怎么找目标,这一次实验让我学会了怎么从流量里看懂别人到底做了什么。
这对后面继续学扫描、漏洞利用、应急响应和安全审计,我觉得都会很有帮助。

浙公网安备 33010602011771号