网络嗅探与流量分析实验报告(实验三)
一、实验目的
- 掌握 Linux 系统下网络接口的静态 IP 配置与持久化方法,确保实验环境网络稳定性。
- 熟练使用
tcpdump工具捕获特定网络流量(如 HTTP 连接、TCP 握手包),理解流量捕获的过滤规则设计逻辑。 - 学会使用 Wireshark 分析网络数据包,包括 TCP 流追踪、协议解析、攻击行为识别等核心技能。
- 掌握 Snort、p0f 等工具的安装与使用,实现网络流量的深度分析、操作系统指纹识别及攻击行为检测。
- 结合 Nmap 扫描工具,验证流量分析结果,建立“捕获-分析-验证”的完整网络嗅探工作流程。
二、实验环境
| 实验设备 | 操作系统 | IP 地址 | 核心工具 |
|---|---|---|---|
| 攻击机 | Kali Linux 2022 | 192.168.200.6/25 | tcpdump、Wireshark、Snort、p0f、Nmap |
| 靶机 | 未知 Linux 系统 | 172.31.4.188 | - |
| 辅助测试目标 | 百度服务器、清华 BBS 服务器 | 动态解析、120.92.212.76 | - |
| 虚拟化平台 | VMware Workstation | - | - |
| 网络配置 | 自定义 VMnet8 网段 | 子网掩码 255.255.255.128,网关 192.168.200.1 | - |
三、实验步骤与结果
(一)Kali 网络环境持久化配置
为确保实验过程中网络配置不丢失,需对 Kali 进行静态 IP 持久化配置:
- 编辑网络配置文件:
sudo nano /etc/network/interfaces - 写入以下配置(适配蜜网网段):
# 回环接口配置 auto lo iface lo inet loopback # 以太网接口静态配置 auto eth0 iface eth0 inet static address 192.168.200.6 netmask 255.255.255.128 gateway 192.168.200.1 dns-nameservers 114.114.114.114 8.8.8.8

-
保存并退出:按
Ctrl+O确认保存
![image]()
按 Enter 键(确认要写入的文件名是 /etc/network/interfaces)
![image]()
Ctrl+X退出编辑器。 -
重启网络服务使配置生效:
systemctl restart networking

- 验证配置结果:
- 执行
ip addr show eth0,确认 eth0 成功获取192.168.200.6/25IP 地址; - 执行
ip route show,验证默认网关为192.168.200.1; - 执行
ping 192.168.200.1 -c 4,测试网关连通性,结果显示 0% 丢包,配置生效。
![image]()
能看到 eth0 拿到 192.168.200.6/25 IP
默认网关是 192.168.200.1
ping 网关 0% 丢包
就说明持久化配置成功了,以后重启 Kali 也不会再断网。
- 执行
(二)tcpdump 流量捕获实践
使用 tcpdump 工具针对特定场景捕获网络流量,验证流量捕获能力:
- 基础 HTTP 流量捕获:捕获 Kali 访问百度 80 端口的 TCP SYN 包(连接发起包):
执行并访问百度sudo tcpdump -n src 192.168.200.6 and tcp dst port 80 and "tcp[13] & 18 = 2"
![image]()

- 捕获结果:成功捕获到 Kali(192.168.200.6)向百度服务器(220.181.111.1 等)发起的 TCP SYN 包,包含端口号、序列号、窗口大小等关键信息,例如:
```
14:23:40.916675 IP 192.168.200.6.46382>220.181.111.1.80:Flags[S],seq1174465163,win 64240,options [mss 1460,sackOK,TS val 870590162 ecr 0,nop,wscale7],length 0
```
- 特定目标流量监控:监控本机所有发往 80 端口的 IP 包:
sudo tcpdump src 192.168.200.6 and tcp dst port 80- 结果:可实时捕获浏览器访问 HTTP 网站时的所有数据包,包括连接建立、数据传输等阶段的流量。
![image]()
- 结果:可实时捕获浏览器访问 HTTP 网站时的所有数据包,包括连接建立、数据传输等阶段的流量。
(三)Wireshark 流量分析
将捕获的流量或实验文件导入 Wireshark,进行深度分析:
-
清华 BBS Telnet 流量分析:
-
通过命令
luit -encoding gbk telnet bbs.mysmth.net连接清华 BBS,获取服务器 IP 为 120.92.212.76,端口 23(Telnet 协议默认端口);
![image]()
-
在 Wireshark 中过滤
telnet协议,可查看完整的 Telnet 交互数据,包括客户端与服务器之间的命令传输、数据响应等,Frame 77 显示 Kali 向 BBS 服务器发送的 Telnet 数据帧:
![image]()
Frame 77: 55 bytes on wire (440 bits), 55 bytes captured (440 bits) Ethernet II, Src: VMware_a4:34:e1, Dst: VMware_f7:aa:e9 Internet Protocol Version 4, Src:192.168.200.6, Dst:120.92.212.76 Transmission Control Protocol, Src Port:41834, Dst Port:23, Seq:1, Ack:1, Len:1 Telnet Data...
-
-
TCP 流追踪:针对 BBS 连接的 TCP 流(Stream index:5)进行追踪,可还原完整的交互过程,包括服务器返回的欢迎信息、客户端发送的指令等。
![image]()
-
攻击行为识别:导入实验文件
listen.pcap,过滤tcp.flags.syn == 1 and tcp.flags.ack == 1,发现 172.31.4.178 向靶机(172.31.4.188)的多个端口(3306、139、23 等)发送 TCP SYN 包,但未响应靶机的 SYN+ACK 回复,最终靶机发送 RST 包重置连接,判定为 Nmap 半开放扫描(SYN 扫描)行为。
![image]()
实验三 配套思考题(含放置位置说明)
一、思考题(Markdown 格式)
问题1:你所登录的BBS服务器的IP地址与端口各是什么?
答案:
本次登录的BBS服务器(bbs.mysmth.net)IP地址为 120.92.212.76,端口为 23(23是Telnet协议的默认知名端口,也是本次BBS服务的监听端口)。

问题2:TELNET协议是如何向服务器传送你输入的用户名及登录口令?
答案:
Telnet协议以明文、逐字符交互式的方式传输用户名与登录口令,核心流程如下:
- 建立TCP连接:客户端(Kali)与BBS服务器通过TCP三次握手,在服务器23端口建立可靠的字节流连接;
- 明文传输交互数据:连接建立后,客户端在本地输入的用户名、口令等字符,会逐字符/逐行通过TCP连接直接发送至服务器,全程无任何加密处理,所有数据以ASCII明文形式在网络中传输;
- 服务器身份验证:服务器接收明文字节流后,解析出用户名和口令,完成身份验证;
- 协议原生缺陷:Telnet的明文传输设计是其核心安全隐患,任何嗅探到该流量的主体,都可直接获取登录凭证。
问题3:如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
答案:
通过Wireshark提取Telnet明文账号口令,核心是「过滤流量→追踪TCP流→提取明文」,完整操作步骤如下:
- 过滤Telnet协议流量:在Wireshark过滤栏输入规则
telnet,筛选出所有Telnet会话数据包,定位到BBS服务器120.92.212.7的交互流量,排除无关协议干扰; - 追踪完整TCP流:选中任意一个目标Telnet数据包,右键选择「追踪」→「TCP流」,Wireshark会自动还原该Telnet会话的完整交互字节流
- 提取明文账号口令:在TCP流窗口中,以ASCII明文展示了客户端与服务器的全部交互内容:
- 蓝色/红色区分客户端(本地输入)与服务器(返回提示)的内容,客户端发送的字符即为明文用户名和登录口令;
- 内容中的
[30m...[41m等为Telnet终端ANSI控制字符(用于颜色、光标控制),过滤后即可提取真实登录信息;
- 编码适配(可选):若出现乱码,在窗口右下角「Show data as」选择
ASCII或GBK,即可正常显示字符; - 验证结果:结合源/目的IP、端口及时序,确认提取内容为本次登录操作的真实凭证,完成分析。
![image]()
(四)Snort 与 p0f 工具安装与使用
- Snort 安装与验证:
执行sudo apt-get update 时报错
![image]()
核心错误是 GPG 公钥缺失:
plaintext
NO_PUBKEY ED65462EC8D5E4C5
APT 无法验证 Kali 软件源的数字签名,因此拒绝信任该源,不会下载新的软件包索引,只能沿用旧索引,后续 apt-get upgrade 等操作也会受影响。
-
修复 Kali 软件源 GPG 公钥缺失问题:
bash apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ED65462EC8D5E4C5 wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add -
![image]()
- 更新软件源并安装 Snort:
sudo apt-get update
- 更新软件源并安装 Snort:

sudo apt-get install snort
```


- 验证安装:执行 `snort --version`,确认 Snort 成功安装(版本信息正常显示)。

- p0f 流量指纹分析:
-
登录学习通下载实验文件
![image]()
-
安装 p0f 工具:
sudo apt install p0f
-

- 分析实验 pcap 文件:
```bash
sudo p0f -r /home/jaden/Desktop/listen.pcap
```
sudo p0f -r /home/jaden/Desktop/listen.pcap 注意这里要写对文件路径
或者在对应的目录打开终端直接sudo p0f -r listen.pcap



- 分析结果:成功识别出靶机(172.31.4.188)的操作系统为 Linux 2.6.x,网络链路类型为 Ethernet/modem,MTU 为 1500;同时识别出 172.31.4.178 发起的 NMap SYN 扫描行为,特征为 `raw_sig=4:39+25:0:1460:4096,0mss:0`。
(五)Nmap 扫描验证
使用 Nmap 工具对靶机(172.31.4.188)进行扫描,验证流量分析结果:
- 主机活跃性检测:
nmap -sP 172.31.4.188

- 结果:显示靶机处于活跃状态( latency 0.00070s)。
- 操作系统指纹识别:
nmap -O 172.31.4.188

- 结果:靶机 1000 个扫描端口均为过滤状态,但工具提示“多个指纹匹配该主机”,与 p0f 识别的 Linux 系统特征一致。
- 半开放扫描(验证攻击行为):
nmap -sS 172.31.4.188

- 结果:进一步验证靶机端口过滤状态,与 Wireshark 分析的“扫描包被拦截”结论一致。
四、实验问题与解决
| 问题描述 | 解决方法 |
|---|---|
编辑网络配置后,systemctl restart networking 报错 |
无需额外处理,通过 ip addr 和 ping 验证配置已实际生效,报错为服务状态显示问题 |
| Kali 无法访问天涯网站(www.tianya.com),但可访问百度 | 推测为天涯网站 DNS 解析异常或服务器访问限制,切换至百度作为测试目标,不影响实验核心 |
| 安装 Snort 时提示 GPG 公钥缺失(NO_PUBKEY ED65462EC8D5E4C5) | 导入 Ubuntu 密钥服务器的对应公钥,并用 Kali 官方密钥兜底,解决软件源信任问题 |
| Nmap 扫描靶机时显示“Host seems down” | 靶机开启防火墙或端口过滤,添加 -Pn 参数强制扫描,确认靶机实际活跃 |
五、实验总结与体会
本次实验围绕网络嗅探与流量分析核心技能展开,成功完成了 Kali 网络持久化配置、tcpdump 流量捕获、Wireshark 深度分析、Snort/p0f 工具应用及 Nmap 扫描验证等关键操作。通过实验,我深入理解了以下内容:
- 网络配置的稳定性是实验成功的基础,通过
/etc/network/interfaces文件配置静态 IP 并持久化,避免了实验过程中网络中断或配置丢失的问题,掌握了 Linux 网络配置的核心方法。 - tcpdump 的过滤规则设计是流量捕获的关键,通过组合源 IP、目标端口、TCP 标志位等条件,可精准捕获目标流量,例如
tcp[13] & 18 = 2过滤 SYN 包的规则,让我对 TCP 协议的标志位机制有了更直观的认识。 - Wireshark 是流量分析的强大工具,通过协议过滤、TCP 流追踪等功能,能够还原网络交互过程,识别攻击行为(如半开放扫描),理解了“数据包-协议-行为”的关联逻辑。
- Snort 与 p0f 工具拓展了流量分析的深度,p0f 基于数据包指纹的操作系统识别,无需主动扫描即可获取目标系统信息,体现了被动嗅探的优势;Snort 作为入侵检测系统的核心工具,为后续漏洞检测与防御奠定了基础。
实验中也遇到了软件源配置、网站访问限制、靶机端口过滤等问题,通过查阅文档、更换测试目标、调整扫描参数等方式逐一解决,提升了问题排查能力。网络嗅探技术作为网络攻防的基础,其“被动获取、精准分析”的特点在安全测试、攻击溯源等场景中具有重要应用,本次实验为后续更复杂的攻防实验奠定了扎实的技术基础。
六、附录:核心命令清单
| 功能描述 | 命令 |
|---|---|
| 静态 IP 配置文件编辑 | sudo nano /etc/network/interfaces |
| 网络服务重启 | systemctl restart networking |
| IP 与路由验证 | ip addr show eth0、ip route show |
| TCP SYN 包捕获 | sudo tcpdump -n src 192.168.200.6 and tcp dst port 80 and "tcp[13] & 18 = 2" |
| p0f 流量分析 | sudo p0f -r /home/jaden/Desktop/listen.pcap |
| Nmap 主机活跃性检测 | nmap -sP 172.31.4.188 |
| Nmap 操作系统识别 | nmap -O 172.31.4.188 |
| Nmap 半开放扫描 | nmap -sS 172.31.4.188 |














浙公网安备 33010602011771号