IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 基于公私钥认证对Redis未授权漏洞利用及防护措施 -> 正文阅读

[大数据]基于公私钥认证对Redis未授权漏洞利用及防护措施

漏洞说明:Redis 默认情况下,会绑定在?0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写文件操作,攻击者成功将自己的ssh公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,可以使用对应私钥直接使用ssh服务登录目标服务器。

1. 在攻击机使用nmap发现6379端口

2.尝试用公钥替换利用未授权漏洞

(1)攻击机生成密钥??

ssh-keygen -t rsa

?(2)查看并复制公钥

cat ~/.ssh/id_rsa.pub
(3)连接靶机redis
nc 172.16.250.128 6379

? 其中,info :查看服务器、客户端、CPU、内存等信息

?config set dir: 设定redis目录? ? config get dir: 获取默认redis目录

?config set dbfilename “***keys”? 设定rdb名称,获取使用 config get dbfilename

在靶机上保存公钥

?

?3.利用公钥登录靶机ssh,访问成功

??4.漏洞防护措施

(1)限制redis访问:修改redis.conf文件
? ? ? ? 把# bind 127.0.0.1前面的 注释#号去掉,然后把127.0.0.1改成允许访问你的redis服务器的ip地址,表示只允许该ip进行访问。这种情况下,我们在启动redis服务器的时候不能再用:redis-server而改为:redis-server path/redis.conf 即在启动的时候指定需要加载的配置文件。

(2)增加redis访问密码
? ? ? ?在redis.conf配置文件中找到requirepass 配置项,取消#注释符,在requirepass 后面添加设置的密码。设置密码以后发现可以登陆,但是无法执行命令。

? ? ? 1)启动redis客户端,并连接服务器:redis-cli -h IP地址 -p 端口号

? ? ? ?输出服务器中的所有key:keys *

? ? ? 报错:(error) ERR operation not permitted

? ? ? 使用授权命令进行授权,就不报错了:auth youpassword

? ? ?2)在连接服务器的时候就可以指定登录密码,避免单独输入上面授权命令:redis-cli -h ?IP地址 -p 端口号 ?-a ?密码

? ? ?3)在配置文件redis.conf中配置验证密码以外,也可以在已经启动的redis服务器通过命令行设置密码,但这种方式是临时的,当服务器重启了后,密码必须重设。命令行设置密码方式:config set requirepass 你的密码

? ? ?4)不知道当前redis服务器是否有设置验证密码,或者忘记密码,可以通过命令行输入命令查看密码:config get requirepass

? ? ?5)如果redis服务端没有配置密码,会得到nil,而如果配置了密码,但是redis客户端连接redis服务端时,没有用密码登录验证,会提示:operation not permitted,这时候可以用命令:auth yourpassword 进行验证密码,再执行 config set requirepass,就会显示yourpassword

(3)修改默认端口:

修改redis.conf文件中默认端口 port 6379?
?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-24 14:59:55  更:2021-10-24 15:01:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:33:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码