20253918 2025-2026-2 《网络攻防实践》第3次作业
20253918 2025-2026-2 《网络攻防实践》第3次作业
1. 实验知识总结
本实验围绕网络嗅探、协议分析、攻击取证与主机识别三大核心方向,系统掌握 tcpdump、Wireshark、Snort、p0f 等攻防工具的实操方法,深入理解 TCP 协议交互、明文协议安全缺陷、端口扫描原理及被动指纹识别技术,核心知识点分述如下:
1.1 tcpdump 命令行网络嗅探技术
- 工具特性:tcpdump 是 Kali Linux 平台开源命令行抓包工具,支持基于源 IP、传输层端口、TCP 标志位的精细化流量过滤,可精准捕获指定网络行为的数据包。
- 核心过滤规则:通过
tcp[13]&18=2筛选 TCP 三次握手的纯 SYN 包(SYN 标志位为 1、ACK 标志位为 0),仅捕获本机主动发起的新 TCP 连接请求。 - 实践应用:对访问www.163.com的 Web 流量抓包,去重目标 IP 后识别出 6 台交互服务器,涵盖谷歌云、网易自有机房及 Cloudflare、Akamai 等 CDN 节点,验证大型网站多节点分布式部署的流量特征。
1.2 Wireshark 图形化协议分析
- 工具功能:Wireshark 是可视化网络协议分析工具,支持端口 / 协议过滤、TCP 会话流重组、编码格式适配,可完整还原网络会话内容。
- Telnet 协议安全分析:Telnet 为明文远程登录协议(默认 23 端口),所有传输数据无加密处理;通过
tcp.port == 23 || telnet过滤流量,结合 TCP 流重组(GBK 编码)可直接获取登录用户名与口令,暴露明文协议的严重安全漏洞。 - 关键操作:通过协议过滤定位 BBS 服务器 IP(120.92.212.76),会话重组还原完整 Telnet 登录与交互流程。
1.3 网络扫描取证与攻击主机识别
- 扫描行为检测:Snort 作为入侵检测系统,可解析 pcap 流量包,通过
port_scan规则集识别 Nmap 端口扫描行为,快速定位攻击源(172.31.4.178)与目标主机(172.31.4.188)。 - TCP SYN 半开扫描原理:该扫描方式仅向目标端口发送 SYN 包,不完成 TCP 三次握手,隐蔽性更强;目标端口开放则回复 SYN+ACK,关闭则回复 RST,据此可判定端口状态。
- 开放端口判定:通过 Wireshark 标志位过滤规则,识别出目标主机开放 21、22、80、3306、3389 等 13 个常用服务端口。
- 被动系统指纹识别:p0f 工具基于 TCP 握手指纹特征,无需主动交互即可精准识别攻击主机操作系统为Linux 2.6.x,实现攻击源系统信息探测。
2.实验过程
2.1 动手实践tcpdump
首先打开kali使用ifconfig命令查看本机ip地址:192.168.200.64

使用tcpdump开源软件对在本机上访问www.163.com网站过程进行嗅探,使用命令sudo tcpdump -n src 192.168.200.64 and tcp port 80 and "tcp[13]&18=2"对本机访问 Web 服务器过程进行抓包监听。

此时我们可以发现,根据截图中的tcpdump抓包结果,结合过滤规则(抓取本机主动发起的、目标为 80 端口的 TCP SYN 连接包,也就是浏览器发起的 Web 服务访问请求),统计结果如下:
-
浏览器将访问6 个不同的 Web 服务器。
-
每个服务器的ip地址
34.107.221.82(谷歌云(Google Cloud)节点服务器)119.188.172.239(网易(NetEase)中国电信 CDN 节点服务器)162.159.142.9(Cloudflare CDN 节点服务器)218.61.63.75(网易中国联通 CDN 节点服务器)23.219.170.91(Akamai CDN 节点服务器)114.250.67.34(网易北京机房 Web / 广告资源服务器)
补充说明:
抓包命令的过滤规则tcp[13]&18=2,作用是筛选出TCP 三次握手的首个 SYN 包(仅 SYN 标志位为 1、ACK 标志位为 0),也就是浏览器主动发起的新 Web 连接请求,因此去重后的目标 IP,就是浏览器要访问的全部 Web 服务器。
至此第一个大问题的结果综上所述。
2.2 动手实践Wireshark
首先使用telnet访问BBS论坛,使用命令luit -encoding gbk telnet bbs.newsmth.net

按照要求输入guest以登录,摁下任意键继续,即可获得如下热门话题:

然后使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,点击eth0进行监听:


输入命令tcp.port == 23 || telnet来过滤出telnet包,以确定目标服务器的 IP地址和端口号。

由此图可知,目标服务器的ip地址是120.92.212.76,端口号为23。
随机选择一个过滤出来的telnet包,右键找到follow,选择TCP,将默认改成GCK显示,即可对整个TELNET会话内容进行重组分析。通过该方法可以直接查看明文传输的数据内容。



由此综上所述,因为一开始随意点击错误了几个字母并且hui'tui,后来才发现正确的用户名,可以得出我们的用户名及登录口令为guest。
由于Telnet是明文传输,我们可以直接用wireshark进行嗅探分析。
2.3 取证分析实践且解码网络扫描器
首先下载好listen.pcap,并放入kali虚拟机上,并且打开

经过筛选tcp端口后,可以清晰的看到,首先发起TCP连接的IP是172.31.4.178,可以判定其为攻击机,所以目标IP是172.31.4.188。

之后,在kali终端使用命令apt update && apt install snort -y,下载安装工具snort。

下载之后,检查是否下载成功。使用命令snort --version。

之后输入以下命令snort -v -c /etc/snort/snort.lua -r listen.pcap。


本次案例中发起端口扫描的工具为 Nmap,因为命令 snort -r listen.pcap 表明 Snort 正在解析流量包 listen.pcap。日志显示 Snort 加载了 port_scan 扫描检测模块,以及 default_hi_port_scan、default_med_port_scan、default_low_port_scan 等专门针对端口扫描的规则集。这些规则的设计目标就是识别 Nmap 产生的 SYN 扫描、全连接扫描、端口 Sweep 等典型扫描特征。
那么接着在wireshark中输入ip.src == 172.31.4.178 && tcp.flags.syn == 1 && tcp.flags.ack == 0进行过滤。

再输入tcp.flags.syn == 1 && tcp.flags.ack == 1 && ip.src == 172.31.4.188

由此确定:
一、攻击者使用的扫描方法
本次扫描使用的是 TCP SYN 半开扫描(半开放扫描)。
二、判断依据
- 从抓包流量来看,攻击者只向目标主机发送了大量 SYN 报文,目标主机对开放端口回复了 SYN+ACK 报文,但攻击者没有继续发送 ACK 报文完成完整的 TCP 三次握手,这是半开扫描最核心的特征。
- 从 Snort 日志可以看出,系统加载了
port_scan扫描检测模块以及default_hi_port_scan、default_low_port_scan等端口扫描识别规则,这类规则主要用于检测典型的 SYN 半开扫描行为。 - 整个扫描过程没有建立完整连接,符合半开扫描 “不完成三次握手、隐蔽性更强” 的特点,因此可以确定为半开扫描,而非全连接扫描。
三、扫描的目标端口
主要扫描常见网络服务端口,包括 22、80、3306、3389 等常用端口。
四、工作原理
- 攻击者向目标主机的不同端口发送 SYN 报文,尝试发起连接;
- 如果目标端口开放,会回复 SYN+ACK 报文;如果端口关闭,则回复 RST 报文;
- 攻击者收到 SYN+ACK 后,不发送 ACK 完成三次握手,直接通过 RST 报文断开连接;
- 根据是否收到 SYN+ACK,判断目标端口是否开放,从而完成端口扫描。
在 Wireshark 中输入以下过滤器:tcp.flags.syn == 1 && tcp.flags.ack == 1 && ip.src == 172.31.4.188

从抓包结果中可识别出的开放端口有: 21、22、23、25、53、80、139、445、3306、3632、5432、8009、8180。
蜜罐主机对这些端口的 SYN 扫描请求,均回复了 SYN+ACK 报文,符合 TCP 端口开放的响应特征。
最后我们要找到攻击主机的操作系统是什么,首先使用命令apt install p0f安装p0f检测攻击机系统。

执行p0f -r listen.pcap命令,查看使用的操作系统。

攻击主机 172.31.4.178 的操作系统明确是:Linux 2.6.x
日志里多处直接标注:os = Linux 2.6.x,并且正常 TCP 握手指纹完全符合 Linux 2.6 系列内核特征。
3.学习中遇到的问题及解决
3.1 问题一:对www.tianya.cn网站进行嗅探时发现无法ping通网站

当尝试ping通天涯网的时候出现无法解析域名,一开始怀疑自身的网络出现问题,但后来发现ping通163网易的时候可以连接网络,所以排除自身不能ping通的问题,最后使用nslookup www.tianya.cn 8.8.8.8命令验证,确定是网站自身问题。

3.2 问题二: 下载工具snort的时候遇到源不稳定无法下载完整工具资源
尝试多次无果后决定编辑源配置文件nano /etc/apt/sources.list,改用清华源下载,并且使用apt update,apt install --fix-missing,apt upgrade -y三条命令同步本地的软件包列表,并且修复 “缺失的软件包文件”,最后将系统中已安装的所有软件包升级到最新版本,整个流程比较繁琐,因此特意提出。
4.学习感想和体会
本次《网络攻防实践》实验让我对网络嗅探、协议分析与攻击取证有了直观且深入的认知。实操 tcpdump 抓取 Web 流量时,清晰看到大型网站多 CDN 节点的部署特征;Wireshark 还原 Telnet 明文会话的过程,让我深刻意识到明文协议的致命安全缺陷。通过 Snort 分析端口扫描流量、p0f 被动识别攻击主机系统,不仅掌握了 SYN 半开扫描的原理,更体会到攻防工具在取证溯源中的核心作用。
实验中也遇到了域名解析失败、Snort 安装源不稳定等问题,通过更换 DNS 验证、修改 apt 源并修复依赖,既锻炼了问题排查能力,也明白网络实操中细节的重要性。此次学习让我认识到,网络安全攻防既是技术的较量,也是细节的博弈,只有熟练掌握工具用法、理解协议底层逻辑,才能精准识别攻击行为、筑牢网络安全防线。

浙公网安备 33010602011771号