漏洞原理:Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则 避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为 空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数 据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写文件操 作,攻击者可以成功将自己的ssh公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件 中,进而可以使用对应私钥直接使用ssh服务登录目标服务器。 Redis未授权访问在4.x/5.0.5以前版本下,我们可以使用master/slave模式加载远程模块,通过动 态链接库的方式执行任意命令。
搭建漏洞靶场
搭建 4.0.8
wget http://download.redis.io/releases/redis-4.0.8.tar.gz(linux环境下的搭建命令)
tar -zxvf redis-4.0.8.tar.gz cd redis-4.0.8(解压)
make
make成功后,需要修改其4.0.8对应的环境,使得靶机运行更加完善。
ps(这个防火墙是redis里的一种防御装置,不是虚拟机上的)
注意:如果防火墙开着需要为其开放6379端口 否则攻击机无法访问到,我这里直接选择关闭防火墙 systemctl stop firewalld.service 如果还有问题可以尝试关闭selinux: setenforce 0(ps:这两都可以永久关闭,现在只是临时,重启后还会开启,怎么关自行百度),完成后靶机配置完成。
漏洞分析:漏洞产生条件有以下两点: redis绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策 略,直接暴露在公网; 没有设置密码认证(一般为空),可以免密码远程登录redis服务
攻击机kali
因为该漏洞是未经授权的访问登录漏洞,因此,攻击机上也应该有一个对应的redis版本,从而合理的对其进行攻击,安装命令与之前一样。
因为目前kali是属于攻击机,正常情况来下,攻击别人的机器是不需要对自己的配置文件进行更改的,因此这里并没有对其配置文件进行配置(当前这个漏洞)。
在靶机下启动redis,(需要进入安装文件里的src目录下)(ps:前台启动只需要把../那个去掉就行,但是前台启动了靶机中将无法输入命令,一旦输入就会终止redis)(再ps:启动出现报错可以尝试用kill -9杀掉进程,重启启动。确认配置文件是否正常)
使用kali攻击机连接靶机,成功连接(./redis-cli是redis中的一个运行终端,后面的ip地址则为靶机的地址 虽然是虚拟机,就是想打马赛克)
对其进行相关文件的添加
kali服务关闭后,对应的靶机服务也会关闭
重启服务后可看到攻击机存储的信息成功保存到了靶机上(ps:不重启服务的话,两边消息是同步的)
至此,该漏洞完成。(ps:后续还有四个关于未授权访问漏洞的基础实验(目前学的),下篇再写) (后续)