20253919 2024-2025-2 《网络攻防实践》实验三
一、实验内容
- 使用tcpdump对www.163.com
- Wireshark对BBS嗅探
- 分析扫描记录
二、实验过程
1. 使用tcpdump命令进行嗅探
首先获取root权限,然后使用命令
tcpdump -n -i eth0 src 192.168.200.4 and 'tcp port 80 or tcp port 443' and 'tcp[13] & 2 != 0'
同时打开163.com,
可以看到已成功嗅探到记录

根据抓包日志分析,浏览器访问的Web 服务器总数为 30 台,对应的 IP 地址如下:
- 34.160.144.191
- 146.75.45.91
- 45.113.20.60
- 114.250.69.33
- 34.107.243.93
- 34.107.221.82
- 151.101.89.91
- 60.29.234.35
- 60.26.227.199
- 36.110.220.121
- 125.37.133.183
- 220.197.30.48
- 60.9.0.234
- 220.197.30.52
- 220.197.30.54
- 45.113.20.22
- 45.113.20.26
- 110.242.68.129
- 150.138.110.36
- 111.206.208.190
- 125.37.133.195
- 218.68.136.49
- 119.249.103.5
- 59.110.122.164
- 150.138.110.35
- 221.204.61.38
- 220.197.35.208
- 218.11.11.225
- 151.101.129.91
- 34.49.51.44
2. wireshark监听BBS登录过程
打开wireshark,选择eth0进行监听

输入luit -encoding gbk telnet bbs.mysmth.net进入清华BBS,输入账号密码

通过分析telnet数据包,可以看到BBS服务器IP地址是120.92.212.76,端口是23
Telnet 协议采用明文方式传输数据,客户端与服务器通过 TCP 23 端口建立连接后,服务器依次发送登录名和密码提示,用户输入的用户名和登录口令均以明文形式在网络中传输,无任何加密保护。具体步骤为:
- 建立连接:客户端(如 telnet.exe)通过 TCP 协议 23 端口与服务器建立连接。
- 交互协商:双方协商终端类型、回显模式等参数。
- 登录提示:服务器发送 login: 提示,客户端输入用户名并回车。
- 密码提示:服务器发送 Password: 提示,客户端输入密码并回车(本地通常不回显字符,但网络上仍明文)。
- 权限验证:服务器验证凭据,成功则进入 Shell,失败提示重试。
通过追踪tcp包流,即可在其中找到我的账户名和对应的密码
![image]()
3. 分析监听文件
由于之前安装过snort,这里不再安装
具体命令为sudo apt-get install snort
将下载好的listen.pcap文件移动到/etc/snort中
使用命令sudo snort -c snort.lua -r listen.pcap -A alert_full 直接读取已保存的网络抓包文件

使用命令sudo apt install p0f,离线分析 PCAP 抓包文件

对记录进行分析
攻击主机ip:172.31.4.178
目标主机ip:172.31.4.188
攻击主机操作系统:Linux 2.6.x,判断理由:日志里出现了
os = Linux 2.6.x
raw_sig = = 4:64+0:0:1460:mss*4,6:mss,sok,ts,nop,ws:df,id+:0
p0f 就是靠这个 raw_sig 字符串来匹配操作系统指纹库,判定是 Linux 2.6.x

通过一开始的记录中app = NMap SYN scan判断是nmap工具
攻击者使用的扫描方法:TCP SYN 扫描(半开放扫描)
理由:日志中存在记录
(syn)
client = ...
(syn+ack)
server = ...
大量syn与syn+ack成对出现
没有ACK完成握手,典型半开放扫描
从日志中可明确看到目标端口:
25(SMTP)
80(HTTP)
53(DNS)
139/445(SMB)
5432(PostgreSQL)
8009、8180(Web 服务)
工作原理:
- 攻击者只发送 TCP SYN 包,不完成三次握手
- 目标端口开放:回复 SYN+ACK
- 目标端口关闭:回复 RST
- 攻击者收到应答后立即发送 RST 断开连接,不建立完整会话

在 Wireshark 中,TCP半开放扫描下:
目标端口开放:服务器会回复 SYN, ACK 包
目标端口关闭:服务器会回复 RST, ACK 包
我们只需要找出所有被回复 SYN, ACK 的目标端口即可。
- 53 → 57738 [SYN, ACK] → 53 端口开放
- 25 → 57738 [SYN, ACK] → 25 端口开放
- 23 → 57738 [SYN, ACK] → 23 端口开放
- 139 → 57738 [SYN, ACK] → 139 端口开放
- 445 → 57738 [SYN, ACK] → 445 端口开放
- 5432 → 57738 [SYN, ACK] → 5432 端口开放
- 8009 → 57738 [SYN, ACK] → 8009 端口开放
- 8180 → 57738 [SYN, ACK] → 8180 端口开放
三、学习中遇到的问题及解决
- 问题1:无法成功使用snort解读listen文件
- 问题1解决方案:修改命令中的正确文件位置得以解决
四、学习感悟、思考
通过本次端口扫描与流量分析案例的学习,我不仅掌握了tcpdump嗅探、p0f 被动指纹识别和Wireshark 流量解析的核心技能,更深刻理解了网络攻击的典型行为模式。从识别攻击主机与目标主机的操作系统,到判断 Nmap 发起的 TCP SYN 半开放扫描,再到依据 SYN/ACK 与 RST/ACK 报文区分开放端口,整个过程让我明白:网络攻防的本质是对流量特征与协议细节的融会贯通。


浙公网安备 33010602011771号