怎么实现SaltStack未授权访问及命令执行漏洞CVE-2020-16846及25592的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。SaltStack是一个分布式运维系统,在互联网场景中被广泛应用,有以下两个主要功能:• 配置管理系统,能够将远程节点维护在一个预定义的状态(例如,确保安装特定的软件包并运行特定的服务)• 分布式远程执行系统,用于在远程节点上单独或通过任意免费云主机域名选择标准来执行命令和查询数据2020年11月4日,SaltStack 官方发布了一则安全更新公告,其中CVE-2020-16846和CVE-2020-25592组合使用可在未授权的情况下通过salt-api接口执行任意命令。CVE-2020-25592允许任意用户调用SSH模块,CVE-2020-16846允许用户执行任意命令。salt-api虽不是默认开启配置,但绝大多数SaltStack用户会选择开启salt-api,故存在较高风险。CVE-2020-16846、CVE-2020-25592• 3002• 3001.1, 3001.2• 3000.3, 3000.4• 2019.2.5, 2019.2.6• 2018.3.5• 2017.7.4, 2017.7.8• 2016.11.3, 2016.11.6,2016.11.10• 2016.3.4, 2016.3.6,2016.3.8• 2015.8.10, 2015.8.13截至2020年11月11日,补丁代码尚未与Github中master分支代码合并,故可直接从SaltStack官方Github仓库获取,目前master的代码版本为3002,系统为Mac,版本号相差较大时代码变动较大,需另作分析。salt-api REST接口默认使用cherrypy框架,从run接口的实现上可以看出通过client参数动态调用NetapiClient类中的方法。文中指定代码位置采用以下约定:FileLocation:Classname.method()salt/netapi/init.py:NetapiClient.run()salt/netapi/init.py:NetapiClient.run()low参数为外部传入参数,salt.utils.args.format_call方法将参数赋值给**kwargs。当client参数为ssh时,动态调用salt/netapi/init.py:NetapiClient.ssh(),该方法未采用任何鉴权。salt/netapi/init.py:NetapiClient.ssh()跟进,路径如下:salt/netapi/init.py:NetapiClient.ssh()⇒salt/client/ssh/client.py:SSHClient.cmd_sync()⇒salt/client/ssh/client.py:SSHClient._prep_ssh()salt/client/ssh/client.py:SSHClient._prep_ssh()该方法将kwargs外部可控参数更新值opts变量,该变量可以理解为SaltStack系统的环境变量,使用该变量初始化salt.client.ssh.SSH。salt/client/ssh/init.py:SSH.__init__()priv的值从opts变量中获取,并调用salt.client.ssh.shell.gen_key()方法。salt/client/ssh/shell.py:gen_key()、该方法中对命令进行拼接,并进行执行。当传入值为|COMMAND>{} #即可执行COMMAND命令。POC由上分析可知,POC如下:关于复现环境1. Mac上复现需要手动创建日志文件夹、配置文件夹等,并需要手动写入相关配置。2. Docker从官方环境拉取的镜像中默认没有SSH,故执行该poc时salt-api会挂掉,经测试3002版本自动重启,3000.4版本、2019.2.5版本则不会。故当salt-api挂掉时,优先考虑当前机器上是否有SSH软件。1. 尽快修复。由于官方并未放出升级包,故目前仍需要手动进行修复,这里是官方安全通告和修复补丁。2. 如非必须使用salt-api,请关闭该功能。看完上述内容,你们掌握怎么实现SaltStack未授权访问及命令执行漏洞CVE-2020-16846及25592的分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注云编程开发博客行业资讯频道,感谢各位的阅读!
这篇文章主要介绍购买ssl证书需要多少钱,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!随着网络安全意识普及,网站上的所有数据包含用户名登陆、订单明细、交易内容等敏感信息都是可见的,很容易被第三方或黑客所监听、窃取或你篡改。而使用…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。