漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

  • A+
所属分类:安全文章

本文作者:Birdman‐oneMs08067实验室 SRSP TEAM小组成员)

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

0x01 简介



SaltStack是基于Python开发的一套C/S架构配置管理工具,是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能。

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

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


漏洞成因
ClearFuncs类会处理非认证的请求和暴露_send_pub()方法,可以用来直接在master publish服务器上对消息进行排队。这些消息可以用来触发minion来以root权限运行任意命令。
ClearFuncs类还会暴露_prep_auth_info()方法,该方法会返回用来认证master服务器上本地root用户的命令的root key。然后root key就可以远程调用master服务器的管理命令。这种无意的暴露提供给远程非认证的攻击者对salt master的与root权限等价的访问权限。

1) 影响版本
  • SaltStack < 2019.2.4

  • SaltStack < 3000.2


2) 默认端口
  • 4505  publish_port  提供远程执行命令发送功能

  • 4506  ret_port          支持认证、文件服务、结果收集等功能

  • 8000  salt‐api


0x02 环境搭建



直接使用vulhub进行搭建环境
git clone https://github.com/vulhub/vulhub.gitcd /vulhub/saltstack/CVE‐2020‐11651/docker‐compose up ‐d

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

查看环境是否启动docker ps

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)


0x03 漏洞复现



EXP地址:
https://github.com/jasperla/CVE‐2020‐11651‐pochttps://github.com/heikanet/CVE‐2020‐11651‐CVE‐2020‐11652‐EXP.git
同时,需要安装下salt
pip install salt
漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)
执行命令,这里需要把py脚本里的port自行修改为靶机4506映射的端口(如果一样则不用改),执行后可以看到回显存在漏洞
选择1:进行测试poc:

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

选择2:尝试读取文件
/etc/passwd

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

选择4:反弹shell:

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)


0x04 解决方案


  1. SaltStack官方已发布最新版本修复了上述漏洞,建议相关用户及时更新规避风险。

    https://github.com/saltstack/salt/releases

  2. 禁止将Salt Master默认监听端口(4505、4506)向公网开放,并设置为仅对可信对象开放。





扫描下方二维码加入星球学习

加入后会邀请你进入内部微信群,内部微信群永久有效!

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651) 漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651) 漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651) 漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

目前30000+人已关注加入我们

漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

本文始发于微信公众号(Ms08067安全实验室):漏洞复现 | SaltStack认证绕过(CVE‐2020‐11651)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: