SaltStack漏洞复现

SaltStack介绍

SaltStack是一款Python开发的开源配置管理工具;

可用来发现、监控、响应、协调、自动化管理本地、混合、云和IOT资产;

其最主要的差异是主从模式,分为master和minions(slave);

经过配置之后master可以管理成千上万个minions;

master安装的是服务端组件salt-mater,minions安装的是salt-minion;

Salt使用基于ZeroMQ的强大异步网络拓扑,主要是为实现最快的通信;

Salt Master运行2个网络服务,ZeroMQ PUB系统,默认运行在4505端口;

ZeroMQ REP系统,用于与Salt Minion进行双向通信,默认运行在4506端口;

Salt客户端(salt命令)发送的命令将通过ZeroMQ PUB/SUB广播给各个Salt Minion。前提是Salt Minion配置了Mater,并且Salt Master通过salt-key命令信任了对应的Salt Minion。建立连接之后,Salt Minion可以接收到广播命令,并且执行;

PUB/SUB是单向通信,因此一旦广播结束,Master服务器上的PUB接口就不会再与Minion进行任何通信。Minion在运行命令之后,通过REP端口(4506)将命令的返回数据发回Master。

SaltStack漏洞介绍

近日,国外安全团队发现了多个SaltStack的漏洞,其中包含2个严重漏洞,身份验证绕过漏洞(CVE-2020-11651)和目录遍历漏洞(CVE-2020-11652)。

CVE-2020-11651(身份验证绕过漏洞)

ClearFuncs类处理未经身份验证的请求,并且无意中公开了_send_pub()方法,该方法可用于直接在master服务器上创建消息队列,此类消息可用于触发minions以root身份运行任意命令。

ClearFuncs类还公开了_prep_auth_info()方法,该方法返回用于验证master服务器上本地root用户命令的“root key”。可以使用此“root key”在主服务器上远程调用管理命令。这种无意的暴露为远程未经身份验证的攻击者提供了与salt-master相同的根访问权限。因此未经身份验证的远程攻击者可以使用此漏洞执行任意命令。

CVE-2020-116512(目录遍历漏洞)

wheel模块包含在特定目录路径下读取和写入文件的命令。这些函数的输入参数与目标目录连接在一起,生成的路径未规范化处理,从而绕过了预期的路径限制。

salt.tokens.localfs类的get_token()方法(由ClearFuncs类暴露给未经身份验证的攻击者)无法清除token输入参数,该参数随后用作文件名,从而允许插入“ ..”路径元素并读取预期目录之外的文件。

受漏洞影响的SaltStack版本

SaltStack Salt<2019.2.4

SaltStack Salt<300.2

漏洞检测

相关用户可通过下列命令查看当前SaltStack版本,以判断是否在受影响范围内。

salt --versions-report

漏洞复现

靶机:unbutu ip:192.168.28.129

攻击机:kali ip:192.168.28.128

在unbutu里安装环境

docker pull vulfocus/saltstack-cve_2020_11651

63199-7hjvbnbe4wm.png

启动

docker run -d -p 4506:4506 -p 4505:4505 vulfocus/saltstack-cve_2020_11651

42339-mlz3zoze7ij.png
查看环境

docker images

docker ps

80893-43io8hjhc7n.png

下载poc

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

python支持库 salt

切记使用linux安装

推荐使用kali

salt版本推荐3000.1

这里有个大坑

Kali里面pip默认安装的salt是3000.2版本的

而漏洞版本是3000.1版本 所以就需要我们手动安装3000.1版本

Salt3000.1

下载地址: https://pypi.org/simple/salt/ps:一定要下载3000.1版本

将压缩包拖进kali里面 使用tar -xvzf 进行解压

解压完开始安装 运行 python3 setup.py install命令安装 安装完即可

88032-7hkm0qn5ket.png

开始运行exp 可以看见key

11256-nbehlc31y6.png

成功读取文件

24874-hulpkoku02u.png
成功拿到shell 走上人生巅峰

32652-udsksfnuz2.png

修复方案

1、将Salt Master默认监听端口(默认4505 和 4506)设置为禁止对公网开放,或仅对可信对象开放。将SaltStack升级至安全版本以上,升级前建议做好快照备份,设置SaltStack为自动更新,及时获取相应补丁。

2、Redis 非必要情况不要暴露在公网,使用足够强壮的Redis口令。

3、参考以下步骤手动检查并清除H2Miner挖矿木马:

(1).kill掉进程中包含salt-minions和salt-store文件的进程,文件has为a28ded80d7ab5c69d6ccde4602eef861、8ec3385e20d6d9a88bc95831783beaeb;

(2).删除文件/tmp/salt-minions、/tmp/salt-store;

(3).将恶意脚本服务器地址217.12.210.192、206.189.92.32进行封禁;

(4).升级SaltStack到2019.2.4或3000.2,防止病毒再次入侵。

本文经授权后发布,本文观点不代表立场,转载请联系原作者。
kali 绕过uac提权
« 上一篇 05-13
GOback: Go语言编写的后门,使用shellcode注入技术
下一篇 » 05-13

相关推荐

红队防猝死手册

文章来源:https://github.com/zhutougg/RedteamStandard一切为了不丢分工作环境工作时全部操作均在虚拟机中完成虚拟机...

Android渗透工具集合

Android安全测试更多地被安全行业用来测试Android应用程序中的漏洞。下面将列举全面的Android渗透测试工具和资源列表,其涵盖了在Andro...