20252902 2025-2026-2 《网络攻防实践》第3周作业
1.实验内容
本周的学习与实践主要围绕网络嗅探与协议分析展开。网络嗅探是网络攻防中极其重要的信息收集手段,通过旁路监听网络流量,可以获取网络拓扑、主机状态甚至明文传输的敏感数据。本次实验没有停留在理论,而是通过真实的网络流量抓取与现成的取证数据包分析,深入理解底层网络协议的工作机制:
- 命令行嗅探工具实践:掌握
tcpdump的基本语法与BPF(Berkeley Packet Filter)过滤机制,通过抓取访问特定网站的流量,分析其背后的DNS解析与多Web服务器负载均衡现象。 - 图形化协议分析实践:熟练使用
Wireshark抓包工具,对古老且不安全的TELNET协议进行深度解剖,通过“追踪TCP流”直观感受明文传输带来的极大安全隐患。 - 网络取证与扫描分析:利用网络安全分析工具(如
Wireshark和被动指纹识别工具p0f),对给定的网络捕获文件(listen.cap)进行逆向取证。分析攻击者的扫描策略(如TCP半连接扫描)、锁定攻击源与目标、提取开放端口,并研判攻击者的操作系统指纹。
2.实验过程
2.1 动手实践 tcpdump
任务目标:使用tcpdump对访问 www.tianya.cn 网站的过程进行嗅探,分析涉及的Web服务器及其IP地址。
操作步骤:
- 打开Kali虚拟机终端,切换至root权限(
sudo su或su - root),并使用ifconfig查看本机IP地址。

- 输入
tcpdump嗅探命令,设置过滤规则,仅抓取与本机相关且目标端口为80(HTTP)或443(HTTPS)的数据包。- 执行的命令:
[**<font style="color:#000000;">192.168.200.2</font>**,例如:tcpdump -n src 本机IP and tcp port 80]
- 执行的命令:
- 在浏览器中访问
www.tianya.cn,观察终端中tcpdump抓取到的数据流。

2.2 动手实践 Wireshark
任务目标:使用Wireshark对以TELNET方式登录BBS的过程进行嗅探与协议分析,获取用户名及登录口令。
操作步骤:
- 在Kali中启动Wireshark,选择对应的网卡(如
eth0)开始抓包。
- 打开终端,使用telnet命令连接清华大学BBS(或老师指定的其他BBS)。
- 执行的命令:
luit -encoding gbk telnet bbs.mysmth.net(注:luit用于解决中文乱码问题)
- 执行的命令:
- 在终端中输入测试账号(如
guest)和对应的密码。 - 回到Wireshark,停止抓包。在显示过滤器中输入
telnet或tcp.port == 23过滤出相关流量。
问题回答:
- 你所登录的BBS服务器的IP地址与端口各是什么?
- 服务器IP地址:
[<font style="color:#000000;">192.168.200.7</font>] - 端口号:
23(TELNET默认端口)
- 服务器IP地址:
- TELNET协议是如何向服务器传送你输入的用户名及登录口令?
- [填写原理解释:TELNET基于TCP协议建立连接。它采用明文方式、逐字符实时传输用户的输入。即客户端键盘每敲击一个字符,都会立刻被封装在TCP包中明文发给服务器,服务器再回显该字符,整个过程没有任何加密保护。]
- 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
- 操作方法:在Wireshark中任意选择一条与BBS服务器通信的TELNET数据包,右键点击选择“追踪流 (Follow)” -> “TCP流 (TCP Stream)”。在弹出的窗口中(可将编码切换为GBK),红蓝交替的字符即为客户端的输入和服务器的回显,从中可以直接清晰地看到明文的账号和密码。
2.3 取证分析实践,解码网络扫描器(listen.cap)
任务准备:将 listen.cap (或 .pcap) 文件导入Kali,并使用Wireshark打开。
2.3.1 攻击主机的IP地址是什么?
| 源 IP (Source) | 目的 IP (Dest) | 协议 | 关键标志位 | 行为解读 |
|---|---|---|---|---|
| 172.31.4.178 | 172.31.4.188 | TCP | [SYN] | 172.31.4.178 主动发起 TCP 连接请求(三次握手第一步 |
| 172.31.4.178 | 172.31.4.188 | TCP | [SYN,ACK] | 172.31.4.188 正常响应,确认收到请求(三次握手第二步) |
| 172.31.4.178 | 172.31.4.188 | TCP | [ACK] | 172.31.4.178 确认收到响应(三次握手第三步,理论上连接建立) |
| 172.31.4.178/188 | 172.31.4.188/178 | TCP | [RST,ACK] | 172.31.4.178 主动发送 RST 复位包,直接强制断开连接 |
攻击机(172.31.4.178):
主动向目标机(172.31.4.188)发送 SYN包,发起TCP连接请求,是连接的发起方。
2.3.2 网络扫描的目标IP地址是什么?
2.3.3 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
- 分析方法:利用被动操作系统指纹识别工具
p0f对数据包进行分析。 - 执行命令:
p0f -r listen.cap(如果未安装,需先执行sudo apt install p0f)。
2.3.4 攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述其工作原理。

2.3.5 在蜜罐主机上哪些端口被发现是开放的?
- 分析方法:只要目标主机回复了
SYN+ACK报文,就说明该端口是开放的。可以在Wireshark中使用过滤器规则:tcp.flags.syn == 1 and tcp.flags.ack == 1精准提取所有开放端口的响应包。 ![image]()
2.3.6 攻击主机的操作系统是什么?
- 分析方法:同样依赖
p0f工具的输出结果,它通过分析数据包头部的TTL、窗口大小等参数进行指纹比对。

3.学习中遇到的问题及解决
- 问题1:在尝试使用
p0f工具时,系统提示Unable to locate package p0f,导致无法继续进行指纹分析。 - 问题1解决方案:这通常是因为Kali系统的本地软件包列表太旧。执行了
sudo apt update更新软件源列表后,再次执行sudo apt install p0f即可成功安装。 - 问题2:在进行Wireshark追踪TELNET流时,发现弹出的窗口中全是乱码,无法看清英文字符。
- 问题2解决方案:
[填写你的实际解决过程,例如:检查了底部“Show data as”选项,发现默认可能是Raw或其他编码,将其修改为 GBK 或 ASCII 后,英文字符恢复正常显示。] - 问题3:
[填写你遇到的其他问题] - 问题3解决方案:
[填写你的解决方案]
4.学习感悟与思考
本次实验让我深刻体会到了“所见即所得”在网络安全领域的含义。以前学习TCP/IP协议栈时,三次握手、四次挥手、标志位这些概念都停留在书本上的抽象描述,而通过 tcpdump 和 Wireshark 这两把“解剖刀”,我第一次直观地看到了真实数据包在网络中穿梭的样子。
特别是TELNET登录实验给我留下了极深的印象。亲眼看到自己的密码被“追踪TCP流”功能一字不落地还原出来,让我对“明文传输协议的脆弱性”有了极其真实的危机感。这也让我明白了为什么现代网络强烈推荐使用SSH、HTTPS等加密协议来替代传统的明文协议。
此外,在对 listen.cap 的取证分析中,我体验了一次扮演“防守方”或“溯源调查员”的过程。通过蛛丝马迹(如SYN包的频率、RST包的异常阻断)反推攻击者的扫描策略,甚至利用 p0f 扒出攻击者的系统指纹和使用工具。这不仅锻炼了我的逻辑推理能力,也让我意识到:网络空间虽然虚拟,但只要产生交互,就必定会留下痕迹(洛卡德交换原理)。攻防对抗往往就是抓包、看包、懂包之间细节的较量。
参考资料
- 《网络攻防技术与实践》
- Wireshark官方用户指南
- p0f v3 官方说明文档
- 课堂PPT与实验指导书










浙公网安备 33010602011771号