SteamCloud-HackTheBox
信息收集
端口扫描

发现了一些Kubernetes集群的端口对外开放
kube-hunter
直接上kube-hunter,这里确实是个靶场。一大堆未授权

nuclei
nuclei也发现了不少问题

Get User Flag
kubeletctl
kubelet存在未授权访问,我们直接通过kubeletctl进行利用。

查看可以RCE的Pod
nginx和kube-proxy-vbcjc是正在运行的Pod

nginx直接以root权限运行


Get Root Flag
Kubernetes ServiceAccount
当 Pod 与 API 服务器联系时,Pod 会被认证为某个特定的 ServiceAccount(例如:
default)。 在每个名字空间中,至少存在一个 ServiceAccount。每个 Kubernetes 名字空间至少包含一个 ServiceAccount:也就是该名字空间的默认服务账号, 名为
default。如果你在创建 Pod 时没有指定 ServiceAccount,Kubernetes 会自动将该名字空间中 名为default的 ServiceAccount 分配给该 Pod。
如果这个ServiceAccount权限过大的话,我们可以直接利用
通常可以在这几个目录可以收集到ServiceAccount的凭据信息:
- /run/secrets/kubernetes.io/serviceaccount
- /var/run/secrets/kubernetes.io/serviceaccount
- /secrets/kubernetes.io/serviceaccount

目录中会包含三个文件:
- ca.crt:这是检查kubernetes通信的ca证书
- namespace:表示当前命名空间
- token:包含当前pod的服务令牌
使用kubectl访问集群

挺多操作做不了的

查看权限

ServiceAccount存在创建Pod的权限,可以直接创建一个特权Pod实现逃逸
这种就属于ServiceAccount账户权限过大导致逃逸
1 | |
创建特权容器并反弹shell


我们把宿主机的/挂载到/mnt了,直接查看即可获取flag

总结
打起来很流畅的一个靶场,非常适合Kubernetes安全入门(这个会员没白花)
SteamCloud-HackTheBox
http://aurey7.github.io.git/2023/08/21/SteamCloud-HackTheBox/