简介
JumpServer 是全球首款完全开源的堡垒机, 使用GNU GPL v2.0 开源协议, 是符合4A 的专业运维审计系统,通俗来说就是跳板机。JumpServer 使用 Python / Django 进行开发。
漏洞详情
2021年1月15日,JumpServer发布更新,修复了一处远程命令执行漏洞。由于 JumpServer 某些接口未做授权限制,攻击者可构造恶意请求获取到日志文件获取敏感信息,或者执行相关API操作控制其中所有机器,执行任意命令。
影响版本
-
JumpServer < v2.6.2
-
JumpServer < v2.5.4
-
JumpServer < v2.4.5
-
JumpServer = v1.5.9
环境搭建
JumpServer v2.6.1
1 |
# 执行脚本并运行 |
访问 http://IP:8080 初始账号密码为 admin/admin
漏洞利用
利用条件
- 未授权的情况下能够建立 websocket 连接
- task 可控,可以通过 websocket 对日志文件进行读取
- 需要通过
/opt/jumpserver/logs/jumpserver
获取system_user
、user
、asset
三个 id 的值 - 通过这三个 id 获取一个临时 token
- 通过临时 token 进入 koko 的 tty,然后执行命令
漏洞脚本
运行脚本
1 |
import asyncio |
获取到 asset
,system_user
,user
三个ID值:
或者使用 chorme 插件读取:WebSocket Test Client
将 asset
,system_user
,user
三个ID值填入下面脚本:
1 |
import os |
成功获取权限:
修复建议
1、建议 JumpServer 堡垒机(含社区版及企业版)用户升级至安全版本
2、临时修复方案:
修改 Nginx 配置文件,以屏蔽漏洞接口 :
1 |
/api/v1/authentication/connection-token/ |
Nginx 配置文件位置如下:
1 |
# 社区老版本 |
Nginx 配置文件实例为:
1 |
# 保证在 /api 之前 和 / 之前 |
修改配置文件完毕后,重启 Nginx 服务即可
修复验证:
1 |
$ wget https://github.com/jumpserver/jumpserver/releases/download/v2.6.2/jms_bug_check.sh |
参考链接
- https://github.com/Skactor/jumpserver_rce
- https://saucer-man.com/information_security/520.html
- https://www.o2oxy.cn/2921.html
FROM : lintstar.top , Author: 离沫凌天๓
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论