JumpServer 未授权接口 远程命令执行漏洞

本文详细介绍了JumpServer的一个未授权接口导致的远程命令执行漏洞,该漏洞允许攻击者构造恶意请求获取敏感信息或执行API操作。受影响的版本包括v2.6.2以下,v2.5.4以下,v2.4.5以下以及v1.5.9。复现过程包括环境搭建、漏洞利用POC等,提醒用户及时升级到安全版本。
摘要由CSDN通过智能技术生成

JumpServer 未授权接口 远程命令执行漏洞

在这里插入图片描述

漏洞描述

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

FOFA

app=“FIT2CLOUD-JumpServer-堡垒机”

环境搭建

安装 JumpServer v2.6.1 版本

下载链接

安装注意 配置网络,配置Mysql,配置Redis 选择 n

等待完成安装执行以下命令

cd /opt/jumpserver-installer-v2.6.1
./jmsctl.sh start

等待安装完毕访问 http://xxx.xxx.xxx.xxxx:8080

默认账号密码 amdin:admin

漏洞复现

进入后台添加配置

资产管理 --> 系统用户
在这里插入图片描述

资产管理 --> 管理用户
在这里插入图片描述

用户管理 --> 用户列表
在这里插入图片描述

资产管理 --> 资产列表
在这里插入图片描述

查看一下项目代码提交变动
在这里插入图片描述

import time
import os
import threading
import json

from common.utils import get_logger

from .celery.utils import get_celery_task_log_path
from channels.generic.websocket import JsonWebsocketConsumer

logger = get_logger(__name__)


class CeleryLogWebsocket(JsonWebsocketConsumer):
    disconnected = False

    def connect(self):
        user = self.scope["user"]
        if user.is_authenticated and user.is_org_admin:
            self.accept()
        else:
            self.close()

    def receive(self, text_data=None, bytes_data=None, **kwargs):
        data = json.loads(text_data)
        task_id = data.get("task")
        if task_id:
            self.handle_task(task_id)

    def wait_util_log_path_exist(self, task_id):
        log_path = get_celery_task_log_path(task_id)
        while not self.disconnected:
            if not os.path.exists(log_path):
                self.send_json({
   'message': '.', 'task': task_id})
                time.sleep(0.5)
                continue
            self.send_json({
   'message': '\r\n'})
            try:
                logger.debug('Task log path: {}'.format(log_path))
                task_log_f = open(log_path, 'rb')
                return task_log_f
            except OSError:
                return 
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值