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/