DC:7
字数 1517 2025-08-19 12:41:24
DC-7 靶机渗透测试教学文档
一、靶机概述
DC-7 是一个基于 Drupal CMS 的 Vulnhub 靶机,主要考察以下技能:
- 信息收集与社工技巧
- Drupal 系统管理 (Drush 工具使用)
- 权限提升技术
- 文件权限利用
二、环境准备
攻击机配置
- IP: 192.168.44.133
- 工具要求:
- nmap/arp-scan
- dirsearch/dirb/gobuster
- netcat
- 浏览器
靶机配置
- 下载地址: https://www.vulnhub.com/entry/dc-7,356/
- 默认IP: 192.168.44.146
- 开放服务:
- SSH (22)
- HTTP (80, Drupal)
三、渗透测试流程
1. 信息收集阶段
主机发现
nmap -sn 192.168.44.0/24
# 或
arp-scan -I eth0 -l
端口扫描
nmap -sV -p- 192.168.44.146
预期结果: 22(SSH), 80(HTTP/Drupal)
Web目录扫描
dirsearch -u http://192.168.44.146
关键发现: robots.txt 中有提示信息
2. Web应用分析
首页提示
- 明确说明不要使用暴力破解/字典攻击
- 建议使用"靶机之外的技术"(CTF风格)
robots.txt 分析
访问 http://192.168.44.146/robots.txt 发现 /filter/tips 文件
/filter/tips 分析
- 包含HTML标签内容
- 重点检查
<strong>标签中的作者信息
3. 社工技巧利用
- 从
<strong>标签获取作者信息 - 在GitHub搜索该作者
- 找到靶机后端源码仓库
- 在config文件中发现账号密码:
- 用户名: dc7user
- 密码: [从config文件中获取]
4. 初始访问
尝试使用找到的凭据:
- Web登录失败
- SSH登录成功:
ssh dc7user@192.168.44.146
5. 权限提升路径
信息收集
- 检查用户邮箱
/var/mail/dc7user - 发现root发送的邮件,提及:
- 一个shell脚本文件
- 该脚本属于root:www-data
- 当前用户组(dc7-user)无写权限
Drush工具利用
Drush是Drupal的命令行管理工具,关键命令:
用户管理
drush user-password admin --password="newpassword" # 修改管理员密码
drush user-information username # 查看用户信息
drush ucrt username --password="password" # 创建用户
模块管理
drush pm-list # 列出模块
drush pm-enable module_name # 启用模块
drush pm-disable module_name # 禁用模块
数据库管理
drush sql-dump > backup.sql # 数据库备份
drush sqlc < backup.sql # 数据库恢复
缓存管理
drush cc all # 清除所有缓存
提权步骤
- 修改Drupal管理员密码:
cd /var/www/html
drush user-password admin --password="newpassword"
-
Web登录Drupal后台
-
尝试获取Web Shell:
- 理想方式: 安装PHP模块编辑PHP代码
- 但靶机可能无法安装插件(已知问题)
-
替代方案:
- 利用www-data权限修改脚本文件
- 通过Drush执行系统命令
-
最终提权:
- 修改root拥有的脚本文件(需www-data权限)
- 插入反弹shell代码
- 等待root执行脚本获取root权限
6. 获取Flag
- 直接方法(如靶机允许):
su root
# 输入更新后的root密码
- 查找flag文件:
find / -name "*flag*" -type f 2>/dev/null
四、关键知识点总结
-
信息收集深度:
- 不局限于常规扫描,注意HTML注释/标签内容
- 合理利用社工技巧(GitHub源码搜索)
-
Drush工具使用:
- 强大的Drupal管理功能
- 可作为权限提升的跳板
-
文件权限利用:
- 注意setuid文件和可写脚本
- 利用邮件内容获取线索
-
提权思路:
- 从Web用户(dc7user) → www-data → root
- 利用Drupal管理功能作为中间步骤
五、故障排除
如遇到PHP模块无法安装问题,参考:
https://www.freebuf.com/vuls/326359.html
六、防御建议
-
对Drupal系统:
- 定期更新Drupal核心和模块
- 限制Drush命令的执行权限
- 监控config文件的访问
-
服务器层面:
- 合理设置文件权限
- 避免在配置文件中存储明文密码
- 限制SSH访问IP
-
开发层面:
- 不要在公开代码库中包含真实凭据
- 使用环境变量存储敏感信息