#20251913 2025-2026-2《网络攻防实践》实验三
1.实验内容
1.1 实践tcpdump进行嗅探
tcpdump 是一款开源的命令行网络嗅探工具,基于 libpcap 库实现,可在 Linux、Unix 及 macOS 等系统中捕获并分析网络接口上的数据包。其核心功能是抓取网络链路层到应用层的数据包,支持对 TCP/IP 协议栈各层数据的解析,广泛应用于网络故障排查、协议分析、安全审计等实验与工程场景。
tcpdump 的工作原理为:通过将网络接口设置为混杂模式(Promiscuous Mode),突破常规仅捕获目标主机数据包的限制,接收同一局域网内所有流经该接口的数据包;再根据用户设定的过滤规则,筛选出符合条件的数据包并进行解析输出。
1.2 Wireshark嗅探与TELNET协议
TELNET(Teletype Network)是一种基于 TCP 的应用层协议,用于在网络中实现客户端与远程服务器的交互式命令行通信,属于典型的明文传输协议。其默认使用 TCP 23 号端口建立连接,采用客户端 / 服务器(C/S)架构。
Wireshark 是一款开源的图形化网络协议分析工具,底层同样基于 libpcap 库实现数据包捕获。其核心流程如下:
- 将指定网络接口设置为混杂模式,捕获流经该接口的所有数据包(需管理员权限)。
- 根据用户配置的过滤规则,筛选出与 TELNET 相关的数据包(基于 TCP 23 号端口识别)。
- 对捕获的 TELNET 数据包进行协议栈分层解析,从链路层、网络层、传输层到应用层,提取每个层级的关键字段。
- 以可视化形式展示解析结果,支持查看原始数据包内容、会话流跟踪、数据统计等功能。
1.3 kali中Snort、p0f 等工具
Snort:一款开源的网络入侵检测系统,支持实时流量分析、数据包日志记录、基于规则的攻击检测(如端口扫描、SQL 注入、DDoS 等),广泛应用于网络安全监控与入侵告警场景。
p0f:一款被动式操作系统指纹识别工具,无需主动发送数据包,仅通过分析目标主机的 TCP/IP 协议栈特征,即可判断目标主机的操作系统类型、版本,甚至设备类型,具有隐蔽性强、无交互的特点。
使用sudo apt update && sudo apt install snort -y安装 Snort,并在 Kali 终端执行以下命令,导入缺失的 GPG 公钥:wget -q -O - https://archive.kali.org/archive-key.asc | sudo apt-key add -。
执行以下命令,在kali中安装p0f
sudo apt update sudo apt install p0f tshark -r listen.pcap -T fields -e ip.src | sort | uniq -c | sort -nr tshark -r listen.pcap -T fields -e ip.dst | sort | uniq -c | sort -nr
2.实验过程
2.1进行实践tcpdump
通过sudo su 切换到 root 用户,再输入ifconfig查看kali机的ip地址为192.168.200.4

再在浏览器中访问 www.baidu.com。观察记录的内容,可以看到,第一项为打开浏览器时的记录,然后在访问到百度网时,可以看到经过的web服务器地址.
在kali中输入tcpdump -n src 192.168.200.4 and tcp port 80 and "tcp[13] & 18 =2"

2.2进行实践wireshark
打开wireshark,点击eth0,通过luit -encoding gbk telnet bbs.mysmth.net进入清华大学BBS论坛,输入guest进行登录

点击红框停止wires hark的抓包

在过滤器中输入telnet对数据包进行过滤,可以看到登录的BBS服务器IP地址是120.92.212.76,端口是23

随机选择一个记录并选择追踪TCP流

在 eth0 网卡捕获网络流量,筛选出目标 TCP 流后,使用「Follow TCP Stream」功能还原完整通信过程。

2.3取证分析实践
用wireshark打开listen.pcap文件,可以观察到172.31.4.178为攻击机IP地址,172.31.4.188为网络扫描的目标IP地址。

在 Kali 终端执行以下命令,更新软件源并安装 Snort:sudo apt update && sudo apt install snort -y
我的Kali 软件源缺失 GPG 公钥,在 Kali 终端执行以下命令,导入缺失的 GPG 公钥:wget -q -O - https://archive.kali.org/archive-key.asc | sudo apt-key add -

安装 Snort,输入sudo apt install snort -y安装过程中按提示完成。重新更新软件源sudo apt update不出现 GPG 错误,更新正常完成




在终端输入sudo snort -v -c /etc/snort/snort.lua -r listen.pcap执行

Snort 日志检测到 tcp_scans 端口扫描行为,且加载了 Nmap 扫描识别规则

通过指令tcp.flags.syn == 1 and tcp.flags.ack == 1可以看到有哪些端口是开放的活跃的。有3306,139,23,80,25,22,53,21,445,5432,8009,8180

在kali中安装p0f,并执行以下命令sudo apt update sudo apt install p0f tshark -r listen.pcap -T fields -e ip.src | sort | uniq -c | sort -nr tshark -r listen.pcap -T fields -e ip.dst | sort | uniq -c | sort -nr


在listen.pcap所在文件夹进入终端,通过下面的命令查看攻击机的操作系统为2.6.x

3.学习中遇到的问题及解决
-
问题1:在终端输入
sudo apt update && sudo apt install snort -y并不能安装Snort -
解决方案:分析输出的内容发现缺少 GPG 公钥,只需要在安装的时候再执行
wget -q -O - https://archive.kali.org/archive-key.asc | sudo apt-key add -这个指令就可以导入缺失的公钥 -
问题2:在kali中安装p0f中时,直接执行
apt-get install p0f会出现以下结果
![image]()
-
解决方案:进过分析结果获得以下结论: Kali Linux 系统中执行时出现的权限不足错误,在 Debian/Ubuntu/Kali 等基于 APT 的系统中,安装、升级、删除软件包需要管理员(root)权限,普通用户无法操作/var/lib/dpkg/下的系统文件,因此会触发权限拒绝。分析完原因之后通过执行
sudo apt update sudo apt install p0f tshark -r listen.pcap -T fields -e ip.src | sort | uniq -c | sort -nr tshark -r listen.pcap -T fields -e ip.dst | sort | uniq -c | sort -nr这条命令安装好了p0f。 -
问题3:kali一开始无法读取IP地址
-
解决方案:经过查询网络设置发现是桥接模式,改为NAT模式就好了
4.学习感悟
本次网络嗅探与取证分析实验,通过实操tcpdump、Wireshark两款开源工具,结合取证分析案例,让我从理论走向实践,深入理解了网络协议的运行机制、网络嗅探的原理与应用,更体会到网络安全领域“攻防对抗”的严谨性与专业性,收获颇丰且深受启发。
取证分析实践是本次实验中最具挑战性也最具收获的环节。解码网络扫描器日志、分析攻击行为,需要将前期学到的嗅探技巧与网络攻击原理相结合。在查找攻击主机与目标主机IP地址时,我通过筛选日志中的源IP和目的IP,快速锁定了关键信息;而在判断扫描工具和扫描方法时,我通过分析数据包的特征、端口扫描的规律,结合所学的网络扫描知识,成功识别出扫描工具及对应的扫描方式,并理解了其工作原理。
通过本次实验,我不仅熟练掌握了tcpdump和Wireshark两款常用网络工具的使用方法,更实现了网络理论知识与实践操作的深度融合,对网络协议、网络嗅探、网络攻击与取证有了更全面、更深入的理解。


浙公网安备 33010602011771号