etcd 用于存储K8s集群中的所有配置数据和状态信息,如果管理员配置不当,导致etcd未授权访问的情况,那么攻击者就可以从etcd中获取secrets&token等关键信息,进而通过kubectl创建恶意pod从而接管集群。 (1)攻击场景 将client-cert-auth=true 改为false,把listen-client-urls监听修改为0.0.0.0,将端口被暴露出去,导致etcd存在...
K8s攻击案例:etcd 未授权访问 etcd 用于存储K8s集群中的所有配置数据和状态信息,如果管理员配置不当,导致etcd未授权访问的情况,那么攻击者就可以从etcd中获取secrets&token等关键信息,进而通过kubectl创建恶意pod从而接管集群。 (1)攻击场景 将client-cert-auth=true 改为false,把listen-client-urls监听修改为0.0.0.0,...
| 1 | 扫描K8S集群,查找etcd服务 | | 2 | 连接etcd服务 | | 3 | 尝试未经授权的操作 | ### 操作步骤 ### 步骤1:扫描K8S集群,查找etcd服务 首先,我们需要确定集群中etcd服务的IP地址和端口。可以使用nmap等工具进行端口扫描,发现etcd服务对外暴露的端口。 ### 步骤2:连接etcd服务 接下来,我们需要连接到...
–advertise-client-urls:建议使用的客户端通信 url,该值用于 etcd 代理或 etcd 成员与 etcd 节点通信。 –initial-cluster-token: etcd-cluster-1,节点的 token 值,设置该值后集群将生成唯一 id,并为每个节点也生成唯一 id,当使用相同配置文件再启动一个集群时,只要该 token 值不一样,etcd 集群就不会相互影响。
API Server,默认端口为8080,6443 kubelet,默认端口为10250 etcd,默认端口为2379 Dashboard面板泄露 一、API Server 8080/6443 未授权访问 K8s 的 API Server 默认服务端口为 8080 (insecure-port) 和 6443 (secure-port),8080 端口提供 HTTP 服务,没有认证授权机制,而 6443 端口提供 HTTPS 服务,支持认证 (使用...
etcd,默认端口为2379 Dashboard面板泄露 一、API Server 8080/6443 未授权访问 K8s 的 API Server 默认服务端口为 8080 (insecure-port) 和 6443 (secure-port),8080 端口提供 HTTP 服务,没有认证授权机制,而 6443 端口提供 HTTPS 服务,支持认证 (使用令牌或客户端证书进行认证) 和授权服务。默认情况下 8080 ...
未授权验证 如果目标在启动 etcd 的时候没有开启证书认证选项,且 2379 端口直接对外开放的话,则存在 etcd 未授权访问漏洞。有两种验证方式: http://IP:2379/version http://IP:2379/v2/keys 存在etcd 未授权访问漏洞后,可以通过工具etcdctl来直接dump数据库,linux和win的使用略有不同。
在打开证书校验选项后,通过本地127.0.0.1:2379地址可以免认证访问Etcd服务,但通过其他地址访问要携带cert进行认证访问 在未使用client-cert-auth参数打开证书校验时,任意地址访问Etcd服务都不需要进行证书校验,此时Etcd服务存在未授权访问风险。 证书泄露 默认情况下用etcdctl 访问2379会需要证书 ...
3. etcd未授权访问 etcd默认监听了2379等端口,如果2379端口暴露到公网,可能造成敏感信息泄露。etcd若存在未授权,攻击者导出全量etcd配置,获取k8s认证证书等关键配置,进而通过kubectl创建恶意pod或控制已有pod,后续可尝试逃逸至宿主机。 访问https://IP:2379/v2/keys,有内容,类似{“action”:“get”,“node”:{“dir...
etcd: 一致且高度可用的Key-Value存储,用作Kubernetes的所有群集数据的后备存储,在K8s中有两个服务需要用到etcd来协同和配置,分别如下 代码语言:txt 复制 - 网络插件 flannel、对于其它网络插件也需要用到 etcd 存储网络的配置信息 - Kubernetes 本身,包括各种对象的状态和元信息配置 ...