CVE-2022-33891漏洞原理、环境搭建和复现
前言
最近有幸参与了某地市的攻防演练,在扫描器漏洞都被提交了之后,大杀器也逐渐开始浮出水面,其中就包含今天的主角:apache spark的rce。
简介
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。spark除了能够提供交互式查询外,它还可以优化迭代工作负载。
漏洞成因
该漏洞是由于Apache Spark UI提供了通过配置选项spark.acls.enable启用ACL的可能性,HttpSecurityFilter中的代码路径可以通过提供任意用户名来允许某人执行模拟。恶意用户凭借访问权限检查函数最终将基于其输入构建Unix shell命令并执行它。成功利用此漏洞可导致任意shell命令执行。
利用方法
抓取数据包后,在请求后拼接
/(任意目录,可为空)/?doAs=`touch /123.txt
即可在目标机器主目录下创建123.txt,也可在url后直接拼接命令。也可通过dnslog去验证目标是否存在该漏洞。
环境搭建
为了追求效率,这里推荐使用docker镜像去直接搭建漏洞环境,链接如下:
spark镜像文章来源:https://www.toymoban.com/news/detail-641063.html
漏洞复现
- 环境搭建好后,访问本地电脑的ip:8080,得到如下页面:
- 在URL后拼接如下内容:
/?doAs=`touch /tmp/123456.txt`
,回车
进入docker查看
可看到该目录已创建成功。
而此处也可利用dnslog回显来确定是否存在该漏洞,
由于我这边用的是docker镜像,ping无法执行,所以采用了curl的方式
结果如下:
当然也可以反弹shell
经测试本镜像只有python环境,故利用pythonfantanshell,利用nc/msf监听以获取会话由于之前执行了dnslog回显,所以此处页面为dnslog回显的报错页面,会话是持久的,所以此处会一直加载页面
结果如下:
由于时间关系,复现只演示到这里,还请大佬们多多指教。文章来源地址https://www.toymoban.com/news/detail-641063.html
到了这里,关于CVE-2022-33891漏洞原理、环境搭建和复现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!