网站首页 > 技术文章 正文
来来来,?? 先关注了再往下看!
V字仇杀队
在互联网科技如此发达的今天,安全问题,越来越引起人们的重视,各种新闻也是层出不穷。
但是有很多漏洞公布已久,而今天,未修补的漏洞,更是数之不尽;
我今天要说的关于 Redis 的问题,其实早在两年前就已经公布,并有了非常完善的解决方案;
那么在尝试黑进系统之前,我们先来看一下,通过网络空间的搜索引擎,
查看全球内暴露在公网中的6379端口号:
公网端口
截止目前,全球仍有有接近20万台主机的Redis服务器暴露在公网之内,而我只需要链接Redis服务器,
就可以非常轻松的获取系统的超级管理员权限,那么这台服务器就是我的了;
下面我就准备两台服务器进行测试:
192.168.0.227(测试机)
192.168.0.205(攻击目标)
首先,我们尝试登陆目标主机,但是因为不知道密码所以无法登陆:
尝试登陆
然后 我们尝试用Redis客户端链接:
redis链接
能够看到我链接成功,并且能够使用命令进行正常操作;
其实只要能到这一步,基本就已经算成功入侵了;
接下来我们 生成自己的公私钥,输入 ssh-keygen 命令
然后在我们的家目录下就会出现 .ssh 的文件夹,切换目录到.ssh 复制公钥文件 id_rsa.pub 到自己的根目录:
公私钥
修改id_rsa.pub 文件,在文件开头和结尾添加回车;
然后将公钥文件内容,写入目标主机的redis
shell > cat id_rsa.pub | redis-cli -h 192.168.0.205 -x set ssh-key
写公钥进redis
此时,我们再次链接目标主机的redis查看内容:
查看
公钥已经写入了目标主机,接下来,我们用config命令,分别查看redis写入日志的文件名和目录:
redis-config
然后我们重新设置日志保存路径和日志文件名,并保存redis中的数据:
修改配置
然后退出redis,再次使用ssh登录目标主机,此时,已经成功获取 Linux 系统的root账户权限,进入目标主机
sess
原理其实非常简单,就是利用了redis可以记录日志的能力,将日志写入 root 用户的 .ssh 中,从而实现root 账户针对攻击者 免密登录的权限;
那么有攻击就要有防守,我们应该如何防范这种攻击呢?
通过上面的例子,大家也能看出,本质问题就是,Redis服务器的链接是对外开放的;而我们只需要相应的做出限制就可以了;方案有两种:
方案1:配置文件中设置允许登录的客户端IP地址:
如: bind 127.0.0.1;
方案2:客户端有密链接服务器 :
如:config set requirepass "password"
当然两种方案可以同时使用;
但是,请各位一定记住,别人家开着门,并不是你能随便乱进的理由!!!
你可以将漏洞提交,提醒整改,比如:
漏洞提醒回复
获取更多资料:
微信公众号 xilinglaoshi;
知乎专栏 西岭老湿;
猜你喜欢
- 2024-09-20 Redis这些知识你了解吗?(redis知识点)
- 2024-09-20 Redis之Pub/Sub(发布订阅)(redis pub sub)
- 2024-09-20 本地启动redis控制台 & 安装redis服务(用于调试)
- 2024-09-20 redis安装4步轻松解决,你知道吗?
- 2024-09-20 redis快速入门(redis教程详解)
- 2024-09-20 Redis学习之路1-Redis的安装(redis 安装步骤)
- 2024-09-20 Redis系列-入门及安装(redis安装及使用)
- 2024-09-20 redis数据库使用教程(redis 数据库)
- 2024-09-20 一探Redis究竟:超火爆入门指南,你竟然还没看?
- 2024-09-20 redis 一主二从三哨兵的搭建测试(redis三主三从如何选举)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 564℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 508℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 465℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 445℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 442℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)