Redis漏洞有哪些


这篇文章主要为大家展示了“Redis漏洞有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Redis漏洞有哪些”这篇文章吧。port参数bind参数save参数requirepass参数dir参数dbfilename参数config命令protected-mode参数利用原理:Redis 提供了2种不同的持久化方式,RDB方式和AOF方式.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照AOF 持久化记录服务器执行的所有写操作命令.经过查看官网文档发现AOF方式备份数据库的文件名默认为appendonly.aof,可以在配置文件中通过appendfilename设置其他名称,通过测试发现不能在客户端交互中动态设置appendfilename,所以不能通过AOF方式备份写任意文件.RDB方式备份数据库的文件名默认为dump.rdb,此文件名可以通过客户端交互动态设置dbfilename来更改,造成可以写任意文件.靶机:unbantu 16安装之后开启redis服务准备复现原理:SSH提供两种登录验证方式,一种是口令验证也就是账号密码登录,另一种是密钥验证。所谓密钥验证,其实就是一种基于公钥密码的认证,使用公钥加密、私钥解密,其中公钥是可以公开的,放在服务器端,你可以把同一个公钥放在所有你想SSH远程登录的服务器中,而私钥是保密的只有你自己知道,公钥加密的消息只有私钥才能解密,大体过程如下:(1)客户端生成私钥和公钥,并把公钥拷贝给服务器端; (2)客户端发起登录请求,发送自己的相关信息; (3)服务器端根据客户端发来的信息查找是否存有该客户端的公钥,若没有拒绝登录,若有则生成一段随机数使用该公钥加密后发送给客户端; (4)客户端收到服务器发来的加密后的消息后使用私钥解密,并把解密后的结果发给服务器用于验证; (5)服务器收到客户端发来的解密结果,与自己刚才生成的随机数比对,若一样则允许登录,不一样则拒绝登录。条件:1、Redis服务使用ROOT账号启动2、服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器。详细步骤:在攻击机本地生成公钥文件:需要为我们的公钥文件设置一个私钥公钥文件默认路径:/root/.ssh/id_rsa.pub具体命令:然后通过未授权访问目标机具体命令利用公钥进行SSH登录攻击机免费云主机域名,第一次需要输入yes原理:我们都知道crontab是做计划任务的,启动的任务存放在/var/spool/cron中,root可以修改计划任务,可以将执行命令反弹shell直接写入计划任务中条件:root启用Redisredis无密码或者弱密码详细步骤:先在攻击机使用nc监听8888端口nc lvp 8888然后去操作Redis,具体命令:看到监听的命令行窗口已经有弹回来的shell了(这里有很多的坑,ubantu写入会出现乱码和不回弹的情况,反弹shell测试最好还是用centos测试吧)ubantu的坑参考这个文章https://www.dazhuanlan.com/2019/11/15/5dce507a41df5/条件:知道网站绝对路径,并且需要增删改查权限root启动redisredis弱密码或者无密码详细步骤:成功写入原理:Redis如果当把数据存储在单个Redis的实例中,当读写体量比较大的时候,服务端就很难承受。为了应对这种情况,Redis就提供了主从模式,主从模式就是指使用一个redis实例作为主机,其他实例都作为备份机,其中主机和从机数据相同,而从机只负责读,主机只负责写,通过读写分离可以大幅度减轻流量的压力,算是一种通过牺牲空间来换取效率的缓解方式。在两个Redis实例设置主从模式的时候,Redis的主机实例可以通过FULLRESYNC同步文件到从机上,然后在从机上加载so文件,我们就可以执行拓展的新命令了。条件:Redis 版本(4.x~5.0.5)(新增模块功能,可以通过C语言并编译出恶意.so文件)redis弱密码或者无密码root启动redis详细步骤:模拟主从关系,具体命令设置主从关系然后在kali下载利用工具https://github.com/n0b0dyCN/redis-rogue-server下载之后cd进入RedisModulesSDK目录使用make编译,当然不想编译也可以用作者给出的默认exp.so也是可以的。有两种使用方法一种是交互式shell,另一种是反弹shell交互shell演示:反弹shellps:redis主从RCE打多了会出现redis瘫痪的情况,所以不到万不得已,尽量不要打主从原理:SSRF攻击的目标是从外网无法访问的内部系统,这里通过SSRF使用dict协议访问本地Redis条件:root启用redis目标机存在dict协议知道网站绝对路径redis无密码或者弱密码详细步骤:使用pikachu的靶场,这里采用dict协议,目标机需要先安装dict协议写入失败截图:成功写入截图:redis2.6之前内置了lua脚本环境在redis未授权的情况下可以利用lua执行系统命令,这里没有深入研究,感兴趣可以看这篇文章:https://wooyun.x10sec.org/static/drops/papers-3062.htmlhttps://github.com/Ridter/hackredisredis未授权访问致远程植入挖矿脚本(防御篇)https://mp.weixin.qq.com/s/eUTZsGUGSO0AeBUaxq4Q2wWindows下如何getshell?1、禁止一些高危命令(重启redis才能生效)修改 redis.conf 文件,禁用远程修改 DB 文件地址或者通过修改redis.conf文件,改变这些高危命令的名称2、以低权限运行 Redis 服务(重启redis才能生效)为 Redis 服务创建单独的用户和家目录,并且配置禁止登陆3、为 Redis 添加密码验证(重启redis才能生效)修改 redis.conf 文件,添加4、禁止外网访问 Redis(重启redis才能生效)修改 redis.conf 文件,添加或修改,使得 Redis 服务只在当前主机可用在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没有配置密码访问时都会报错。修改配置文件redis.conf文件默认端口是6379,可以改变成其他端口(不要冲突就好)为了保证安全,您应该阻止其他用户添加新的公钥。将 authorized_keys 的权限设置为对拥有者只读,其他用户没有任何权限:为保证 authorized_keys 的权限不会被改掉,您还需要设置该文件的 immutable 位权限:然而,用户还可以重命名 ~/.ssh,然后新建新的 ~/.ssh 目录和 authorized_keys 文件。要避免这种情况,需要设置 ~./ssh 的 immutable 权限:7、设置防火墙策略如果正常业务中Redis服务需要被其他服务器来访问,可以设置iptables策略仅允许指定的IP来访问Redis服务。以上是“Redis漏洞有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注云编程开发博客行业资讯频道!

相关推荐: windows系统密码破解的方法是怎样的

今天就跟大家聊聊有关windows系统密码破解的方法是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。密码破解方法如下所述:下面为大家介绍的密码破解方法具有简单、安全,并且成功率为100%的优点,让…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 02/06 10:10
Next 02/06 10:15