redis介绍
Redis(Remote Dictionary Server )
,即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
redis未授权漏洞
Redis 默认情况下,会绑定在 0.0.0.0:6379
,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写文件操作
,攻击者可以成功将自己的ssh公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以使用对应私钥直接使用ssh服务登录目标服务器。
复现准备
系统 | IP |
---|---|
linux | 192.168.1.56 |
linux | 192.168.1.58 |
安装命令
下载文件
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
解压文件
tar xzf redis-2.8.17.tar.gz
进入到解压的目录下
cd redis-2.8.17
make
安装好进入src
cd src
将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)
cp redis-server /usr/bin
cp redis-cli /usr/bin
返回目录redis-2.8.17,将redis.conf拷贝到/etc/目录
cd ..
cp redis.conf /etc/
使用/etc/目录下的reids.conf文件中的配置启动redis服务
redis-server /etc/redis.conf
安装成功,克隆一下继续复现
启动redis服务进程后,就可以使用测试攻击机程序redis-cli和靶机的redis服务交互了
./redis-cli -h IP
未授权访问漏洞
./redis-cli -h IP
redis服务对公网开放,且未启用认证
参考文章
https://www.cnblogs.com/bmjoker/p/9548962.html