Redis未授权访问漏洞(一)先导篇

这篇具有很好参考价值的文章主要介绍了Redis未授权访问漏洞(一)先导篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

Redis默认情况下,会绑定在0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等,这样将会将Redis服务暴露到公网上。

如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis以及读取Redis的数据。

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

Redis未授权访问是非常常见的一个漏洞,有很多的云服务器被挖矿就是因为安装了Redis。

1-Redis服务器被挖矿案例

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全首先,在学习Redis漏洞之前先来看一个案列,当我们的redis服务器由于配置不当时是如何被黑客利用来进行挖矿的。

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
这是我们买下的一台阿里云服务器,它上面下载了redis服务,我们先来了解一下关于redis服务的外网配置。

redis的服务配置文件都在redis.conf文件里,我们通过下列代码打开编辑redis的服务配置
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
进入编辑界面后,我们先来了解一下三个选项
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
这是redis的远程保护模式,我们要将他由no改为yes,否者我们是没办法远程连接redis服务器的。

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
这里是是否绑定IP可以访问,这里我们需要给他注释掉,否则只能本地主机进行访问。

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
第三个我们如果想要别人通过6379端口远程访问我们的redis服务,那我们必须在规则里设置6379端口开放。

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全

回到我们的正文,在我们在公网的阿里云服务在配置了redis服务没多久之后,手机就收到了这么一条来信:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
没错我们的服务器被黑客攻击了。

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
我们通过数据分析,黑客通过对我们的键进行了篡改,远程下载了恶意的挖矿程序。

这是挖矿程序的一部分源码
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全总体分析下来,恶意程序做了这么几件事:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全

1.2-Redis常见用途

因为大家有可能是小白,对于Redis不是很熟悉,所以这里还是先来跟大家介绍一下什么是Redis。如果你在一个互联网公司做运维或者做安全,那一定少不了跟Redis服务器打交道。Redis用来做缓存是非常知名的,但Redis除了做缓存之外可以做的事情是非常多的。

Redis是怎么来的呢?Redis的全称是Remote Dictionary Service(远程字典服务),在2007年的时候Redis的作者antirez做了一个用来统计访问网站记录的网站服务。他会记录每天网站有多少个页面被浏览了,有多少个IP浏览了当前的网站。最开始的时候,antirez是用MYSQL数据库存储这些数据信息的。但后来,慢慢的网站数据变得越来越多,数据库变得越来越卡,于是在2009年,antirez干脆自己用C语言写了一个内存版本的列表功能,那这个内存版本的列表功能就是Redis的前身。

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全Redis存储数据都是通过键值对的形式来实现的。Redis里我们用的最多的两个操作就是set和get,set就是给一个键赋值,get就是对一个键取值。下面我们通过实际案列来演示一下:

我们通过一下命令用redis.conf配置文件打开redis服务

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
再通过这条命令打开redis客户端:

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
如图,我们进入了redis的服务器的界面:

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全

我们通过keys *来获取当前Redis服务里存储的值。如下图看到当前是没有存储任何值的:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
我们可以通过set来给某个键赋值

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
看我们通过set 来给 x 赋值了123,x这个键就存储了123数据。

我们可以通过keys *来查看当前数据库有多少个键值对。

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
刚刚还是空的数据库,我们通过set给x赋值就出现了x这个键值对

如果我们要查看x这个键中的所存储的数据怎么办呢?这时我们就可以通过get来取值

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
如图我们取出了存储于x键值中的数据123

最后我们可以通过FLSHALL命令来清空存储于redis的服务数据

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
当我们用keys *命令查看时,刚刚还存在的x键就被清空了

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全

1.3-Redis环境安装

讲了这么多,我们先来安装一下Redis环境吧,在这之前我们先要自己准备好一台Centos7操作系统用来安装Redis服务。
1、下载 redis
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
如果从官网下载慢,可以把链接贴到迅雷下载,再传到虚拟机:

cd /usr/local/soft/
wget https://download.redis.io/releases/redis-6.0.9.tar.gz

2、解压压缩包

tar -zxvf redis-6.0.9.tar.gz

3、安装 gcc 依赖

Redis 是 C 语言编写的,编译需要 GCC。
Redis6.x.x 版本支持了多线程,需要 gcc 的版本大于 4.9,但是 CentOS7 的默认版本是 4.8.5。
查看 gcc 的版本:

gcc -v

升级 gcc 版本:

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++
devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

确认 gcc 的版本(在同一个窗口中!):

gcc -v

4、编译安装

cd redis-6.0.9/src
make install

安装成功的结果是 src 目录下面出现服务端和客户端的脚本
redis-server
redis-cli
redis-sentine

5、修改配置文件

默认的配置文件是/usr/local/soft/redis-6.0.9/redis.conf
后台启动,不然窗口一关服务就挂了

daemonize no

改成

daemonize yes

下面一行必须改成 bind 0.0.0.0 或注释,否则只能在本机访问

bind 127.0.0.1

如果需要密码访问,取消 requirepass 的注释,在外网(比如阿里云)这个必须要配置!

requirepass yourpassword

6、使用指定配置文件启动 Redis

/usr/local/soft/redis-6.0.9/src/redis-server
/usr/local/soft/redis-6.0.9/redis.conf

查看端口是否启动成功:

netstat -an|grep 6379

7、进入客户端

/usr/local/soft/redis-6.0.9/src/redis-cli

8、停止 redis(在客户端中)

redis> shutdown

ps -aux | grep redis
kill -9 xxxx

9、配置别名的步骤

vim ~/.bashrc

添加两行:

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

编译生效:

source ~/.bashrc

这样就可以用 redis 启动服务,rcli 进入客户端了

1.4-Redis持久化机制

这一节我们来学习一下Redis的持久化机制,首先我们要知道Redis的数据是如何存储的

redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
我们之前提到的Redis是一个纯内存的数据库,这是Redis访问那么快的根本原因,但是你的数据如果只保存在内存中,一旦服务器断电或重启,内存一清空,你的数据不就也跟着清空了吗?那这样可靠性也太低了吧,所以Redis的作者就想了一个办法,通过Redis持久化机制来保证内存数据不定期的保存到磁盘之中。

Redis持久化机制一共提供了两种方式:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
我们来看一下自动触发规则的设置,这里有三个选项,save 3600 1表示假如每3600秒有一个键值被添加就保存数据到磁盘一次,剩下的两个以此类推。

那么他刷盘的时候文件会保存到哪个地方呢?保存为什么文件名呢?

我们可以通过dir ./ 来指定保存的路劲,当前这条命令就是保存在根目录下。dbfilename来指定保存数据的文件名,dbfilename redis.php当前这条命令就是指定当前保存数据的文件名为redis.php。

我们还有种方式就是手动触发保存,命令就是save。

1.5-Redis动态修改配置

什么叫做Redis动态修改配置呢?本来我们修改Redis配置文件都要在redis.conf这个文件中去修改的,但是redis我们提供了一种动态修改配置的方式:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
我们可以通过config set 去修改配置文件,但是修改后的配置文件只在当前会话中生效,也就是说当你重启服务后动态修改的配置都会失效的。

我们动态修改配置:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全然后随便添加一些键值对:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全再通过save命令保存:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
然后我们去 /www/admin/localhost_80/wwwroot目录下查看有没有redis.php这个文件:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全
如图看到确实出现了我们保存数据的文件
我们再通过cat命令去查看这个文件的内容:
redis 未授权漏洞,未授权漏洞集合,redis,服务器,数据库,网络安全,安全

仔细看确实可以在文件中看到被保存着的aaa,bbb字符。文章来源地址https://www.toymoban.com/news/detail-612397.html

到了这里,关于Redis未授权访问漏洞(一)先导篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web安全:Redis 未授权访问漏洞 测试.

    Redis 默认情况下绑定在 6379 端口,然后如果没有进行添加防火墙规则避免其他非信任来源 IP 访问等相关安全策略,直接暴露在公网上。然后再没有设置密码或者设置了弱密码,因此导致此漏洞的产生. Redis 未授权访问漏洞的 危害: Redis 未授权访问漏洞 测试: 第一步:使用

    2024年02月11日
    浏览(46)
  • 【vulhub漏洞复现】redis 4-unacc 未授权访问漏洞

    影响版本 Redis 2.x,3.x,4.x,5.x Redis默认情况下,会绑定在0.0.0.0:6379(在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没有配置密码访问时都会报错),如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等等,这样将会将Redis服务暴

    2023年04月25日
    浏览(41)
  • redis未授权访问漏洞三种提权方式

    扫描/连接默认的6379端口➢ 利用方式: ⚫ 向Web目录中写shell:需要猜到Web目录地址 ⚫ 写ssh-keygen公钥然后使用私钥登陆 ⚫ 利用crontab反弹shell Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,

    2024年02月07日
    浏览(41)
  • 数据库安全-Redis未授权&Hadoop&Mysql&未授权访问&RCE 漏洞复现

    未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露,包括端口的未授权常见页面的未授权 /admin.php /menu.php 常见的未授权访问漏洞及默认端口: 默认端口统

    2024年02月03日
    浏览(49)
  • 第55天:服务攻防-数据库安全&Redis&Hadoop&Mysql&未授权访问&RCE

    思维导图: 常见服务的安全测试: 服务安全流程: 案例一:Mysql-未授权访问-CVE-2012-2122 利用 案例二: Hadoop-未授权访问-内置配合命令执行 RCE 案例三:Redis-未授权访问-Webshell任务密匙RCE 等 写入webshell  写入计划任务反弹shell ssh密钥链接 ​编辑利用自动化脚本去getshell redi

    2024年04月27日
    浏览(39)
  • 网络安全全栈培训笔记(55-服务攻防-数据库安全&Redis&Hadoop&Mysqla&未授权访问&RCE)

    知识点: 1、服务攻防数据库类型安全 2、RedisHadoopMysql安全 3、Mysql-CVE-2012-2122漏洞 4、Hadoop-配置不当未授权三重奏RCE漏洞 3、Redis-配置不当未授权三重奏RCE两漏洞 #章节内容: 常见服务应用的安全测试: 1、配置不当-未授权访问 2、安全机制特定安全漏洞 3、安全机制弱口令爆

    2024年01月23日
    浏览(47)
  • redis未授权漏洞

    Redis 默认情况下会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取 Redis的数据 1)通过 Redis的INFO 命令,可以查看服务器相关的参数和敏感信息,为攻击者的后续渗

    2024年02月07日
    浏览(34)
  • Redis未授权漏洞复现

    目录 Redis 漏洞的产生条件及利用 Redis环境搭建 漏洞复现 利用Redis写入Webshell 利用Redis写入SSH公钥 利用Redis写入计划任务 Redis安全防护 redis(remote dictionary server)是一个key-value存储系统,是跨平台的非关系型数据库。 redis默认情况下,会绑定在0.0.0.0:6379,如果没有采用相关的安

    2024年04月08日
    浏览(36)
  • H2Miner变种,利用Redis漏洞入侵云服务器wa矿

    该变种利用Redis 4.x/5.x 主从同步命令执行漏洞(CNVD-2019-21763)攻击云服务器,检测数据显示该木马活动有明显增长。H2Miner变种木马入侵后会下载挖矿木马,通过安装定时任务持久化,通过SSH复用连接进行横向移动感染。 2Miner变种木马入侵后会下载kinsingXXXXXXXXXX(10位随机字符

    2024年02月11日
    浏览(45)
  • SSRF+redis未授权漏洞复现

    1.SSRF 漏洞简介 SSRF(Server-Side Request Forgery)即服务器端请求伪造,是一种由攻击者构造攻击链传给服务器,服务器执行并发起请求造成安全问题的漏洞,一般用来在外网探测或攻击内网服务。当网站需要调用指定URL地址的资源,但是没有对这个URL做好过滤,就会导致可以访问

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包