JumpServer v2.6.1 RCE(远程代码执行) 复现
JumpServer 是全球首款完全开源的堡垒机, JumpServer 使用Python / Django 进行开发。2021年1月15日,阿里云应急响应中心监控到开源堡垒机JumpServer发布更新,修复了一处远程命令执行漏洞。由于 JumpServer api接口未做授权限制(此处存在未授权访问漏洞),攻击者可构造恶意请求获取到日志文件获取参数id等敏感信息,或者执行相关API操作,控制其中机器
漏洞影响
JumpServer < v2.6.2
JumpServer < v2.5.4
JumpServer < v2.4.5
JumpServer = v1.5.9
fofa搜索 app=“FIT2CLOUD-JumpServer-堡垒机”
环境复现
下载一键安装脚本,使用最新安装脚本做修改
踩坑1:
各个版本连接:https://github.com/jumpserver/jumpserver/releases
下载v2.6.1安装脚本,脚本内置参数获取最新的修复版本
https://github.com/jumpserver/jumpserver/releases/download/v2.6.1/quick_start.sh
直接将Vesion和JMS_Version变量改为需要下载版本,此处为v2.6.1
踩坑2
默认安装配置
配置环境是下载到/opt目录下jumpserver和jumpserver-installer-v2.6.1,默认安装docker文件缓存文件也在该目录下,通过jumpserver-installer-v2.6.1文件中的jmsctl.sh脚本启动多个docker来启动jumpserver环境。配置文件安装好之后会教你启动停止命令
启动环境
可以通过docker images查看是否存在如下镜像
使用./jmsctl.sh start
启动
可能会遇到unhealthy问题,jms_core遇到容器状态为unhealthy,可以service docker stop
,然后reboot机器解决。jre_mysql出现unhealthy问题等,可以vim /opt/jumpserver/mysql/data/mysql-error.log
查看问题在哪。我遇到了磁盘不够的问题,导致容器无法写入完全,没有启动,删掉一些大文件,或者没用的镜像删掉一些也是可以
之后可以正常访问
启动完成访问之前配置完成给的url就可以访问堡垒机
默认账号密码问admin/admin,进入之后会让你修改默认密码。
想要查看mysql的默认账号密码等。可以vim /opt/jumpserver/cpmfig/config.txt
文件查看。 进入docker exec -it mysql容器id /bin/bash
,使用mysql -uroot -p 输入刚才查找的密码就能够正常使用了
后期使用的user_id,asset,system_user,值是可以从assets_asset,users_user,assets_systemuser查询到,也可以进入jms_core的/opt/jumpserver/logs/,查看具体日志得到。
环境使用(漏洞复现)
但是下面的获取日志需要添加一台主机。并且web终端可以访问才行
资产管理中添加资产,以及以下操作
管理用户和系统用户要注意,不然连接不成功
权限管理中的资产授权功能里将激活中打开
插件为WebSocket King,使用方法如图