(二)Redis-利用未授权访问获取shell

利用计划任务反弹shell #

1.先用kali监听接收shell的端口:

2.连接redis,创建一个key x,值为反弹shell语句,修改备份目录为linux计划任务目录,修改备份文件名为 root,以root身体执行计划任务

3.执行完后回到监听终端页面,但是反弹的shell无法执行ifconfig命令

4.默认的ifconfig是在/usr/bin/目录下,解决方法:ln -s /usr/sbin/ifconfig /usr/bin/ifconfig

5.反弹shell成功

6.测试完后将备份目录和备份文件恢复

利用redis写入webshell #

服务器配置phpstudy

1. 下载Phpstudy for Linux的bin文件

操作命令: wget -c http://lamp.phpstudy.net/phpstudy.bin

2. 配置phpstudy.bin文件的可执行权限

操作命令: chmod +x phpstudy.bin

3. 执行安装PhpStudy

操作命令: ./phpstudy.bin

4.启动服务

Phpstudy start

5.连接服务器redis,服务器开启web服务,并知道网站路径,有文件读写增删权限

可以尝试apache默认路径,/phpstudy/www /var/www/

6.webshell写入成功,菜刀连接

利用redis主从复制获取shell #

redis主机:kali  192.168.1.138

redis从机:centos7  192.168.1.27

1.分别安装并开启redis数据库,注意4.X以上需要redis.conf关闭保护模式

2.在kali上连接靶机redis服务,并设置主从状态(将kali设置为redis主机)

3.在kali上编译恶意代码

git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.git

编译源码

4.利用工具进行getshell

git clone https://github.com/Ridter/redis-rce

5.将module.so文件放到利用工具目录下

6.在kali上使用nc-lvvp 4444 开启4444监听端口等待反弹shell

7.反弹成功

修复建议 #

1、禁止公网开放 Redis 端口,可以在防火墙上禁用 6379 Redis 的端口。

2、指定redis服务使用的网卡 (需要重启redis才能生效)
在 redis.conf 文件中找到 “# bind 127.0.0.1” ,把前面的#号去掉,然后保存。修改后只有本机才能访问Redis。

3、设置访问密码 (需要重启redis才能生效)
在 redis.conf 中找到“requirepass”字段,在后面填上你需要的密码,Redis客户端也需要使用此密码来访问Redis服务。

4、设置防火墙策略
如果正常业务中Redis服务需要被其他服务器来访问,可以设置iptables策略仅允许指定的IP来访问Redis服务。