K8S API 未授权访问

  1. 攻击测试

#环境搭建#

1
2
3
4
5
#docker=23.0.1
sudo apt-get install docker-ce

#使用metarget安装1.19.1版本k8s
./metarget gadget install k8s --version=1.19.1

这里纠结版本问题尝试了好多次,高版本的k8s没有未授权访问了,改配置直接报错

默认8080端口不开,要修改配置文件

1
2
3
4
#vim /etc/kubernetes/manifests/kube-apiserver.yaml

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

默认insecure-port=0,这个时候表示不安全的端口不开放,insecure-bind-address为哪些IP可以访问,高版本没有这个配置

master机器创建一个nginx的pod

1
kubectl run nginx --image=nginx

然后重启k8s服务:system restart kubelet
这样配置好后没有报错的话就可以用其他机器访问了,我这里用kali访问。

kali攻击机器上安装kubelet

1
2
3
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.1/bin/linux/amd64/kubectl
chmod +x ./kubectl
mv ./kubectl /usr/local/bin/kubectl

使用命令获取nodes

1
./kubectl -s 192.168.116.132:8080 get nodes


使用命令获取pods

1
./kubectl -s 192.168.116.132:8080 get podss

攻击测试

方法一:通过命令直接执行获取pod权限

方法二:通过挂在逃逸获取宿主机权


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 sher10cksec@foxmail.com

文章标题:K8S API 未授权访问

本文作者:sher10ck

发布时间:2023-02-15, 09:36:09

最后更新:2023-02-15, 16:07:26

原始链接:http://sherlocz.github.io/2023/02/15/K8S-API-未授权访问/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录