云安全—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模型计算是否处于异常的使用状态,或者是针对执行的内容进行防护,正常运维很少会使用到一些命令或者操作,如果出现就可以进行标点标记,进行观察以便最快速度进行阻断或者预防。
其实这个点同时可以作为蜜罐,诱导攻击者获取指定权限,从而监控后续操作。
以上。
相关文章:
云安全—etcd攻击面
0x00 前言 本篇还是一样,先来说一说etcd是什么,干啥的,然后再来看看etcd的攻击面到底有哪些,做一个抛砖引玉的作用,如有不妥之处还请斧正 0x01 etcd 依旧还是按照问问题的方式来进行阐述,因为学到的东西…...
类锁和实例对象锁你分清了吗?
系列文章目录 文章目录 系列文章目录前言一、什么是锁竞争?二、什么是类锁?什么是实例对象锁?三、给类对象加锁不是锁住了整个类四、总结 前言 java选手们应该都对锁不陌生,加锁了就是为保证操作语句的原子性,如果你是…...
如何在麒麟上安装 ONLYOFFICE 桌面编辑器
我们很高兴地告诉大家,ONLYOFFICE 桌面编辑器现已上架麒麟软件商店。请阅读下文了解详情。 关于麒麟 麒麟是一款国产操作系统,主要是为了满足中国市场的需求和偏好而设计的。 它能够与各种硬件平台和软件应用程序的广泛兼容,因而受到认可。…...
记录:如何编写linux驱动,用module的方式
记录:如何编写Linux驱动,用module的方式 记录:如何编写Linux驱动,用module的方式参考记录:如何编写Linux驱动,用module的方式 编写一个 Linux 的驱动,用 module 方式开发,一般来说,编写一个 Linux 的驱动,需要遵循以下步骤: 确定设备的类型和功能,以及它在系统中的…...
3款免费又好用的 Docker 可视化管理工具
前言 Docker提供了命令行工具(Docker CLI)来管理Docker容器、镜像、网络和数据卷等Docker组件。我们也可以使用可视化管理工具来更方便地查看和管理Docker容器、镜像、网络和数据卷等Docker组件。今天我们来介绍3款免费且好用的 Docker 可视化管理工具。…...
C语言--判断一个年份是否是闰年(详解)
一.闰年的定义 闰年是指在公历(格里高利历)中,年份可以被4整除但不能被100整除的年份,或者可以被400整除的年份。简单来说,闰年是一个比平年多出一天的年份,即2月有29天。闰年的目的是校准公历与地球公转周…...
Python---排序算法
文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 Python中的排序算法用于对数据进行排序。排序算法可以使数据按照一定的规则进行排列,以便于数据的查找、统计、比较等操作。在数据分析、机器学习、图形计算等领域,…...
gitlab Blocking and unblocking users
原文:Redirecting... Blocking a userUnblocking a user Blocking and unblocking users GitLab 管理员阻止和取消阻止用户. Blocking a user 为了完全阻止用户访问 GitLab 实例,管理员可以选择阻止该用户. 可以通过滥用报告或直接从管理区域来阻止…...
Swift 和 Python 两种语言中带关联信息错误(异常)类型的比较
0. 概览 如果我们分别在平静如水、和谐感人的 Swift 和 Python 社区抛出诸如“Python 是天下最好的语言…” 和 “Swift 是宇宙第一语言…”之类的言论会有怎样的“下场”? 我们并不想对可能发生的“炸裂”景象做出什么预测,也无意比较 Swift 与 Pytho…...
北京联通iptv组播配置
多年前折腾过iptv,近期搬家换了个大电视,打算把iptv配置好了,尽管不怎么看,但聊胜于无。 其实很简单,用到了一些工具,记录如下 1. openwrt配置 因为有软路由,所以就借助openwrt了,一…...
C++ STL 迭代器失效
一、学习资料 STL迭代器的使用 二、vector容器获取值是下标法和at()的区别 vector<int> vA; int array[]{0,1,2,3,4}; vA.assign(array,array5); cout<<vA[6]<<endl; cout<<va.at(6)<<endl;如上述代码,当使用vA[6]的方式出现访问越…...
麒麟KYLINIOS软件仓库搭建02-软件仓库添加新的软件包
原文链接:麒麟KYLINIOS软件仓库搭建02-软件仓库添加新的软件包 hello,大家好啊,今天给大家带来麒麟桌面操作系统软件仓库搭建的文章02-软件仓库添加新的软件包,本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版本上&…...
专业媒体播放软件Movist Pro中文
Movist Pro是一款专为Mac用户设计的专业媒体播放器。它支持广泛的视频和音频格式,包括MP4、AVI、MKV等,并提供了高级播放控件和定制的视频设置。其直观易用的用户界面,使得播放高清视频更为流畅,且不会卡顿或滞后。同时࿰…...
数据结构-邻接表广度优先搜索(C语言版)
对于一个有向图无向图,我们下面介绍第二种遍历方式。 广度优先搜索,即优先对同一层的顶点进行遍历。 如下图所示: 该例子,我们有六个顶点, 十条边。 对于广度优先搜索,我们先搜索a,再搜索abc…...
Py之auto-gptq:auto-gptq的简介、安装、使用方法之详细攻略
Py之auto-gptq:auto-gptq的简介、安装、使用方法之详细攻略 目录 auto-gptq的简介 1、版本更新历史 2、性能对比 推理速度 困惑度(PPL) 3、支持的模型 3、支持的评估任务 auto-gptq的安装 auto-gptq的使用方法 1、基础用法 (1)、量…...
【Linux】Linux+Nginx部署项目(负载均衡动静分离)
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Linux的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Nginx负载均衡 1.什么是负载均衡 2.实…...
C++笔记之vector的成员函数swap()和data()
C笔记之vector的成员函数swap()和data() 标准C中的std::vector类确实有swap()和data()这两个成员函数。下面是它们的简要描述: swap(): std::vector的swap()成员函数用于交换两个向量的内容,实现了高效的交换操作,不需要复制向量的元素。这…...
Linux centos环境 安装谷歌浏览器
教程 地址...
go-gin-vue3-elementPlus带参手动上传文件
文章目录 一. 总体代码流程1.1 全局Axios部分样例1.2 上传业务 二. 后端部分三. 测试样例 go的mvc层使用gin框架. 总的来说gin的formFile封装的不如springboot的好.获取值有很多的坑. 当然使用axios的formData也有不少坑.现给出较好的解决办法 以下部分仅贴出关键代码 一. 总…...
艺术的维度:洞察AI诈骗,优雅防范之艺术
当前,AI技术的广泛应用为社会公众提供了个性化智能化的信息服务,也给网络诈骗带来可乘之机,如不法分子通过面部替换语音合成等方式制作虚假图像、音频、视频仿冒他人身份实施诈骗、侵害消费者合法权益。 以下是一些常见的AI诈骗例子…...
Visual Studio 项目属性页开发完全教程:从基础到高级
Visual Studio 项目属性页开发完全教程:从基础到高级 【免费下载链接】project-system The .NET Project System for Visual Studio 项目地址: https://gitcode.com/gh_mirrors/pr/project-system Visual Studio 项目属性页是开发者管理项目配置的核心界面&a…...
如何用SMUDebugTool彻底掌控你的AMD Ryzen处理器性能调优
如何用SMUDebugTool彻底掌控你的AMD Ryzen处理器性能调优 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcode.co…...
Lindy自动化效率翻倍的秘密:从零搭建高可靠多步骤任务流的7步黄金流程
更多请点击: https://intelliparadigm.com 第一章:Lindy自动化效率翻倍的秘密:从零搭建高可靠多步骤任务流的7步黄金流程 Lindy自动化平台以“越久越可靠”为设计哲学,将经典软件工程原则与现代可观测性实践深度融合。其核心优势…...
配置OpenClaw Agent使用Taotoken作为后端模型提供商
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 配置OpenClaw Agent使用Taotoken作为后端模型提供商 基础教程类,指导希望使用OpenClaw等Agent工具的开发者,…...
荣耀出征官方网站下载正版手游 翅膀养成细节玩法全方位讲解
玩荣耀出征的玩家都清楚,翅膀不仅是角色的颜值象征,更是提升整体战力的核心途径。很多新手玩家只顾着升级、刷装备,完全忽略翅膀养成,导致等级很高但战力始终上不去。还有不少玩家胡乱合成、盲目进阶,浪费了大量稀有翅…...
Airtest Poco实战:5分钟搞定微信小程序自动化测试环境搭建与元素抓取
Airtest Poco实战:5分钟搞定微信小程序自动化测试环境搭建与元素抓取微信小程序作为轻量级应用的代表,已经渗透到电商、社交、工具等各个领域。随着小程序功能的日益复杂,自动化测试成为保障产品质量的重要手段。本文将带你快速搭建微信小程序…...
Postgresql基础实践教程(九)
⭐️⭐️⭐️⭐️⭐️ 完整数据详见 练习数据免费 ⭐️⭐️⭐️⭐️⭐️ 七十二、WITH查询(公用表表达式CTE) 1. SELECT 中的 WITH 2. 递归查询 3. 公用表表达式的物化 4. WITH中的数据修改语句 WITH提供了一种在主查询中写辅助语句的方法。这些语…...
Jupyter Notebook里跑argparse脚本总报错?一个空列表参数搞定ipykernel_launcher.py error
Jupyter Notebook中argparse报错的终极解决方案:空列表参数实战解析在数据科学和机器学习的工作流中,Jupyter Notebook因其交互式特性成为众多研究者的首选工具。然而,当我们尝试在Notebook中运行那些原本为命令行设计的Python脚本时…...
如何优化 MySQL 千万级数据分页查询的性能?
它的本质是:**传统 LIMIT offset, size 在大数据量下性能急剧下降,是因为 MySQL 必须 扫描并丢弃 前 offset 行数据。当 offset 很大时(如 LIMIT 1000000, 10),MySQL 需要读取 1,000,010 行记录,执行 1,000…...
Facebook登录协议逆向解析:appsecret_proof与e2e加密机制
1. 这不是“爬虫教程”,而是一次对现代Web身份协议的解剖实验你有没有试过,在调试一个Facebook登录集成时,浏览器Network面板里突然冒出一串带sig、access_token、e2e、c_user的请求,参数长度动辄上千字符,加密方式五花…...
