JumpServer(CVE-2024-29201、29202) 附带POC
免责声明
请勿利用文章内的相关技术从事非法测试。由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者与发布者不为此承担任何责任,请遵守相关网络安全法律。
0x01 简介
JumpServer开源堡垒机采用了分布式架构设计 ,采用容器化的部署方式,支持多种资产类型和大规模资产纳管 ,可以支持高并发访问,满足企业用户在混合IT环境中的运维安全审计需求。JumpServer的用户涵盖金融、制造、物流、媒体、互联网等行业
0x02 漏洞简述
远程代码执行漏洞(CVE-2024-29201,CVSS评分9.9),具有低权限用户帐户的攻击者可通过构建恶意playbook模板绕过Ansible中的输入验证机制,从而在Celery容器中执行任意代码。
JINJA2注入代码执行漏洞(CVE-2024-29202,CVSS评分为9.9),具有低权限用户帐户的攻击者可通过构建恶意playbook模板利用Ansible中的Jinja2模板代码注入漏洞在Celery容器中执行任意代码。由于Celery容器以root权限运行并具有数据库访问权限,因此攻击者可以从所有主机窃取敏感信息或操纵数据库。
0x03 影响范围
V3.0.0<= Jumpserver <= V3.10.6
0x04 搭建测试环境
JumpServer安装
准备一台4核8G(最低要求)且可以访问互联网的64位Linux主机
下载脚本最新应该是3.10.7,漏洞影响范围V3.0.0<= Jumpserver <= V3.10.6
以root用户执行以下命令一键安装
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
或者使用github的下载
curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
等待安装完成即可,约需15分钟左右,默认80端口,注意检查服务器占用端口。如需修改在config.txt中修改:
在这里插入图片描述
安装完成后,进入DOMAINS修改实际IP,如果是公网IP请改成对应的公网IP。
然后在浏览器顺利登录:(默认账号admin/admin)
添加资产详情:
创建一个普通账号
0x05漏洞复现过程
注意本次两个漏洞复现的前提条件都需要有账号并且至少有一个资产。远程代码执行漏洞(CVE-2024-29201):登录创建的账号,添加一个Playbook
点击创建的 Playbook 名称,切换到 工作空间,输入以下内容(具体内容可关注公众号 回复Jumpserver)
保存之后,到作业管理 重新创建一个新的playbook作业
然后保存并运行:
RCE 执行成功,附带JINJA2注入(CVE-2024-29202)执行成功的图片:
JINJA2注入代码执行漏洞(CVE-2024-29202)
与上述漏洞复现步骤一样,poc不一致,具体POC关注公众号后回复Jumpserver。
POC
0x06 修复方式
1.升级到 v3.10.7 版本
2.关闭任务中心。