微信号:weixin51cto

介绍:51CTO官方公众号——聚焦最新最前沿最有料的IT技术资讯、IT行业精华内容、产品交流心得。本订阅号为大家提供各种技术资讯和干货,还会不定期举办有奖活动,敬请关注。

Redis漏洞利用与防御

2018-05-15 20:00 51CTO官微


Redis在大公司被大量应用,通过笔者的研究发现,目前在互联网上已经出现Redis未经授权病毒似自动攻击,攻击成功后会对内网进行扫描、控制、感染以及用来进行挖矿、勒索等恶意行为。


早期网上曾经分析过一篇文章“通过redis感染linux版本勒索病毒的服务器”,如果公司使用了Redis,那么应当给予重视,通过实际研究,当在一定条件下,攻击者可以获取webshell,甚至root权限。


1.1.1 Redis简介及搭建实验环境


REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。


Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是字符串(String), 哈希(Map), 列表(list), 集合(sets) 和有序集合(sorted sets)等类型。


从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。目前最新稳定版本为4.0.8。


1.Redis默认端口


Redis默认配置端口为6379,sentinel.conf配置器端口为26379


2.官方站点


https://redis.io/

http://download.redis.io/releases/redis-3.2.11.tar.gz


3.安装redis


wget http://download.redis.io/releases/redis-4.0.8.tar.gz tar –xvf redis-4.0.8.tar.gz cd redis-4.0.8 make

最新版本前期漏洞已经修复,测试时建议安装3.2.11版本。


4.修改配置文件redis.conf


(1)cp redis.conf ./src/redis.conf (2)bind 127.0.0.1前面加上#号注释掉 (3)protected-mode设为no (4)启动redis-server ./src/redis-server redis.conf


最新版安装成功后,如图1所示。默认的配置是使用6379端口,没有密码。这时候会导致未授权访问然后使用redis权限写文件。


图1安装配置redis


5.连接Redis服务器


1)交互式方式


redis-cli -h {host} -p {port}


方式连接,然后所有的操作都是在交互的方式实现,不需要再执行redis-cli了,例如命令:redis-cli -h 127.0.0.1-p 6379,加-a参数表示带密码的访问。


(2)命令方式


redis-cli -h {host} -p {port} {command}


直接得到命令的返回结果.


6.常见命令


(1)查看信息:info (2)删除所有数据库内容:flushall (3)刷新数据库:flushdb (4)看所有键:KEYS *,使用select num可以查看键值数据。 (5)设置变量:set test “who am i” (6)config set dir dirpath 设置路径等配置 (7)config get dir/dbfilename 获取路径及数据配置信息 (8)save保存 (9)get 变量,查看变量名称


更多命令可以参考文章:

https://www.cnblogs.com/kongzhongqijing/p/6867960.html