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

服务攻防之Redis数据库安全

最近我将会把一些服务攻防方面的姿势在这里做一个简单总结。欢迎大家留言讨论。
首先我们先对这类安全问题做一个总体的概括!

一、总概

1.服务判断:

端口扫描:利用服务开启后的目标端口开放判断
组合判断:利用搭建常见组合分析可能开放服务
信息来源:访问端口提示软件版本,应用信息等
强弱特征:如框架 shiro 强特征 rememberMe,SpringBoot 默认页面等

2.对象类别:

对服务进行类别划分,通过服务功能理解,如数据库有帐号密码就有爆破利用方法,也可 以针对服务公开的 CVE 进行漏洞测试及服务常见的错误安全配置导致的未授权访问等。

3.利用方法:

主要集中在 CVE 漏洞,未授权访问,弱口令爆破等方面

二、数据库-Redis-未授权 RCE&CVE

0.首先我们先来了解一下什么是redis?

Redis简单介绍_redis简介-CSDN博客
这里给大家一篇文章大家可以阅读参考一下,总而言之redis是一款目前用的非常多的非关系型数据库,她不像我们的mysql属于关系型数据库!正是因为他用的非常多所以安全问题也是一个经常被人讨论的问题!

1.原理

Redis默认情况下,会绑定0.0.0.0:6379,如果没有采用相关的策略,比如添加防火墙规则表面其他非信任来源IP访问等,这样会将Redis服务暴露到公网上,如果在没有设置密码认证 (一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据

攻击者在未授权访问Redis的情况下,利用Redis自身提供的config命令,可以进行写文件操作,攻击者可以成功将自己的ssh公钥 写入目标服务器的/root/.ssh文件夹中authotrized_keys文件中,进而可以只用对应私钥直接使用ssh服务登录目标服务器。

2.条件或者说如何初步判断漏洞是否存在

2.1他的端口暴露在公网上,我们可以直接用fofa等搜索引擎搜索redis的默认端口6379进行相关搜索。

2.2通过redis管理工具尝试连接,如果可以直接连接上去那就很有可能存在未授权访问漏洞,就可以进行尝试利用

3.漏洞复现

我们通过复现一些漏洞来进一步加深对这个漏洞的印象。

3.1VULFOCUS-redis未授权访问(CNVD-2019-21763 )

3.2 redis 未授权访问 (CNVD-2015-07557)
这个漏洞有多种利用姿势:
这里我们只演示用工具打,因为这个工具中包含了所有姿势,实战中碰到的话也是直接上工具就行

4.漏洞危害

  • 攻击者无需认证访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意执行flushall来清空所有数据
  • 攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门程序
  • 最严重的情况,如果Redis以root身份与运行,黑客可以给root账户写入SSH公钥文件直接通过SSH登录受害服务器

5.漏洞修复

1、 设置本机访问或者指定主机访问redis,修改redis.conf中bind配置

2、 iptables策略仅允许指定的IP来访问Redis服务 

3、 设置访问密码 (需要重启redis才能生效), redis.conf 中找到“requirepass”字段添加密码。

4、 最小权限运行redis,修改Redis服务运行账号 (需要重启redis才能生效),以较低权限账号运行Redis服务,并禁用该账号的登录权限。

http://www.lryc.cn/news/464381.html

相关文章:

  • 随机森林算法的原理与实现
  • 模仿百度-基础版
  • c++贴瓷砖
  • 用 Python 构建高级配对交易策略
  • Java 引用数据类型详解、字符串的不可变性、如何处理字符串的内存管理、String Pool 及其优化
  • Babel使用
  • 自动机器学习(AutoML)
  • Vivado时序报告六:Report Timing详解
  • java基础:数据类型的总结
  • 【目标检测论文解读复现NO.39】基于改进 YOLOv8 的轻量级复杂环境苹果叶片病害检测方法
  • python 基础笔记 2(函数, 类)
  • LeetCode 2090.半径为K的子数组平均值
  • Qt C++ 编程中定义了一个槽函数(slot)deleteLater的作用
  • 【Hive】8-Hive性能优化及Hive3新特性
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18
  • CTF(四)
  • 智慧商城项目1-项目初始化创建
  • Java集合(四)--treeset/treemap/章节练习题目/去重原理的解读和应用
  • 如何开启华为交换机 http
  • SpringBoot中的RedisTemplate对象中的setIfAbsent()方法有什么作用?
  • 《合肥工业大学学报(自然科学版)》
  • Android11 USB Camera会出现预览绿屏问题
  • Mongodb 获取集合(collection)的统计信息
  • Java中的集合(1)——List、Map和Set
  • MySQL8.0主从同步报ERROR 13121错误解决方法
  • 【论文阅读】03-Diffusion Models and Representation Learning: A Survey
  • 【深度学习】RNN的简单实现
  • 每次请求时,检查 JWT Token的有效期并决定是否需要刷新
  • AI大模型开发架构设计(13)——LLM大模型的向量数据库应用实战
  • WPF中Grid、StackPanel、Canvas、WrapPanel常用属性