20252910 2025-2026-2《网络攻防实践》第3次作业
20252910 2025-2026-2《网络攻防实践》第3次作业
1、实验内容
工具实践:掌握了 tcpdump 命令行抓包和 Wireshark 图形化流量分析的核心操作,能完成流量捕获、过滤与解析。
Web 流量分析:通过嗅探访问 www.163.com 的流量,可统计出浏览器访问的多个 Web 服务器 IP,理解了 DNS 解析与多资源加载流程。
Telnet 协议分析:明确 Telnet 服务默认端口为 23,发现其明文传输用户名和密码,可通过 Wireshark「追踪 TCP 流」直接获取登录凭证,认识到明文协议的安全隐患。
扫描取证分析:从 listen.cap 中定位了攻击主机与目标主机 IP,识别出扫描工具为 Nmap,扫描方式为 SYN 半开扫描(-sS),并统计出目标开放端口,同时通过 TCP 指纹判断了攻击主机操作系统。
安全认知:建立了网络流量可嗅探的安全意识,掌握了基础的攻击行为识别与流量取证方法,为后续网络安全防护学习奠定基础。
2、实验过程
2.1任务1
使用 tcpdump 开源软件对在本机上访问 www.163.com 网站过程进行嗅探,回答问题:你在访问 www.163.com 网站首页时,浏览器将访问多少个 Web 服务器?他们的 IP 地址都是什么?
- 查看IP地址

- 在终端输入以下命令:
tcpdump -n src 192.168.200.6 and tcp port 80 and "tcp[13]&18=2"

一共访问了5个服务器,他们的IP地址分别是
- 124.95.143.61
- 23.11.39.161
- 119.188.50.32
- 60.9.5.124
- 23.219.170.29
出现多个服务器的原因是:访问一个网址会连接多台服务器,是因为网站采用集群负载均衡、浏览器并发多连接,以及加载第三方 CDN 等资源所致
2.2 任务2
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
- 你所登录的BBS服务器的IP地址与端口各是什么?
- TELNET协议是如何向服务器传送你输入的用户名及登录口令?
- 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
2.2.1 打开wireshark监听BBS登录过程 网卡选择eth0,启动流量捕获。

2.2.2 TELNET 登录 BBS
- 新建一个终端,执行以下命令,登录水木清华 BBS:
luit -encoding GBK telnet bbs.newsmth.net

- 输入用户名guest
- 按提示输入登录口令
2.2.3 实验结果分析
- 问题1:你所登录的BBS服务器的IP地址与端口各是什么?
IP地址:120.92.212.76 端口 :23

- 问题2:TELNET协议是如何向服务器传送你输入的用户名及登录口令?
Telnet 协议采用明文方式传输数据,客户端与服务器通过 TCP 23 端口建立连接后,服务器依次发送登录名和密码提示,用户输入的用户名和登录口令均以明文形式在网络中传输,无任何加密保护。
- 问题3:如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
选中任意 Telnet 包,右键 → Follow→TCP Stream
显示格式切换为 ASCII。

2.3 任务3
取证分析实践,解码网络扫描器(listen.cap)
- 攻击主机的IP地址是什么?
- 网络扫描的目标IP地址是什么?
- 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
- 你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
- 在蜜罐主机上哪些端口被发现是开放的?
- 攻击主机的操作系统是什么?
在本机创建共享文件夹

在虚拟机kali上进行挂载,然后将listen.cap复制到kali桌面上。


更新软件源 sudo apt update -y
一键安装实验所需工具 sudo apt install -y wireshark snort p0f

- 问题1:攻击主机的IP地址是什么?
在顶部显示过滤器中输入 arp,回车过滤所有 ARP 协议流量。
查看过滤结果,可看到持续的 ARP 广播请求:Who has 172.31.4.188? Tell 172.31.4.178
攻击机IP地址为:172.31.4.178

问题2:网络扫描的目标IP地址是什么?
目标地址为:172.31.4.188
ip.src == 172.31.4.178 and tcp.flags.syn == 1 and tcp.flags.ack == 0

问题3:本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
用的是Nmap扫描工具。
执行下面这条命令
sudo snort -c /etc/snort/snort.lua -r /home/kali/Desktop/listen.pcap -R /etc/snort/rules/snort3-community.rules -A alert_fast -l /var/log/snort
查看输出结果,控制台会出现大量明确告警:Nmap XMAS attack detected,Snort 官方规则直接匹配到 Nmap 扫描的特征

问题4:你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
扫描方法:这是 nmap -sS(SYN 半开扫描)
目标端口:攻击者发起的 SYN 扫描包覆盖了 TCP 1-65535 全端口范围,实现全端口探测。
输入以下命令ip.src == 172.31.4.178 and tcp.flags
原理是:
- 只发 SYN 包:所有扫描包都是 [SYN] 标志位,没有后续 ACK 或 RST 握手步骤,符合半开扫描 “不建立完整连接” 的特点。
- 目标端口无序:目标端口(3306、139、3306、995、23、80、110...)完全随机乱序,不是连续递增,这是 nmap 默认的端口扫描行为。
- 源端口固定:所有扫描包的源端口都是 57738,这是 nmap 扫描时常见的固定源端口特征。
- 响应 RST 包:目标端口关闭时,对方直接回 [RST] 包(红色行),这是 TCP 对未开放端口的标准拒绝响应,nmap 正是通过这种响应判断端口是否开放。

问题5:在蜜罐主机上哪些端口被发现是开放的?
21、22、23、25、53、80、139、445、3306、3632、5432、8009、8180等端口活跃。
在 Wireshark 顶部显示过滤器输入精准过滤规则:
tcp.flags.syn == 1 and tcp.flags.ack == 1 and ip.src == 172.31.4.188

查看过滤结果中所有数据包的源端口列,对端口号去重后,得到完整的开放端口列表。
问题6:攻击主机的操作系统是什么?
操作系统为Linux 2.6.x。
安装p0f工具,输入命令:
apt-get install p0f
进入listen.pcap所在文件夹执行以下命令。
p0f -r listen.pcap

3、实验中遇到的问题及解决方案
sudo snort -c /etc/snort/snort.lua -r /home/kali/Desktop/listen.pcap -R /etc/snort/rules/snort3-community.rules -A alert_fast -l /var/log/snort
实验中我用这条命令的时候并不能显示出告警。
解决方案:在/etc/snort/snort.lua 文件中加入enable_builtin_rules = true
搜索后学到
snort3-community.rules 主要包含应用层攻击规则(如 SQL 注入、XSS、漏洞利用等),不包含端口扫描类规则。
端口扫描(如 SYN 扫描)属于 底层网络流量异常检测,规则存储在 Snort 内置规则库 中。
配置项 enable_builtin_rules = true 用于启用 Snort 内置的底层检测规则。
不加该配置,Snort 只加载外部规则,无法识别端口扫描,所以无告警;添加后,内置规则生效,能检测并告警端口扫描,因此正常显示攻击。
在kali虚拟机读取主机文件时,忘记怎么共享文件夹了,在csdn搜索后解决。
4、学习感悟和思考
本次实验让我熟练掌握了 tcpdump 和 Wireshark 的基本使用,能对网页访问、Telnet 登录等流量进行抓包与分析。通过实验直观看到 Telnet 明文传输账号密码的安全风险,深刻认识到明文协议的不安全性。在对 listen.cap 进行分析时,我学会了识别攻击 IP、目标 IP、扫描工具及扫描类型,理解了 Nmap SYN 半开扫描的原理。同时也明白配置 Snort 内置规则对检测端口扫描的重要性。整体提升了我的流量分析与攻击取证能力,增强了网络安全防范意识,为后续学习网络攻防打下了扎实基础。

浙公网安备 33010602011771号